[PATCH] media: mediatek: vcodec: support 36bit physical address

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Fri Mar 1 01:36:08 PST 2024


Il 01/03/24 10:23, Yunfei Dong (董云飞) ha scritto:
> Hi AngeloGioacchino,
> 
> Thanks for you reviewing.
> On Fri, 2024-03-01 at 10:03 +0100, AngeloGioacchino Del Regno wrote:
>> Il 01/03/24 03:01, Yunfei Dong ha scritto:
>>> The physical address is beyond 32bit for mt8188 platform, need
>>> to change the type from unsigned int to unsigned long in case of
>>> the high bit missing.
>>>
>>> Signed-off-by: Yunfei Dong <yunfei.dong at mediatek.com>
>>> ---
>>>    .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c        | 4
>>> ++--
>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> 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..85df3e7c2983 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;
>>> +	unsigned long pa;
>>
>> If you used the right type from the beginning, you wouldn't have to
>> fix that ;-)
>>
> Yes, you are right, thanks for your remind.
>> Is there any reason why you didn't - and still don't use the
>> `phys_addr_t` type
>> for the `pa` member?
>>
> pa is also iova, dma address. Change it to dma_addr_t looks much
> better.
> 

Ok, dma_addr_t looks good as well.

Cheers!

> I will change it in next patch.
>> Cheers,
>> Angelo
>>
> Best Regards,
> Yunfei Dong
>>>    	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 = (unsigned long)bs->dma_addr + offset;
>>>    	tb = instance->tile.va;
>>>    	for (i = 0; i < rows; i++) {
>>>    		for (j = 0; j < cols; j++) {
>>
>>




More information about the Linux-mediatek mailing list