diff mbox series

[RFC] drm/panel: synaptics-r63353: Fix regulator unbalance

Message ID 20240624185345.11113-1-michael@amarulasolutions.com (mailing list archive)
State New, archived
Headers show
Series [RFC] drm/panel: synaptics-r63353: Fix regulator unbalance | expand

Commit Message

Michael Nazzareno Trimarchi June 24, 2024, 6:53 p.m. UTC
The shutdown function can be called when the display is already
unprepared. For example during reboot this trigger a kernel
backlog. Calling the drm_panel_unprepare, allow us to avoid
to trigger the kernel warning

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
---

It's not obviovus if shutdown can be dropped or this problem depends
on the display stack as it is implmented. More feedback is required
here

---
 drivers/gpu/drm/panel/panel-synaptics-r63353.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Nazzareno Trimarchi Aug. 7, 2024, 12:38 p.m. UTC | #1
Hi Doug

+cc Doug

I have seen that you have done some re-working and investigation on
drm stack, do you have some
suggestion on this case?

On Mon, Jun 24, 2024 at 8:53 PM Michael Trimarchi
<michael@amarulasolutions.com> wrote:
>
> The shutdown function can be called when the display is already
> unprepared. For example during reboot this trigger a kernel
> backlog. Calling the drm_panel_unprepare, allow us to avoid
> to trigger the kernel warning
>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> ---
>
> It's not obviovus if shutdown can be dropped or this problem depends
> on the display stack as it is implmented. More feedback is required
> here
>
> ---
>  drivers/gpu/drm/panel/panel-synaptics-r63353.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-synaptics-r63353.c b/drivers/gpu/drm/panel/panel-synaptics-r63353.c
> index 169c629746c7..17349825543f 100644
> --- a/drivers/gpu/drm/panel/panel-synaptics-r63353.c
> +++ b/drivers/gpu/drm/panel/panel-synaptics-r63353.c
> @@ -325,7 +325,7 @@ static void r63353_panel_shutdown(struct mipi_dsi_device *dsi)
>  {
>         struct r63353_panel *rpanel = mipi_dsi_get_drvdata(dsi);
>
> -       r63353_panel_unprepare(&rpanel->base);
> +       drm_panel_unprepare(&rpanel->base);
>  }
>
>  static const struct r63353_desc sharp_ls068b3sx02_data = {
> --
> 2.43.0
>
Doug Anderson Aug. 7, 2024, 9:02 p.m. UTC | #2
Hi,

On Wed, Aug 7, 2024 at 5:39 AM Michael Nazzareno Trimarchi
<michael@amarulasolutions.com> wrote:
>
> Hi Doug
>
> +cc Doug
>
> I have seen that you have done some re-working and investigation on
> drm stack, do you have some
> suggestion on this case?
>
> On Mon, Jun 24, 2024 at 8:53 PM Michael Trimarchi
> <michael@amarulasolutions.com> wrote:
> >
> > The shutdown function can be called when the display is already
> > unprepared. For example during reboot this trigger a kernel
> > backlog. Calling the drm_panel_unprepare, allow us to avoid
> > to trigger the kernel warning
> >
> > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> > ---
> >
> > It's not obviovus if shutdown can be dropped or this problem depends
> > on the display stack as it is implmented. More feedback is required
> > here

In general the shutdown should be dropped and it should be up to the
display driver to do the shutdown. If your panel needs to be used with
a DRM Modeset driver that doesn't properly call shutdown then the
ideal solution would be to fix the DRM Modeset driver. If this is
somehow impossible, I suspect folks would (begrudgingly) accept some
other solution.

From a super quick look, I see:

* This panel seems to be used upstream by "imx8mn-bsh-smm-s2-display.dtsi"

* In "imx8mn.dtsi" I see "lcdif" is "fsl,imx6sx-lcdif".

* "fsl,imx6sx-lcdif" seems to be handled by "drivers/gpu/drm/mxsfb/mxsfb_drv.c"

* Previously I determined that "mxsfb-drm" was indeed calling
drm_atomic_helper_shutdown() properly [1]

...so it seems like just dropping the shutdown handler in this panel is correct.


[1] https://lore.kernel.org/r/20240611074846.1.Ieb287c2c3ee3f6d3b0d5f49b29f746b93621749c@changeid

-Doug
Michael Nazzareno Trimarchi Aug. 7, 2024, 9:05 p.m. UTC | #3
Hi Doug

On Wed, Aug 7, 2024 at 11:02 PM Doug Anderson <dianders@chromium.org> wrote:
>
> Hi,
>
> On Wed, Aug 7, 2024 at 5:39 AM Michael Nazzareno Trimarchi
> <michael@amarulasolutions.com> wrote:
> >
> > Hi Doug
> >
> > +cc Doug
> >
> > I have seen that you have done some re-working and investigation on
> > drm stack, do you have some
> > suggestion on this case?
> >
> > On Mon, Jun 24, 2024 at 8:53 PM Michael Trimarchi
> > <michael@amarulasolutions.com> wrote:
> > >
> > > The shutdown function can be called when the display is already
> > > unprepared. For example during reboot this trigger a kernel
> > > backlog. Calling the drm_panel_unprepare, allow us to avoid
> > > to trigger the kernel warning
> > >
> > > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> > > ---
> > >
> > > It's not obviovus if shutdown can be dropped or this problem depends
> > > on the display stack as it is implmented. More feedback is required
> > > here
>
> In general the shutdown should be dropped and it should be up to the
> display driver to do the shutdown. If your panel needs to be used with
> a DRM Modeset driver that doesn't properly call shutdown then the
> ideal solution would be to fix the DRM Modeset driver. If this is
> somehow impossible, I suspect folks would (begrudgingly) accept some
> other solution.
>
> From a super quick look, I see:
>
> * This panel seems to be used upstream by "imx8mn-bsh-smm-s2-display.dtsi"
>
> * In "imx8mn.dtsi" I see "lcdif" is "fsl,imx6sx-lcdif".
>
> * "fsl,imx6sx-lcdif" seems to be handled by "drivers/gpu/drm/mxsfb/mxsfb_drv.c"
>
> * Previously I determined that "mxsfb-drm" was indeed calling
> drm_atomic_helper_shutdown() properly [1]
>
> ...so it seems like just dropping the shutdown handler in this panel is correct.
>
>
> [1] https://lore.kernel.org/r/20240611074846.1.Ieb287c2c3ee3f6d3b0d5f49b29f746b93621749c@changeid
>

Good, that is the information I need to know, I have read some of your
threads and it's ok for me to just drop it.
I will resend a proper patch for it

Michael

> -Doug
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-synaptics-r63353.c b/drivers/gpu/drm/panel/panel-synaptics-r63353.c
index 169c629746c7..17349825543f 100644
--- a/drivers/gpu/drm/panel/panel-synaptics-r63353.c
+++ b/drivers/gpu/drm/panel/panel-synaptics-r63353.c
@@ -325,7 +325,7 @@  static void r63353_panel_shutdown(struct mipi_dsi_device *dsi)
 {
 	struct r63353_panel *rpanel = mipi_dsi_get_drvdata(dsi);
 
-	r63353_panel_unprepare(&rpanel->base);
+	drm_panel_unprepare(&rpanel->base);
 }
 
 static const struct r63353_desc sharp_ls068b3sx02_data = {