[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bfb9375a4338b12a729bccf2254cb3f1cfa62a17.camel@mediatek.com>
Date: Wed, 12 Jun 2024 01:22:23 +0000
From: CK Hu (胡俊光) <ck.hu@...iatek.com>
To: Shawn Sung (宋孝謙) <Shawn.Sung@...iatek.com>,
"chunkuang.hu@...nel.org" <chunkuang.hu@...nel.org>
CC: "linux-mediatek@...ts.infradead.org" <linux-mediatek@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Bibby Hsieh (謝濟遠) <Bibby.Hsieh@...iatek.com>,
"jason-ch.chen@...iatek.corp-partner.google.com"
<jason-ch.chen@...iatek.corp-partner.google.com>,
Nancy Lin (林欣螢) <Nancy.Lin@...iatek.com>,
"daniel@...ll.ch" <daniel@...ll.ch>, "p.zabel@...gutronix.de"
<p.zabel@...gutronix.de>, "dri-devel@...ts.freedesktop.org"
<dri-devel@...ts.freedesktop.org>, "airlied@...il.com" <airlied@...il.com>,
"sean@...rly.run" <sean@...rly.run>, "matthias.bgg@...il.com"
<matthias.bgg@...il.com>, "fshao@...omium.org" <fshao@...omium.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"angelogioacchino.delregno@...labora.com"
<angelogioacchino.delregno@...labora.com>
Subject: Re: [PATCH v8 14/16] drm/mediatek: Support CRC in display driver
Hi, Shawn:
On Thu, 2024-06-06 at 17:26 +0800, Shawn Sung wrote:
> From: Hsiao Chien Sung <shawn.sung@...iatek.com>
>
> Register CRC related function pointers to support
> CRC retrieval.
>
> Signed-off-by: Hsiao Chien Sung <shawn.sung@...iatek.com>
> ---
[snip]
>
> +static void mtk_crtc_crc_work(struct kthread_work *base)
> +{
> + struct drm_vblank_work *work = to_drm_vblank_work(base);
> + struct mtk_crtc *mtk_crtc =
> + container_of(work, typeof(*mtk_crtc), crc_work);
> + struct mtk_ddp_comp *comp = mtk_crtc->crc_provider;
> +
> + if (!comp) {
> + DRM_WARN("%s(crtc-%d): no crc provider\n",
> + __func__, drm_crtc_index(&mtk_crtc->base));
> + return;
> + }
> +
> + if (mtk_crtc->base.crc.opened) {
> + u64 vblank = drm_crtc_vblank_count(&mtk_crtc->base);
> +
> + comp->funcs->crc_read(comp->dev);
> +
> + /* could take more than 50ms to finish */
> + drm_crtc_add_crc_entry(&mtk_crtc->base, true, vblank,
> + comp->funcs->crc_entry(comp->dev));
It seems that you could regenerate cmdq packet for crc here. So crtc
atomic flush and crc could use the same mailbox channel.
Regards,
CK
> +
> + drm_vblank_work_schedule(&mtk_crtc->crc_work, vblank + 1, true);
> + } else {
> + comp->funcs->crc_stop(comp->dev);
> + }
> +}
> +
Powered by blists - more mailing lists