<pre>
Hi, Xinlei:

On Wed, 2022-10-12 at 15:48 +0800, xinlei.lee wrote:
> On Mon, 2022-09-05 at 21:53 +0800, xinlei.lee@mediatek.com wrote:
> > From: Xinlei Lee <xinlei.lee@mediatek.com>
> >
> > Modify dpi power on/off sequence so that the first gpio operation
> > will take effect.
> >
> > Fixes: 6bd4763fd532 ("drm/mediatek: set dpi pin mode to gpio low to
> > avoid leakage
> > current")
> >
> > Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> >
> > ---
> > Base on the branch of Linux-next/master.
> > Because dpi power_on/off is protected by dpi->refcount, the first
> > time
> > it cannot be powered on and off successfully, it will cause
> > leakage.
> > ---
> > ---
> > drivers/gpu/drm/mediatek/mtk_dpi.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c
> > b/drivers/gpu/drm/mediatek/mtk_dpi.c
> > index 630a4e301ef6..2ce1a39ce3bf 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> > @@ -462,9 +462,6 @@ static void mtk_dpi_power_off(struct mtk_dpi
> > *dpi)
> > if (--dpi->refcount != 0)
> > return;
> >
> > -if (dpi->pinctrl && dpi->pins_gpio)
> > -pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
> > -
> > mtk_dpi_disable(dpi);
> > clk_disable_unprepare(dpi->pixel_clk);
> > clk_disable_unprepare(dpi->engine_clk);
> > @@ -489,9 +486,6 @@ static int mtk_dpi_power_on(struct mtk_dpi
> > *dpi)
> > goto err_pixel;
> > }
> >
> > -if (dpi->pinctrl && dpi->pins_dpi)
> > -pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
> > -
> > return 0;
> >
> > err_pixel:
> > @@ -721,6 +715,9 @@ static void mtk_dpi_bridge_disable(struct
> > drm_bridge *bridge)
> > {
> > struct mtk_dpi *dpi = bridge_to_dpi(bridge);
> >
> > +if (dpi->pinctrl && dpi->pins_gpio)
> > +pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);

I think this should be placed after mtk_dpi_power_off().

> > +
> > mtk_dpi_power_off(dpi);
> > }
> >
> > @@ -728,6 +725,9 @@ static void mtk_dpi_bridge_enable(struct
> > drm_bridge *bridge)
> > {
> > struct mtk_dpi *dpi = bridge_to_dpi(bridge);
> >
> > +if (dpi->pinctrl && dpi->pins_dpi)
> > +pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
> > +
> > mtk_dpi_power_on(dpi);
> > mtk_dpi_set_display_mode(dpi, &dpi->mode);
> > mtk_dpi_enable(dpi);
>
> Hi CK,
>
> Gentle ping for this patch, if there is anything I need to modify,
> please kindly let me know.
>
> Best Regards!
> xinlei
>

</pre><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice
 ********************
The information contained in this e-mail message (including any 
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be 
conveyed only to the designated recipient(s). Any use, dissemination, 
distribution, printing, retaining or copying of this e-mail (including its 
attachments) by unintended recipient(s) is strictly prohibited and may 
be unlawful. If you are not an intended recipient of this e-mail, or believe
 
that you have received this e-mail in error, please notify the sender 
immediately (by replying to this e-mail), delete any and all copies of 
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!
</pre><!--}-->