[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c1533e76-b8a2-70e6-d144-d53b26c9b952@collabora.com>
Date: Mon, 17 Apr 2023 11:35:34 +0200
From: AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>
To: Yunfei Dong <yunfei.dong@...iatek.com>,
Chen-Yu Tsai <wenst@...omium.org>,
Nicolas Dufresne <nicolas@...fresne.ca>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Benjamin Gaignard <benjamin.gaignard@...labora.com>,
NĂcolas F . R . A . Prado
<nfraprado@...labora.com>
Cc: Matthias Brugger <matthias.bgg@...il.com>,
Hsin-Yi Wang <hsinyi@...omium.org>,
Fritz Koenig <frkoenig@...omium.org>,
Daniel Vetter <daniel@...ll.ch>,
Steve Cho <stevecho@...omium.org>, linux-media@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org,
Project_Global_Chrome_Upstream_Group@...iatek.com
Subject: Re: [PATCH 5/6] media: mediatek: vcodec: move core context from
device to each instance
Il 17/04/23 07:48, Yunfei Dong ha scritto:
> There are so many lat buffer in core context list, some instances
> maybe be scheduled for a very long time. Moving the core context to
> each instance, it only be used to control lat buffer of each instance.
> And the core work queue of each instance is scheduled by system.
>
> Fixes: 2cfca6c1bf80 ("media: mediatek: vcodec: move lat_buf to the top of core list")
> Signed-off-by: Yunfei Dong <yunfei.dong@...iatek.com>
> ---
> .../mediatek/vcodec/mtk_vcodec_dec_drv.c | 1 -
> .../platform/mediatek/vcodec/mtk_vcodec_drv.h | 2 -
> .../vcodec/vdec/vdec_h264_req_multi_if.c | 4 +-
> .../vcodec/vdec/vdec_vp9_req_lat_if.c | 2 +-
> .../platform/mediatek/vcodec/vdec_msg_queue.c | 53 +++++++------------
> .../platform/mediatek/vcodec/vdec_msg_queue.h | 6 ++-
> 6 files changed, 25 insertions(+), 43 deletions(-)
>
..snip..
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h
> index a80b9853cec9..ae37d020a1bd 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h
> +++ b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.h
> @@ -83,10 +83,11 @@ struct vdec_lat_buf {
> * @wdma_wptr_addr: ube write point
> * @core_work: core hardware work
> * @lat_ctx: used to store lat buffer list
> - * @ctx: point to mtk_vcodec_ctx
> + * @core_ctx: used to store core buffer list
> *
> * @lat_list_cnt: used to record each instance lat list count
> * @core_list_cnt: used to record each instance core list count
> + * @flush_done: core flush done status
> * @empty_lat_buf: the last lat buf used to flush decode
> * @core_dec_done: core work queue decode done event
> * @status: current context decode status for core hardware
> @@ -100,10 +101,11 @@ struct vdec_msg_queue {
>
> struct work_struct core_work;
> struct vdec_msg_queue_ctx lat_ctx;
> - struct mtk_vcodec_ctx *ctx;
> + struct vdec_msg_queue_ctx core_ctx;
>
> atomic_t lat_list_cnt;
> atomic_t core_list_cnt;
> + bool flush_done;
flush_done is used in patch [6/6]: this does not belong to this patch,
please move the addition of this member in the same patch where you use it.
Regards,
Angelo
Powered by blists - more mailing lists