All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
To: Yunfei Dong <yunfei.dong@mediatek.com>
Cc: Alexandre Courbot <acourbot@chromium.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Tzung-Bi Shih <tzungbi@chromium.org>,
	Tiffany Lin <tiffany.lin@mediatek.com>,
	Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Tomasz Figa <tfiga@google.com>,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Fritz Koenig <frkoenig@chromium.org>,
	Dafna Hirschfeld <dafna.hirschfeld@collabora.com>,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Irui Wang <irui.wang@mediatek.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	srv_heupstream@mediatek.com, linux-mediatek@lists.infradead.org,
	Project_Global_Chrome_Upstream_Group@mediatek.com
Subject: Re: [PATCH v7, 11/15] media: mtk-vcodec: Add core thread
Date: Thu, 14 Oct 2021 09:29:42 -0300	[thread overview]
Message-ID: <YWgitrqT9sWyELpr@fedora> (raw)
In-Reply-To: <20211011070247.792-12-yunfei.dong@mediatek.com>

Hi Yunfei,

On Mon, Oct 11, 2021 at 03:02:43PM +0800, Yunfei Dong wrote:
> Core thread:
> 1. Gets lat_buf from core msg queue.
> 2. Proceeds core decode.
> 3. Puts the lat_buf back to lat msg queue.
> 
> Both H264 and VP9 rely on the core thread.
> 

Avoid the kthread API and instead go with the workqueue API.

See Documentation/core-api/workqueue.rst and include/linux/workqueue.h.

Thanks!
Ezequiel

> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
>  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  | 12 +++++++
>  .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  7 ++++
>  .../platform/mtk-vcodec/vdec_msg_queue.c      | 32 +++++++++++++++++++
>  .../platform/mtk-vcodec/vdec_msg_queue.h      |  6 ++++
>  4 files changed, 57 insertions(+)
> 
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> index e21e0c4bcd86..de83e3b821b4 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> @@ -364,6 +364,18 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
>  		goto err_dec_pm;
>  	}
>  
> +	if (VDEC_LAT_ARCH(dev->vdec_pdata->hw_arch)) {
> +		vdec_msg_queue_init_ctx(&dev->msg_queue_core_ctx,
> +			MTK_VDEC_CORE);
> +		dev->kthread_core = kthread_run(vdec_msg_queue_core_thead, dev,
> +			"mtk-%s", "core");
> +		if (IS_ERR(dev->kthread_core)) {
> +			dev_err(&pdev->dev, "Failed to create core thread");
> +			ret = PTR_ERR(dev->kthread_core);
> +			goto err_res;
> +		}
> +	}
> +
>  	for (i = 0; i < MTK_VDEC_HW_MAX; i++)
>  		mutex_init(&dev->dec_mutex[i]);
>  	spin_lock_init(&dev->irqlock);
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> index 9d072c082f73..68a9b1a2d3b3 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> @@ -27,6 +27,7 @@
>  #define MTK_VCODEC_MAX_PLANES	3
>  #define MTK_V4L2_BENCHMARK	0
>  #define WAIT_INTR_TIMEOUT_MS	1000
> +#define VDEC_LAT_ARCH(hw_arch) ((hw_arch) >= MTK_VDEC_LAT_SINGLE_CORE)
>  
>  /*
>   * enum mtk_hw_reg_idx - MTK hw register base index
> @@ -466,6 +467,9 @@ struct mtk_vcodec_enc_pdata {
>   * @comp_dev: component hardware device
>   * @component_node: component node
>   *
> + * @kthread_core: thread used for core hardware decode
> + * @msg_queue_core_ctx: msg queue context used for core thread
> + *
>   * @hardware_bitmap: used to record hardware is ready or not
>   */
>  struct mtk_vcodec_dev {
> @@ -508,6 +512,9 @@ struct mtk_vcodec_dev {
>  	void *comp_dev[MTK_VDEC_HW_MAX];
>  	struct device_node *component_node[MTK_VDEC_HW_MAX];
>  
> +	struct task_struct *kthread_core;
> +	struct vdec_msg_queue_ctx msg_queue_core_ctx;
> +
>  	DECLARE_BITMAP(hardware_bitmap, MTK_VDEC_HW_MAX);
>  };
>  
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> index d66ed98c79a9..665f571eab4b 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> @@ -256,3 +256,35 @@ void vdec_msg_queue_deinit(
>  			kfree(lat_buf->private_data);
>  	}
>  }
> +
> +int vdec_msg_queue_core_thead(void *data)
> +{
> +	struct mtk_vcodec_dev *dev = data;
> +	struct vdec_lat_buf *lat_buf;
> +	struct mtk_vcodec_ctx *ctx;
> +
> +	set_freezable();
> +	for (;;) {
> +		try_to_freeze();
> +		if (kthread_should_stop())
> +			break;
> +
> +		lat_buf = vdec_msg_queue_dqbuf(&dev->msg_queue_core_ctx);
> +		if (!lat_buf)
> +			continue;
> +
> +		ctx = lat_buf->ctx;
> +		mtk_vcodec_set_curr_ctx(dev, ctx, MTK_VDEC_CORE);
> +
> +		if (!lat_buf->core_decode)
> +			mtk_v4l2_err("Core decode callback func is NULL");
> +		else
> +			lat_buf->core_decode(lat_buf);
> +
> +		mtk_vcodec_set_curr_ctx(dev, NULL, MTK_VDEC_CORE);
> +		vdec_msg_queue_qbuf(&ctx->msg_queue.lat_ctx, lat_buf);
> +	}
> +
> +	mtk_v4l2_debug(3, "Video Capture Thread End");
> +	return 0;
> +}
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> index 1905ce713592..b5745b144140 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> @@ -148,4 +148,10 @@ void vdec_msg_queue_deinit(
>  	struct vdec_msg_queue *msg_queue,
>  	struct mtk_vcodec_ctx *ctx);
>  
> +/**
> + * vdec_msg_queue_core_thead - used for core decoder.
> + * @data: private data used for each codec
> + */
> +int vdec_msg_queue_core_thead(void *data);
> +
>  #endif
> -- 
> 2.25.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
To: Yunfei Dong <yunfei.dong@mediatek.com>
Cc: Alexandre Courbot <acourbot@chromium.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Tzung-Bi Shih <tzungbi@chromium.org>,
	Tiffany Lin <tiffany.lin@mediatek.com>,
	Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Tomasz Figa <tfiga@google.com>,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Fritz Koenig <frkoenig@chromium.org>,
	Dafna Hirschfeld <dafna.hirschfeld@collabora.com>,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Irui Wang <irui.wang@mediatek.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	srv_heupstream@mediatek.com, linux-mediatek@lists.infradead.org,
	Project_Global_Chrome_Upstream_Group@mediatek.com
Subject: Re: [PATCH v7, 11/15] media: mtk-vcodec: Add core thread
Date: Thu, 14 Oct 2021 09:29:42 -0300	[thread overview]
Message-ID: <YWgitrqT9sWyELpr@fedora> (raw)
In-Reply-To: <20211011070247.792-12-yunfei.dong@mediatek.com>

Hi Yunfei,

On Mon, Oct 11, 2021 at 03:02:43PM +0800, Yunfei Dong wrote:
> Core thread:
> 1. Gets lat_buf from core msg queue.
> 2. Proceeds core decode.
> 3. Puts the lat_buf back to lat msg queue.
> 
> Both H264 and VP9 rely on the core thread.
> 

Avoid the kthread API and instead go with the workqueue API.

See Documentation/core-api/workqueue.rst and include/linux/workqueue.h.

Thanks!
Ezequiel

> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
>  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  | 12 +++++++
>  .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  7 ++++
>  .../platform/mtk-vcodec/vdec_msg_queue.c      | 32 +++++++++++++++++++
>  .../platform/mtk-vcodec/vdec_msg_queue.h      |  6 ++++
>  4 files changed, 57 insertions(+)
> 
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> index e21e0c4bcd86..de83e3b821b4 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> @@ -364,6 +364,18 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
>  		goto err_dec_pm;
>  	}
>  
> +	if (VDEC_LAT_ARCH(dev->vdec_pdata->hw_arch)) {
> +		vdec_msg_queue_init_ctx(&dev->msg_queue_core_ctx,
> +			MTK_VDEC_CORE);
> +		dev->kthread_core = kthread_run(vdec_msg_queue_core_thead, dev,
> +			"mtk-%s", "core");
> +		if (IS_ERR(dev->kthread_core)) {
> +			dev_err(&pdev->dev, "Failed to create core thread");
> +			ret = PTR_ERR(dev->kthread_core);
> +			goto err_res;
> +		}
> +	}
> +
>  	for (i = 0; i < MTK_VDEC_HW_MAX; i++)
>  		mutex_init(&dev->dec_mutex[i]);
>  	spin_lock_init(&dev->irqlock);
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> index 9d072c082f73..68a9b1a2d3b3 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> @@ -27,6 +27,7 @@
>  #define MTK_VCODEC_MAX_PLANES	3
>  #define MTK_V4L2_BENCHMARK	0
>  #define WAIT_INTR_TIMEOUT_MS	1000
> +#define VDEC_LAT_ARCH(hw_arch) ((hw_arch) >= MTK_VDEC_LAT_SINGLE_CORE)
>  
>  /*
>   * enum mtk_hw_reg_idx - MTK hw register base index
> @@ -466,6 +467,9 @@ struct mtk_vcodec_enc_pdata {
>   * @comp_dev: component hardware device
>   * @component_node: component node
>   *
> + * @kthread_core: thread used for core hardware decode
> + * @msg_queue_core_ctx: msg queue context used for core thread
> + *
>   * @hardware_bitmap: used to record hardware is ready or not
>   */
>  struct mtk_vcodec_dev {
> @@ -508,6 +512,9 @@ struct mtk_vcodec_dev {
>  	void *comp_dev[MTK_VDEC_HW_MAX];
>  	struct device_node *component_node[MTK_VDEC_HW_MAX];
>  
> +	struct task_struct *kthread_core;
> +	struct vdec_msg_queue_ctx msg_queue_core_ctx;
> +
>  	DECLARE_BITMAP(hardware_bitmap, MTK_VDEC_HW_MAX);
>  };
>  
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> index d66ed98c79a9..665f571eab4b 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> @@ -256,3 +256,35 @@ void vdec_msg_queue_deinit(
>  			kfree(lat_buf->private_data);
>  	}
>  }
> +
> +int vdec_msg_queue_core_thead(void *data)
> +{
> +	struct mtk_vcodec_dev *dev = data;
> +	struct vdec_lat_buf *lat_buf;
> +	struct mtk_vcodec_ctx *ctx;
> +
> +	set_freezable();
> +	for (;;) {
> +		try_to_freeze();
> +		if (kthread_should_stop())
> +			break;
> +
> +		lat_buf = vdec_msg_queue_dqbuf(&dev->msg_queue_core_ctx);
> +		if (!lat_buf)
> +			continue;
> +
> +		ctx = lat_buf->ctx;
> +		mtk_vcodec_set_curr_ctx(dev, ctx, MTK_VDEC_CORE);
> +
> +		if (!lat_buf->core_decode)
> +			mtk_v4l2_err("Core decode callback func is NULL");
> +		else
> +			lat_buf->core_decode(lat_buf);
> +
> +		mtk_vcodec_set_curr_ctx(dev, NULL, MTK_VDEC_CORE);
> +		vdec_msg_queue_qbuf(&ctx->msg_queue.lat_ctx, lat_buf);
> +	}
> +
> +	mtk_v4l2_debug(3, "Video Capture Thread End");
> +	return 0;
> +}
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> index 1905ce713592..b5745b144140 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> @@ -148,4 +148,10 @@ void vdec_msg_queue_deinit(
>  	struct vdec_msg_queue *msg_queue,
>  	struct mtk_vcodec_ctx *ctx);
>  
> +/**
> + * vdec_msg_queue_core_thead - used for core decoder.
> + * @data: private data used for each codec
> + */
> +int vdec_msg_queue_core_thead(void *data);
> +
>  #endif
> -- 
> 2.25.1
> 

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
To: Yunfei Dong <yunfei.dong@mediatek.com>
Cc: Alexandre Courbot <acourbot@chromium.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Tzung-Bi Shih <tzungbi@chromium.org>,
	Tiffany Lin <tiffany.lin@mediatek.com>,
	Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Tomasz Figa <tfiga@google.com>,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Fritz Koenig <frkoenig@chromium.org>,
	Dafna Hirschfeld <dafna.hirschfeld@collabora.com>,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Irui Wang <irui.wang@mediatek.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	srv_heupstream@mediatek.com, linux-mediatek@lists.infradead.org,
	Project_Global_Chrome_Upstream_Group@mediatek.com
Subject: Re: [PATCH v7, 11/15] media: mtk-vcodec: Add core thread
Date: Thu, 14 Oct 2021 09:29:42 -0300	[thread overview]
Message-ID: <YWgitrqT9sWyELpr@fedora> (raw)
In-Reply-To: <20211011070247.792-12-yunfei.dong@mediatek.com>

Hi Yunfei,

On Mon, Oct 11, 2021 at 03:02:43PM +0800, Yunfei Dong wrote:
> Core thread:
> 1. Gets lat_buf from core msg queue.
> 2. Proceeds core decode.
> 3. Puts the lat_buf back to lat msg queue.
> 
> Both H264 and VP9 rely on the core thread.
> 

Avoid the kthread API and instead go with the workqueue API.

See Documentation/core-api/workqueue.rst and include/linux/workqueue.h.

Thanks!
Ezequiel

> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
>  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  | 12 +++++++
>  .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  7 ++++
>  .../platform/mtk-vcodec/vdec_msg_queue.c      | 32 +++++++++++++++++++
>  .../platform/mtk-vcodec/vdec_msg_queue.h      |  6 ++++
>  4 files changed, 57 insertions(+)
> 
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> index e21e0c4bcd86..de83e3b821b4 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> @@ -364,6 +364,18 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
>  		goto err_dec_pm;
>  	}
>  
> +	if (VDEC_LAT_ARCH(dev->vdec_pdata->hw_arch)) {
> +		vdec_msg_queue_init_ctx(&dev->msg_queue_core_ctx,
> +			MTK_VDEC_CORE);
> +		dev->kthread_core = kthread_run(vdec_msg_queue_core_thead, dev,
> +			"mtk-%s", "core");
> +		if (IS_ERR(dev->kthread_core)) {
> +			dev_err(&pdev->dev, "Failed to create core thread");
> +			ret = PTR_ERR(dev->kthread_core);
> +			goto err_res;
> +		}
> +	}
> +
>  	for (i = 0; i < MTK_VDEC_HW_MAX; i++)
>  		mutex_init(&dev->dec_mutex[i]);
>  	spin_lock_init(&dev->irqlock);
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> index 9d072c082f73..68a9b1a2d3b3 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
> @@ -27,6 +27,7 @@
>  #define MTK_VCODEC_MAX_PLANES	3
>  #define MTK_V4L2_BENCHMARK	0
>  #define WAIT_INTR_TIMEOUT_MS	1000
> +#define VDEC_LAT_ARCH(hw_arch) ((hw_arch) >= MTK_VDEC_LAT_SINGLE_CORE)
>  
>  /*
>   * enum mtk_hw_reg_idx - MTK hw register base index
> @@ -466,6 +467,9 @@ struct mtk_vcodec_enc_pdata {
>   * @comp_dev: component hardware device
>   * @component_node: component node
>   *
> + * @kthread_core: thread used for core hardware decode
> + * @msg_queue_core_ctx: msg queue context used for core thread
> + *
>   * @hardware_bitmap: used to record hardware is ready or not
>   */
>  struct mtk_vcodec_dev {
> @@ -508,6 +512,9 @@ struct mtk_vcodec_dev {
>  	void *comp_dev[MTK_VDEC_HW_MAX];
>  	struct device_node *component_node[MTK_VDEC_HW_MAX];
>  
> +	struct task_struct *kthread_core;
> +	struct vdec_msg_queue_ctx msg_queue_core_ctx;
> +
>  	DECLARE_BITMAP(hardware_bitmap, MTK_VDEC_HW_MAX);
>  };
>  
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> index d66ed98c79a9..665f571eab4b 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.c
> @@ -256,3 +256,35 @@ void vdec_msg_queue_deinit(
>  			kfree(lat_buf->private_data);
>  	}
>  }
> +
> +int vdec_msg_queue_core_thead(void *data)
> +{
> +	struct mtk_vcodec_dev *dev = data;
> +	struct vdec_lat_buf *lat_buf;
> +	struct mtk_vcodec_ctx *ctx;
> +
> +	set_freezable();
> +	for (;;) {
> +		try_to_freeze();
> +		if (kthread_should_stop())
> +			break;
> +
> +		lat_buf = vdec_msg_queue_dqbuf(&dev->msg_queue_core_ctx);
> +		if (!lat_buf)
> +			continue;
> +
> +		ctx = lat_buf->ctx;
> +		mtk_vcodec_set_curr_ctx(dev, ctx, MTK_VDEC_CORE);
> +
> +		if (!lat_buf->core_decode)
> +			mtk_v4l2_err("Core decode callback func is NULL");
> +		else
> +			lat_buf->core_decode(lat_buf);
> +
> +		mtk_vcodec_set_curr_ctx(dev, NULL, MTK_VDEC_CORE);
> +		vdec_msg_queue_qbuf(&ctx->msg_queue.lat_ctx, lat_buf);
> +	}
> +
> +	mtk_v4l2_debug(3, "Video Capture Thread End");
> +	return 0;
> +}
> diff --git a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> index 1905ce713592..b5745b144140 100644
> --- a/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> +++ b/drivers/media/platform/mtk-vcodec/vdec_msg_queue.h
> @@ -148,4 +148,10 @@ void vdec_msg_queue_deinit(
>  	struct vdec_msg_queue *msg_queue,
>  	struct mtk_vcodec_ctx *ctx);
>  
> +/**
> + * vdec_msg_queue_core_thead - used for core decoder.
> + * @data: private data used for each codec
> + */
> +int vdec_msg_queue_core_thead(void *data);
> +
>  #endif
> -- 
> 2.25.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-10-14 12:29 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-11  7:02 [PATCH v7, 00/15] Support multi hardware decode using of_platform_populate Yunfei Dong
2021-10-11  7:02 ` Yunfei Dong
2021-10-11  7:02 ` Yunfei Dong
2021-10-11  7:02 ` [PATCH v7, 01/15] media: mtk-vcodec: Get numbers of register bases from DT Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02 ` [PATCH v7, 02/15] media: mtk-vcodec: Align vcodec wake up interrupt interface Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:12   ` AngeloGioacchino Del Regno
2021-10-14 11:12     ` AngeloGioacchino Del Regno
2021-10-14 11:12     ` AngeloGioacchino Del Regno
2021-10-11  7:02 ` [PATCH v7, 03/15] media: mtk-vcodec: Refactor vcodec pm interface Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:12   ` AngeloGioacchino Del Regno
2021-10-14 11:12     ` AngeloGioacchino Del Regno
2021-10-14 11:12     ` AngeloGioacchino Del Regno
2021-10-14 13:44   ` Dafna Hirschfeld
2021-10-14 13:44     ` Dafna Hirschfeld
2021-10-14 13:44     ` Dafna Hirschfeld
2021-10-29  3:29     ` yunfei.dong
2021-10-29  3:29       ` yunfei.dong
2021-10-29  3:29       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 04/15] media: mtk-vcodec: Manage multi hardware information Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14  9:20   ` AngeloGioacchino Del Regno
2021-10-14  9:20     ` AngeloGioacchino Del Regno
2021-10-14  9:20     ` AngeloGioacchino Del Regno
2021-10-29  3:05     ` yunfei.dong
2021-10-29  3:05       ` yunfei.dong
2021-10-29  3:05       ` yunfei.dong
2021-10-14  9:30   ` AngeloGioacchino Del Regno
2021-10-14  9:30     ` AngeloGioacchino Del Regno
2021-10-14  9:30     ` AngeloGioacchino Del Regno
2021-10-11  7:02 ` [PATCH v7, 05/15] dt-bindings: media: mtk-vcodec: Separate video encoder and decoder dt-bindings Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02 ` [PATCH v7, 06/15] media: mtk-vcodec: Use pure single core for MT8183 Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:13   ` AngeloGioacchino Del Regno
2021-10-14 11:13     ` AngeloGioacchino Del Regno
2021-10-14 11:13     ` AngeloGioacchino Del Regno
2021-10-11  7:02 ` [PATCH v7, 07/15] media: mtk-vcodec: Add irq interface for multi hardware Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 10:04   ` AngeloGioacchino Del Regno
2021-10-14 10:04     ` AngeloGioacchino Del Regno
2021-10-14 10:04     ` AngeloGioacchino Del Regno
2021-10-27 11:36     ` yunfei.dong
2021-10-27 11:36       ` yunfei.dong
2021-10-27 11:36       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 08/15] media: mtk-vcodec: Add msg queue feature for lat and core architecture Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 10:35   ` AngeloGioacchino Del Regno
2021-10-14 10:35     ` AngeloGioacchino Del Regno
2021-10-14 10:35     ` AngeloGioacchino Del Regno
2021-10-27  4:01     ` yunfei.dong
2021-10-27  4:01       ` yunfei.dong
2021-10-27  4:01       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 09/15] media: mtk-vcodec: Generalize power and clock on/off interfaces Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 10:44   ` AngeloGioacchino Del Regno
2021-10-14 10:44     ` AngeloGioacchino Del Regno
2021-10-14 10:44     ` AngeloGioacchino Del Regno
2021-10-27  3:55     ` yunfei.dong
2021-10-27  3:55       ` yunfei.dong
2021-10-27  3:55       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 10/15] media: mtk-vcodec: Add new interface to lock different hardware Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 10:47   ` AngeloGioacchino Del Regno
2021-10-14 10:47     ` AngeloGioacchino Del Regno
2021-10-14 10:47     ` AngeloGioacchino Del Regno
2021-10-11  7:02 ` [PATCH v7, 11/15] media: mtk-vcodec: Add core thread Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 10:56   ` AngeloGioacchino Del Regno
2021-10-14 10:56     ` AngeloGioacchino Del Regno
2021-10-14 10:56     ` AngeloGioacchino Del Regno
2021-10-27  3:47     ` yunfei.dong
2021-10-27  3:47       ` yunfei.dong
2021-10-27  3:47       ` yunfei.dong
2021-10-14 12:29   ` Ezequiel Garcia [this message]
2021-10-14 12:29     ` Ezequiel Garcia
2021-10-14 12:29     ` Ezequiel Garcia
2021-10-29  3:25     ` yunfei.dong
2021-10-29  3:25       ` yunfei.dong
2021-10-29  3:25       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 12/15] media: mtk-vcodec: Support 34bits dma address for vdec Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:02   ` AngeloGioacchino Del Regno
2021-10-14 11:02     ` AngeloGioacchino Del Regno
2021-10-14 11:02     ` AngeloGioacchino Del Regno
2021-10-27  3:44     ` yunfei.dong
2021-10-27  3:44       ` yunfei.dong
2021-10-27  3:44       ` yunfei.dong
2021-10-11  7:02 ` [PATCH v7, 13/15] dt-bindings: media: mtk-vcodec: Adds decoder dt-bindings for mt8192 Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11 13:36   ` Rob Herring
2021-10-11 13:36     ` Rob Herring
2021-10-11 13:36     ` Rob Herring
2021-10-11  7:02 ` [PATCH v7, 14/15] media: mtk-vcodec: Add core dec and dec end ipi msg Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:04   ` AngeloGioacchino Del Regno
2021-10-14 11:04     ` AngeloGioacchino Del Regno
2021-10-14 11:04     ` AngeloGioacchino Del Regno
2021-10-11  7:02 ` [PATCH v7, 15/15] media: mtk-vcodec: Use codec type to separate different hardware Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-11  7:02   ` Yunfei Dong
2021-10-14 11:08   ` AngeloGioacchino Del Regno
2021-10-14 11:08     ` AngeloGioacchino Del Regno
2021-10-14 11:08     ` AngeloGioacchino Del Regno
2021-10-12 14:27 ` [PATCH v7, 00/15] Support multi hardware decode using of_platform_populate Andrzej Pietrasiewicz
2021-10-12 14:27   ` Andrzej Pietrasiewicz
2021-10-12 14:27   ` Andrzej Pietrasiewicz
2021-10-13  1:08   ` yunfei.dong
2021-10-13  1:08     ` yunfei.dong
2021-10-13  1:08     ` yunfei.dong
2021-10-13 10:55     ` Andrzej Pietrasiewicz
2021-10-13 10:55       ` Andrzej Pietrasiewicz
2021-10-13 10:55       ` Andrzej Pietrasiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YWgitrqT9sWyELpr@fedora \
    --to=ezequiel@vanguardiasur.com.ar \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=acourbot@chromium.org \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=benjamin.gaignard@collabora.com \
    --cc=dafna.hirschfeld@collabora.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=frkoenig@chromium.org \
    --cc=hsinyi@chromium.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=irui.wang@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=srv_heupstream@mediatek.com \
    --cc=tfiga@google.com \
    --cc=tiffany.lin@mediatek.com \
    --cc=tzungbi@chromium.org \
    --cc=yunfei.dong@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.