Re: [PATCH v2 3/3] drm/panel: boe-tv101wum-nl6: Fine tune the panel power sequence

From: Xinlei Lee (李昕磊)
Date: Thu Jan 12 2023 - 05:03:24 EST


On Tue, 2023-01-10 at 10:22 +0100, AngeloGioacchino Del Regno wrote:
> Il 10/01/23 06:54, xinlei.lee@xxxxxxxxxxxx ha scritto:
> > From: Xinlei Lee <xinlei.lee@xxxxxxxxxxxx>
> >
> > For "boe,tv105wum-nw0" this special panel, it is stipulated in the
> > panel spec that MIPI needs to keep the LP11 state before the
> > lcm_reset pin is pulled high.
> >
> > Signed-off-by: Xinlei Lee <xinlei.lee@xxxxxxxxxxxx>
> > ---
> > drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> > b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> > index f0093035f1ff..67df61de64ae 100644
> > --- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> > +++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
> > @@ -36,6 +36,7 @@ struct panel_desc {
> > const struct panel_init_cmd *init_cmds;
> > unsigned int lanes;
> > bool discharge_on_disable;
> > + bool lp11_before_reset;
> > };
> >
> > struct boe_panel {
> > @@ -1261,6 +1262,10 @@ static int boe_panel_prepare(struct
> > drm_panel *panel)
> >
> > usleep_range(10000, 11000);
> >
> > + if (boe->desc->lp11_before_reset) {
> > + mipi_dsi_dcs_nop(boe->dsi);
>
> NOP will never reach the driveric if it is in reset, which should
> apparently be
> the state of it at that point in code.
>
> I guess that you wanted to do that after LCM reset and before sending
> init cmds.
>
> Regards,
> Angelo
>

Hi Angelo:

To explain to you that in my patch, sending a NOP before lcm_reset is
what this particular panel driver needs.

Indeed, the NOP will not reach the panel driveric before lcm_reset,
but the driveric specification stipulates that the MIPI signal needs
to be pulled high before lcm_reset is pulled high(NOP
-> mtk_dsi_host_transfer -> mtk_dsi_lane_ready) . In order to avoid
special driver initialization exceptions, this control was added.

Best Regards!
xinlei