Message ID | 20230701090521.22240-1-irui.wang@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: mediatek: vcodec: Add a flag to indicate vdec_fb finding status | expand |
Dear all, A new patch v2 has been sent: https://patchwork.kernel.org/project/linux-media/list/?series=761892 current patch is superseded and can be abandoned. Thank you very much On Sat, 2023-07-01 at 17:05 +0800, Irui Wang wrote: > "fb_use_list" is vp9 stateful decoder driver to store current > used or referenced frame buffer, and "fb_free_list" is used to > store current available to be freed frame buffer. When the > target frame buffer cannot be found in "fb_use_list", "NULL" > should be returned to prevent unexpected frame buffer from being > placed into "fb_free_list". > > Signed-off-by: Irui Wang <irui.wang@mediatek.com> > --- > drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git > a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c > b/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c > index 70b8383f7c8e..e77d5a2452c1 100644 > --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c > +++ b/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c > @@ -220,15 +220,21 @@ static struct vdec_fb > *vp9_rm_from_fb_use_list(struct vdec_vp9_inst > { > struct vdec_fb *fb = NULL; > struct vdec_fb_node *node; > + bool found = false; > > list_for_each_entry(node, &inst->fb_use_list, list) { > fb = (struct vdec_fb *)node->fb; > if (fb->base_y.va == addr) { > list_move_tail(&node->list, > &inst->available_fb_node_list); > + found = true; > break; > } > } > + > + if (!found) > + fb = NULL; > + > return fb; > } >
diff --git a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c b/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c index 70b8383f7c8e..e77d5a2452c1 100644 --- a/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c +++ b/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c @@ -220,15 +220,21 @@ static struct vdec_fb *vp9_rm_from_fb_use_list(struct vdec_vp9_inst { struct vdec_fb *fb = NULL; struct vdec_fb_node *node; + bool found = false; list_for_each_entry(node, &inst->fb_use_list, list) { fb = (struct vdec_fb *)node->fb; if (fb->base_y.va == addr) { list_move_tail(&node->list, &inst->available_fb_node_list); + found = true; break; } } + + if (!found) + fb = NULL; + return fb; }
"fb_use_list" is vp9 stateful decoder driver to store current used or referenced frame buffer, and "fb_free_list" is used to store current available to be freed frame buffer. When the target frame buffer cannot be found in "fb_use_list", "NULL" should be returned to prevent unexpected frame buffer from being placed into "fb_free_list". Signed-off-by: Irui Wang <irui.wang@mediatek.com> --- drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_if.c | 6 ++++++ 1 file changed, 6 insertions(+)