Message ID | 20160711213959.2481081-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 <arnd@arndb.de> > --- > 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, > + &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, > > 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, > + &inst->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", > i, inst->work_bufs[i].va, > - (void *)inst->work_bufs[i].dma_addr, > + &inst->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 > +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > @@ -37,7 +37,7 @@ static void handle_enc_encode_msg(struct venc_vpu_inst *vpu, void *data) > static void vpu_enc_ipi_handler(void *data, unsigned int len, void *priv) > { > struct venc_vpu_ipi_msg_common *msg = data; > - struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst; > + struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)(uintptr_t)msg->venc_inst; > > mtk_vcodec_debug(vpu, "msg_id %x inst %p status %d", > msg->msg_id, vpu, msg->status); > @@ -112,7 +112,7 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) > > memset(&out, 0, sizeof(out)); > out.msg_id = AP_IPIMSG_ENC_INIT; > - out.venc_inst = (unsigned long)vpu; > + out.venc_inst = (uintptr_t)vpu; > if (vpu_enc_send_msg(vpu, &out, sizeof(out))) { > mtk_vcodec_err(vpu, "AP_IPIMSG_ENC_INIT fail"); > return -EINVAL; -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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, > > > + &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. > 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 <arnd@arndb.de> > --- > 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, > + &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); Acked-by:Tiffany Lin <tiffany.lin@mediatek.com> > > 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, > + &inst->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, > + &inst->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 > +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c > @@ -37,7 +37,7 @@ static void handle_enc_encode_msg(struct venc_vpu_inst *vpu, void *data) > static void vpu_enc_ipi_handler(void *data, unsigned int len, void *priv) > { > struct venc_vpu_ipi_msg_common *msg = data; > - struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst; > + struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)(uintptr_t)msg->venc_inst; > > mtk_vcodec_debug(vpu, "msg_id %x inst %p status %d", > msg->msg_id, vpu, msg->status); > @@ -112,7 +112,7 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) > > memset(&out, 0, sizeof(out)); > out.msg_id = AP_IPIMSG_ENC_INIT; > - out.venc_inst = (unsigned long)vpu; > + out.venc_inst = (uintptr_t)vpu; > if (vpu_enc_send_msg(vpu, &out, sizeof(out))) { > mtk_vcodec_err(vpu, "AP_IPIMSG_ENC_INIT fail"); > return -EINVAL; -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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); 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, + &inst->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, + &inst->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 +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c @@ -37,7 +37,7 @@ static void handle_enc_encode_msg(struct venc_vpu_inst *vpu, void *data) static void vpu_enc_ipi_handler(void *data, unsigned int len, void *priv) { struct venc_vpu_ipi_msg_common *msg = data; - struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)msg->venc_inst; + struct venc_vpu_inst *vpu = (struct venc_vpu_inst *)(uintptr_t)msg->venc_inst; mtk_vcodec_debug(vpu, "msg_id %x inst %p status %d", msg->msg_id, vpu, msg->status); @@ -112,7 +112,7 @@ int vpu_enc_init(struct venc_vpu_inst *vpu) memset(&out, 0, sizeof(out)); out.msg_id = AP_IPIMSG_ENC_INIT; - out.venc_inst = (unsigned long)vpu; + out.venc_inst = (uintptr_t)vpu; if (vpu_enc_send_msg(vpu, &out, sizeof(out))) { mtk_vcodec_err(vpu, "AP_IPIMSG_ENC_INIT fail"); return -EINVAL;
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 <arnd@arndb.de> --- 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(-)