Message ID | 20240411070127.12384-1-yunfei.dong@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] media: mediatek: vcodec: support 36 bits physical address | expand |
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++) {
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 --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++) {