Re: [PATCH] [media] mtk-vcodec: fix type mismatches

From: Arnd Bergmann
Date: Wed Jul 13 2016 - 09:09:53 EST


On Wednesday, July 13, 2016 5:56:26 PM CEST tiffany lin wrote:
> > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > index 6dcae0a0a1f2..0b25a8700877 100644
> > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > @@ -1028,15 +1028,15 @@ static void mtk_venc_worker(struct work_struct *work)
> > bs_buf.size = (size_t)dst_buf->planes[0].length;
> >
> > mtk_v4l2_debug(2,
> > - "Framebuf VA=%p PA=%llx Size=0x%lx;VA=%p PA=0x%llx Size=0x%lx;VA=%p PA=0x%llx Size=%zu",
> > + "Framebuf VA=%p PA=%pad Size=0x%zx;VA=%p PA=%pad Size=0x%zx;VA=%p PA=%pad Size=0x%zx",
> > frm_buf.fb_addr[0].va,
> > - (u64)frm_buf.fb_addr[0].dma_addr,
> > + &frm_buf.fb_addr[0].dma_addr,
> > frm_buf.fb_addr[0].size,
> > frm_buf.fb_addr[1].va,
> > - (u64)frm_buf.fb_addr[1].dma_addr,
> > + &frm_buf.fb_addr[1].dma_addr,
> > frm_buf.fb_addr[1].size,
> > frm_buf.fb_addr[2].va,
> > - (u64)frm_buf.fb_addr[2].dma_addr,
> > + &frm_buf.fb_addr[2].dma_addr,
> > frm_buf.fb_addr[2].size);
> This change will make debug message dump address of dma_addr field but
> not the value of the dma_addr we want.
> How about change it from
> PA=%llx -> PA=%u
> (u64)frm_buf.fb_addr[0].dma_addr -> (u32)frm_buf.fb_addr[0].dma_addr,
>

The %llx works fine with the cast to u64, the change above is mainly for the "%lx"
on a size_t causing a warning.

The change to %pad is done in order to use a consistent output for the
dma_addr_t, which had a leading "0x" in two cases but not in the first
one.

printk interprets %pad as a pointer to a dma_addr_t and prints the
address, not the pointer to it, see Documentation/printk-formats.txt,
which lets you avoid the type cast as well as the 0x.

Arnd