All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hsin-Yi Wang <hsinyi@chromium.org>
To: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>,
	AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	kernel@collabora.com, Daniel Vetter <daniel@ffwll.ch>,
	David Airlie <airlied@linux.ie>,
	Jitao Shi <jitao.shi@mediatek.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Rex-BC Chen <rex-bc.chen@mediatek.com>,
	Xinlei Lee <xinlei.lee@mediatek.com>,
	dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
Date: Mon, 19 Sep 2022 16:40:34 +0800	[thread overview]
Message-ID: <CAJMQK-hOxxvkjgOxA6KLLUJxxBehHDQvRo-Y_FLMPLEfkoVMzA@mail.gmail.com> (raw)
In-Reply-To: <20220804194325.1596554-1-nfraprado@collabora.com>

On Mon, Sep 19, 2022 at 4:39 PM Nícolas F. R. A. Prado
<nfraprado@collabora.com> wrote:
>
> As the comment right before the mtk_dsi_stop() call advises,
> mtk_dsi_stop() should only be called after
> mtk_drm_crtc_atomic_disable(). That's because that function calls
> drm_crtc_wait_one_vblank(), which requires the vblank irq to be enabled.
>
> Previously mtk_dsi_stop(), being in mtk_dsi_poweroff() and guarded by a
> refcount, would only be called at the end of
> mtk_drm_crtc_atomic_disable(), through the call to mtk_crtc_ddp_hw_fini().
> Commit cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from
> enable/disable and define new funcs") moved the mtk_dsi_stop() call to
> mtk_output_dsi_disable(), causing it to be called before
> mtk_drm_crtc_atomic_disable(), and consequently generating vblank
> timeout warnings during suspend.
>
> Move the mtk_dsi_stop() call back to mtk_dsi_poweroff() so that we have
> a working vblank irq during mtk_drm_crtc_atomic_disable() and stop
> getting vblank timeout warnings.
>
> Fixes: cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs")
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>

Tested on mt8183 jacuzzi and mt8186 that this patch fixes the vblank warning.

> ---
>
>  drivers/gpu/drm/mediatek/mtk_dsi.c | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 9cc406e1eee1..f8ad59771551 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -685,6 +685,16 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)
>         if (--dsi->refcount != 0)
>                 return;
>
> +       /*
> +        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> +        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> +        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> +        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> +        * after dsi is fully set.
> +        */
> +       mtk_dsi_stop(dsi);
> +
> +       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
>         mtk_dsi_reset_engine(dsi);
>         mtk_dsi_lane0_ulp_mode_enter(dsi);
>         mtk_dsi_clk_ulp_mode_enter(dsi);
> @@ -735,17 +745,6 @@ static void mtk_output_dsi_disable(struct mtk_dsi *dsi)
>         if (!dsi->enabled)
>                 return;
>
> -       /*
> -        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> -        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> -        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> -        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> -        * after dsi is fully set.
> -        */
> -       mtk_dsi_stop(dsi);
> -
> -       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
> -
>         dsi->enabled = false;
>  }
>
> --
> 2.37.1
>

WARNING: multiple messages have this Message-ID (diff)
From: Hsin-Yi Wang <hsinyi@chromium.org>
To: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>,
	Jitao Shi <jitao.shi@mediatek.com>,
	Xinlei Lee <xinlei.lee@mediatek.com>,
	David Airlie <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Rex-BC Chen <rex-bc.chen@mediatek.com>,
	linux-mediatek@lists.infradead.org,
	Matthias Brugger <matthias.bgg@gmail.com>,
	kernel@collabora.com, linux-arm-kernel@lists.infradead.org,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>
Subject: Re: [PATCH] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
Date: Mon, 19 Sep 2022 16:40:34 +0800	[thread overview]
Message-ID: <CAJMQK-hOxxvkjgOxA6KLLUJxxBehHDQvRo-Y_FLMPLEfkoVMzA@mail.gmail.com> (raw)
In-Reply-To: <20220804194325.1596554-1-nfraprado@collabora.com>

On Mon, Sep 19, 2022 at 4:39 PM Nícolas F. R. A. Prado
<nfraprado@collabora.com> wrote:
>
> As the comment right before the mtk_dsi_stop() call advises,
> mtk_dsi_stop() should only be called after
> mtk_drm_crtc_atomic_disable(). That's because that function calls
> drm_crtc_wait_one_vblank(), which requires the vblank irq to be enabled.
>
> Previously mtk_dsi_stop(), being in mtk_dsi_poweroff() and guarded by a
> refcount, would only be called at the end of
> mtk_drm_crtc_atomic_disable(), through the call to mtk_crtc_ddp_hw_fini().
> Commit cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from
> enable/disable and define new funcs") moved the mtk_dsi_stop() call to
> mtk_output_dsi_disable(), causing it to be called before
> mtk_drm_crtc_atomic_disable(), and consequently generating vblank
> timeout warnings during suspend.
>
> Move the mtk_dsi_stop() call back to mtk_dsi_poweroff() so that we have
> a working vblank irq during mtk_drm_crtc_atomic_disable() and stop
> getting vblank timeout warnings.
>
> Fixes: cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs")
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>

Tested on mt8183 jacuzzi and mt8186 that this patch fixes the vblank warning.

> ---
>
>  drivers/gpu/drm/mediatek/mtk_dsi.c | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 9cc406e1eee1..f8ad59771551 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -685,6 +685,16 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)
>         if (--dsi->refcount != 0)
>                 return;
>
> +       /*
> +        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> +        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> +        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> +        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> +        * after dsi is fully set.
> +        */
> +       mtk_dsi_stop(dsi);
> +
> +       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
>         mtk_dsi_reset_engine(dsi);
>         mtk_dsi_lane0_ulp_mode_enter(dsi);
>         mtk_dsi_clk_ulp_mode_enter(dsi);
> @@ -735,17 +745,6 @@ static void mtk_output_dsi_disable(struct mtk_dsi *dsi)
>         if (!dsi->enabled)
>                 return;
>
> -       /*
> -        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> -        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> -        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> -        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> -        * after dsi is fully set.
> -        */
> -       mtk_dsi_stop(dsi);
> -
> -       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
> -
>         dsi->enabled = false;
>  }
>
> --
> 2.37.1
>

WARNING: multiple messages have this Message-ID (diff)
From: Hsin-Yi Wang <hsinyi@chromium.org>
To: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>,
	 AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	kernel@collabora.com,  Daniel Vetter <daniel@ffwll.ch>,
	David Airlie <airlied@linux.ie>,
	Jitao Shi <jitao.shi@mediatek.com>,
	 Matthias Brugger <matthias.bgg@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	 Rex-BC Chen <rex-bc.chen@mediatek.com>,
	Xinlei Lee <xinlei.lee@mediatek.com>,
	 dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-kernel@vger.kernel.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
Date: Mon, 19 Sep 2022 16:40:34 +0800	[thread overview]
Message-ID: <CAJMQK-hOxxvkjgOxA6KLLUJxxBehHDQvRo-Y_FLMPLEfkoVMzA@mail.gmail.com> (raw)
In-Reply-To: <20220804194325.1596554-1-nfraprado@collabora.com>

On Mon, Sep 19, 2022 at 4:39 PM Nícolas F. R. A. Prado
<nfraprado@collabora.com> wrote:
>
> As the comment right before the mtk_dsi_stop() call advises,
> mtk_dsi_stop() should only be called after
> mtk_drm_crtc_atomic_disable(). That's because that function calls
> drm_crtc_wait_one_vblank(), which requires the vblank irq to be enabled.
>
> Previously mtk_dsi_stop(), being in mtk_dsi_poweroff() and guarded by a
> refcount, would only be called at the end of
> mtk_drm_crtc_atomic_disable(), through the call to mtk_crtc_ddp_hw_fini().
> Commit cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from
> enable/disable and define new funcs") moved the mtk_dsi_stop() call to
> mtk_output_dsi_disable(), causing it to be called before
> mtk_drm_crtc_atomic_disable(), and consequently generating vblank
> timeout warnings during suspend.
>
> Move the mtk_dsi_stop() call back to mtk_dsi_poweroff() so that we have
> a working vblank irq during mtk_drm_crtc_atomic_disable() and stop
> getting vblank timeout warnings.
>
> Fixes: cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs")
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>

Tested on mt8183 jacuzzi and mt8186 that this patch fixes the vblank warning.

> ---
>
>  drivers/gpu/drm/mediatek/mtk_dsi.c | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 9cc406e1eee1..f8ad59771551 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -685,6 +685,16 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)
>         if (--dsi->refcount != 0)
>                 return;
>
> +       /*
> +        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> +        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> +        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> +        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> +        * after dsi is fully set.
> +        */
> +       mtk_dsi_stop(dsi);
> +
> +       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
>         mtk_dsi_reset_engine(dsi);
>         mtk_dsi_lane0_ulp_mode_enter(dsi);
>         mtk_dsi_clk_ulp_mode_enter(dsi);
> @@ -735,17 +745,6 @@ static void mtk_output_dsi_disable(struct mtk_dsi *dsi)
>         if (!dsi->enabled)
>                 return;
>
> -       /*
> -        * mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
> -        * mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
> -        * which needs irq for vblank, and mtk_dsi_stop() will disable irq.
> -        * mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
> -        * after dsi is fully set.
> -        */
> -       mtk_dsi_stop(dsi);
> -
> -       mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
> -
>         dsi->enabled = false;
>  }
>
> --
> 2.37.1
>

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

  reply	other threads:[~2022-09-19  8:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-04 19:43 [PATCH] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() Nícolas F. R. A. Prado
2022-08-04 19:43 ` Nícolas F. R. A. Prado
2022-08-04 19:43 ` Nícolas F. R. A. Prado
2022-09-19  8:40 ` Hsin-Yi Wang [this message]
2022-09-19  8:40   ` Hsin-Yi Wang
2022-09-19  8:40   ` Hsin-Yi Wang
2022-09-19 13:32   ` AngeloGioacchino Del Regno
2022-09-19 13:32     ` AngeloGioacchino Del Regno
2022-09-19 13:32     ` AngeloGioacchino Del Regno
2022-09-21  8:49     ` Allen-KH Cheng
2022-09-21  8:49       ` Allen-KH Cheng
2022-09-21  8:49       ` Allen-KH Cheng

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=CAJMQK-hOxxvkjgOxA6KLLUJxxBehHDQvRo-Y_FLMPLEfkoVMzA@mail.gmail.com \
    --to=hsinyi@chromium.org \
    --cc=airlied@linux.ie \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=chunkuang.hu@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jitao.shi@mediatek.com \
    --cc=kernel@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=nfraprado@collabora.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rex-bc.chen@mediatek.com \
    --cc=xinlei.lee@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.