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

2016-07-14 Thread tiffany lin
On Mon, 2016-07-11 at 23:37 +0200, Arnd Bergmann wrote:
> The newly added mtk-vcodec driver produces a number of warnings in an ARM
> allmodconfig build, mainly since it assumes that dma_addr_t is 32-bit wide:
> 
> mtk-vcodec/venc/venc_vp8_if.c: In function 'vp8_enc_alloc_work_buf':
> mtk-vcodec/venc/venc_vp8_if.c:212:191: error: cast to pointer from integer of 
> different size [-Werror=int-to-pointer-cast]
> mtk-vcodec/venc/venc_h264_if.c: In function 'h264_enc_alloc_work_buf':
> mtk-vcodec/venc/venc_h264_if.c:297:190: error: cast to pointer from integer 
> of different size [-Werror=int-to-pointer-cast]
> mtk-vcodec/mtk_vcodec_enc.c: In function 'mtk_venc_worker':
> mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
> type 'long unsigned int', but argument 7 has type 'size_t {aka unsigned int}' 
> [-Werror=format=]
>   mtk_v4l2_debug(2,
> mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
> type 'long unsigned int', but argument 10 has type 'size_t {aka unsigned 
> int}' [-Werror=format=]
> mtk-vcodec/venc_vpu_if.c: In function 'vpu_enc_ipi_handler':
> mtk-vcodec/venc_vpu_if.c:40:30: error: cast to pointer from integer of 
> different size [-Werror=int-to-pointer-cast]
>   struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst;
> 
> This rearranges the format strings and type casts to what they should have 
> been
> in order to avoid the warnings.
> 
> Signed-off-by: Arnd Bergmann 
> ---
>  drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c| 8 
>  drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c | 4 ++--
>  drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c  | 4 ++--
>  drivers/media/platform/mtk-vcodec/venc_vpu_if.c   | 4 ++--
>  4 files changed, 10 insertions(+), 10 deletions(-)
> 
> 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,
> + _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,
> + _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,
> + _buf.fb_addr[2].dma_addr,
>   frm_buf.fb_addr[2].size);

Acked-by:Tiffany Lin 


>  
>   ret = venc_if_encode(ctx, VENC_START_OPT_ENCODE_FRAME,
> diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c 
> b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> index f4e18bb44cb9..9a600525b3c1 100644
> --- a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> +++ b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> @@ -295,9 +295,9 @@ static int h264_enc_alloc_work_buf(struct venc_h264_inst 
> *inst)
>   wb[i].iova = inst->work_bufs[i].dma_addr;
>  
>   mtk_vcodec_debug(inst,
> -  "work_buf[%d] va=0x%p iova=0x%p size=%zu",
> +  "work_buf[%d] va=0x%p iova=%pad size=%zu",
>i, inst->work_bufs[i].va,
> -  (void *)inst->work_bufs[i].dma_addr,
> +  >work_bufs[i].dma_addr,
>inst->work_bufs[i].size);
>   }
>  
> diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c 
> b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> index 431ae706a427..5b35aa1900d7 100644
> --- a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> +++ b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> @@ -210,9 +210,9 @@ static int vp8_enc_alloc_work_buf(struct venc_vp8_inst 
> *inst)
>   wb[i].iova = inst->work_bufs[i].dma_addr;
>  
>   mtk_vcodec_debug(inst,
> -  "work_bufs[%d] va=0x%p,iova=0x%p,size=%zu",
> +  "work_bufs[%d] va=0x%p,iova=%pad,size=%zu",
>i, inst->work_bufs[i].va,
> -  (void *)inst->work_bufs[i].dma_addr,
> +  >work_bufs[i].dma_addr,
>

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

2016-07-13 Thread tiffany lin
Hi Arnd,

On Wed, 2016-07-13 at 15:08 +0200, Arnd Bergmann wrote:
> 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,
> > > + _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,
> > > + _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,
> > > + _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.
> 
I understood now, I will check Documentation/printk-formats.txt.
Thanks for your explanation.


best regards,
Tiffany

>   Arnd


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2016-07-13 Thread Arnd Bergmann
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,
> > + _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,
> > + _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,
> > + _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
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2016-07-13 Thread tiffany lin
Hi Arnd,

On Mon, 2016-07-11 at 23:37 +0200, Arnd Bergmann wrote:
> The newly added mtk-vcodec driver produces a number of warnings in an ARM
> allmodconfig build, mainly since it assumes that dma_addr_t is 32-bit wide:
> 
> mtk-vcodec/venc/venc_vp8_if.c: In function 'vp8_enc_alloc_work_buf':
> mtk-vcodec/venc/venc_vp8_if.c:212:191: error: cast to pointer from integer of 
> different size [-Werror=int-to-pointer-cast]
> mtk-vcodec/venc/venc_h264_if.c: In function 'h264_enc_alloc_work_buf':
> mtk-vcodec/venc/venc_h264_if.c:297:190: error: cast to pointer from integer 
> of different size [-Werror=int-to-pointer-cast]
> mtk-vcodec/mtk_vcodec_enc.c: In function 'mtk_venc_worker':
> mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
> type 'long unsigned int', but argument 7 has type 'size_t {aka unsigned int}' 
> [-Werror=format=]
>   mtk_v4l2_debug(2,
> mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
> type 'long unsigned int', but argument 10 has type 'size_t {aka unsigned 
> int}' [-Werror=format=]
> mtk-vcodec/venc_vpu_if.c: In function 'vpu_enc_ipi_handler':
> mtk-vcodec/venc_vpu_if.c:40:30: error: cast to pointer from integer of 
> different size [-Werror=int-to-pointer-cast]
>   struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst;
> 
> This rearranges the format strings and type casts to what they should have 
> been
> in order to avoid the warnings.
> 
> Signed-off-by: Arnd Bergmann 
> ---
>  drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c| 8 
>  drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c | 4 ++--
>  drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c  | 4 ++--
>  drivers/media/platform/mtk-vcodec/venc_vpu_if.c   | 4 ++--
>  4 files changed, 10 insertions(+), 10 deletions(-)
> 
> 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,
> + _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,
> + _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,
> + _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,

>  
>   ret = venc_if_encode(ctx, VENC_START_OPT_ENCODE_FRAME,
> diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c 
> b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> index f4e18bb44cb9..9a600525b3c1 100644
> --- a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> +++ b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
> @@ -295,9 +295,9 @@ static int h264_enc_alloc_work_buf(struct venc_h264_inst 
> *inst)
>   wb[i].iova = inst->work_bufs[i].dma_addr;
>  
>   mtk_vcodec_debug(inst,
> -  "work_buf[%d] va=0x%p iova=0x%p size=%zu",
> +  "work_buf[%d] va=0x%p iova=%pad size=%zu",
>i, inst->work_bufs[i].va,
> -  (void *)inst->work_bufs[i].dma_addr,
> +  >work_bufs[i].dma_addr,
>inst->work_bufs[i].size);
>   }
>  
Same as above.

best regards,
Tiffany

> diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c 
> b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> index 431ae706a427..5b35aa1900d7 100644
> --- a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> +++ b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
> @@ -210,9 +210,9 @@ static int vp8_enc_alloc_work_buf(struct venc_vp8_inst 
> *inst)
>   wb[i].iova = inst->work_bufs[i].dma_addr;
>  
>   mtk_vcodec_debug(inst,
> -  "work_bufs[%d] va=0x%p,iova=0x%p,size=%zu",
> +  "work_bufs[%d] va=0x%p,iova=%pad,size=%zu",
>

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

2016-07-11 Thread Arnd Bergmann
The newly added mtk-vcodec driver produces a number of warnings in an ARM
allmodconfig build, mainly since it assumes that dma_addr_t is 32-bit wide:

mtk-vcodec/venc/venc_vp8_if.c: In function 'vp8_enc_alloc_work_buf':
mtk-vcodec/venc/venc_vp8_if.c:212:191: error: cast to pointer from integer of 
different size [-Werror=int-to-pointer-cast]
mtk-vcodec/venc/venc_h264_if.c: In function 'h264_enc_alloc_work_buf':
mtk-vcodec/venc/venc_h264_if.c:297:190: error: cast to pointer from integer of 
different size [-Werror=int-to-pointer-cast]
mtk-vcodec/mtk_vcodec_enc.c: In function 'mtk_venc_worker':
mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
type 'long unsigned int', but argument 7 has type 'size_t {aka unsigned int}' 
[-Werror=format=]
  mtk_v4l2_debug(2,
mtk-vcodec/mtk_vcodec_enc.c:1030:46: error: format '%lx' expects argument of 
type 'long unsigned int', but argument 10 has type 'size_t {aka unsigned int}' 
[-Werror=format=]
mtk-vcodec/venc_vpu_if.c: In function 'vpu_enc_ipi_handler':
mtk-vcodec/venc_vpu_if.c:40:30: error: cast to pointer from integer of 
different size [-Werror=int-to-pointer-cast]
  struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst;

This rearranges the format strings and type casts to what they should have been
in order to avoid the warnings.

Signed-off-by: Arnd Bergmann 
---
 drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c| 8 
 drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c | 4 ++--
 drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c  | 4 ++--
 drivers/media/platform/mtk-vcodec/venc_vpu_if.c   | 4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)

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,
+   _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,
+   _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,
+   _buf.fb_addr[2].dma_addr,
frm_buf.fb_addr[2].size);
 
ret = venc_if_encode(ctx, VENC_START_OPT_ENCODE_FRAME,
diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c 
b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
index f4e18bb44cb9..9a600525b3c1 100644
--- a/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
+++ b/drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c
@@ -295,9 +295,9 @@ static int h264_enc_alloc_work_buf(struct venc_h264_inst 
*inst)
wb[i].iova = inst->work_bufs[i].dma_addr;
 
mtk_vcodec_debug(inst,
-"work_buf[%d] va=0x%p iova=0x%p size=%zu",
+"work_buf[%d] va=0x%p iova=%pad size=%zu",
 i, inst->work_bufs[i].va,
-(void *)inst->work_bufs[i].dma_addr,
+>work_bufs[i].dma_addr,
 inst->work_bufs[i].size);
}
 
diff --git a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c 
b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
index 431ae706a427..5b35aa1900d7 100644
--- a/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
+++ b/drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c
@@ -210,9 +210,9 @@ static int vp8_enc_alloc_work_buf(struct venc_vp8_inst 
*inst)
wb[i].iova = inst->work_bufs[i].dma_addr;
 
mtk_vcodec_debug(inst,
-"work_bufs[%d] va=0x%p,iova=0x%p,size=%zu",
+"work_bufs[%d] va=0x%p,iova=%pad,size=%zu",
 i, inst->work_bufs[i].va,
-(void *)inst->work_bufs[i].dma_addr,
+>work_bufs[i].dma_addr,
 inst->work_bufs[i].size);
}
 
diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c 
b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c
index b92c6d2a892d..8907b02729fa 100644
--- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c
+++