diff mbox series

[v3] media: mediatek: vcodec: support 36 bits physical address

Message ID 20240411070127.12384-1-yunfei.dong@mediatek.com (mailing list archive)
State New
Headers show
Series [v3] media: mediatek: vcodec: support 36 bits physical address | expand

Commit Message

Yunfei Dong April 11, 2024, 7:01 a.m. UTC
The physical address on the MT8188 platform is larger than 32 bits,
change the type from unsigned int to dma_addr_t to be able to access
the high bits of the address.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
compared with v2:
- remove unless cast
---
 .../media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c | 2 +-
 .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Hans Verkuil April 11, 2024, 7:11 a.m. UTC | #1
Hi Yunfei,

Since the v2 patch is now merged in mainline as-is, you need to make a patch
on top of that.

So just post a new patch that applies to the mainline.

Regards,

	Hans

On 11/04/2024 09:01, Yunfei Dong wrote:
> The physical address on the MT8188 platform is larger than 32 bits,
> change the type from unsigned int to dma_addr_t to be able to access
> the high bits of the address.
> 
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> compared with v2:
> - remove unless cast
> ---
>  .../media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c | 2 +-
>  .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> index 9649f4ec1f2a..5f848691cea4 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> @@ -449,7 +449,7 @@ static int vdec_vp8_decode(void *h_vdec, struct mtk_vcodec_mem *bs,
>  		       inst->frm_cnt, y_fb_dma, c_fb_dma, fb);
>  
>  	inst->cur_fb = fb;
> -	dec->bs_dma = (unsigned long)bs->dma_addr;
> +	dec->bs_dma = bs->dma_addr;
>  	dec->bs_sz = bs->size;
>  	dec->cur_y_fb_dma = y_fb_dma;
>  	dec->cur_c_fb_dma = c_fb_dma;
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index cf48d09b78d7..eea709d93820 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -1074,7 +1074,7 @@ static int vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
>  	unsigned int mi_row;
>  	unsigned int mi_col;
>  	unsigned int offset;
> -	unsigned int pa;
> +	dma_addr_t pa;
>  	unsigned int size;
>  	struct vdec_vp9_slice_tiles *tiles;
>  	unsigned char *pos;
> @@ -1109,7 +1109,7 @@ static int vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
>  	pos = va + offset;
>  	end = va + bs->size;
>  	/* truncated */
> -	pa = (unsigned int)bs->dma_addr + offset;
> +	pa = bs->dma_addr + offset;
>  	tb = instance->tile.va;
>  	for (i = 0; i < rows; i++) {
>  		for (j = 0; j < cols; j++) {
Yunfei Dong April 12, 2024, 3:59 a.m. UTC | #2
Hi Hans,

Thanks for your advice.

Send the fix patch again => media: mediatek: vcodec: Fix unreasonable
data conversion

Best Regards,
Yunfei Dong

On Thu, 2024-04-11 at 09:11 +0200, Hans Verkuil wrote:
>  	 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>  Hi Yunfei,
> 
> Since the v2 patch is now merged in mainline as-is, you need to make
> a patch
> on top of that.
> 
> So just post a new patch that applies to the mainline.
> 
> Regards,
> 
> Hans
> 
> On 11/04/2024 09:01, Yunfei Dong wrote:
> > The physical address on the MT8188 platform is larger than 32 bits,
> > change the type from unsigned int to dma_addr_t to be able to
> access
> > the high bits of the address.
> > 
> > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@collabora.com>
> > ---
> > compared with v2:
> > - remove unless cast
> > ---
> >  .../media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c | 2
> +-
> >  .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c        | 4
> ++--
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> > index 9649f4ec1f2a..5f848691cea4 100644
> > ---
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> > +++
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
> > @@ -449,7 +449,7 @@ static int vdec_vp8_decode(void *h_vdec, struct
> mtk_vcodec_mem *bs,
> >         inst->frm_cnt, y_fb_dma, c_fb_dma, fb);
> >  
> >  inst->cur_fb = fb;
> > -dec->bs_dma = (unsigned long)bs->dma_addr;
> > +dec->bs_dma = bs->dma_addr;
> >  dec->bs_sz = bs->size;
> >  dec->cur_y_fb_dma = y_fb_dma;
> >  dec->cur_c_fb_dma = c_fb_dma;
> > diff --git
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_la
> t_if.c
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_la
> t_if.c
> > index cf48d09b78d7..eea709d93820 100644
> > ---
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_la
> t_if.c
> > +++
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_la
> t_if.c
> > @@ -1074,7 +1074,7 @@ static int
> vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
> >  unsigned int mi_row;
> >  unsigned int mi_col;
> >  unsigned int offset;
> > -unsigned int pa;
> > +dma_addr_t pa;
> >  unsigned int size;
> >  struct vdec_vp9_slice_tiles *tiles;
> >  unsigned char *pos;
> > @@ -1109,7 +1109,7 @@ static int
> vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
> >  pos = va + offset;
> >  end = va + bs->size;
> >  /* truncated */
> > -pa = (unsigned int)bs->dma_addr + offset;
> > +pa = bs->dma_addr + offset;
> >  tb = instance->tile.va;
> >  for (i = 0; i < rows; i++) {
> >  for (j = 0; j < cols; j++) {
> 
>
diff mbox series

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
index 9649f4ec1f2a..5f848691cea4 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
@@ -449,7 +449,7 @@  static int vdec_vp8_decode(void *h_vdec, struct mtk_vcodec_mem *bs,
 		       inst->frm_cnt, y_fb_dma, c_fb_dma, fb);
 
 	inst->cur_fb = fb;
-	dec->bs_dma = (unsigned long)bs->dma_addr;
+	dec->bs_dma = bs->dma_addr;
 	dec->bs_sz = bs->size;
 	dec->cur_y_fb_dma = y_fb_dma;
 	dec->cur_c_fb_dma = c_fb_dma;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index cf48d09b78d7..eea709d93820 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -1074,7 +1074,7 @@  static int vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
 	unsigned int mi_row;
 	unsigned int mi_col;
 	unsigned int offset;
-	unsigned int pa;
+	dma_addr_t pa;
 	unsigned int size;
 	struct vdec_vp9_slice_tiles *tiles;
 	unsigned char *pos;
@@ -1109,7 +1109,7 @@  static int vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
 	pos = va + offset;
 	end = va + bs->size;
 	/* truncated */
-	pa = (unsigned int)bs->dma_addr + offset;
+	pa = bs->dma_addr + offset;
 	tb = instance->tile.va;
 	for (i = 0; i < rows; i++) {
 		for (j = 0; j < cols; j++) {