[PATCH V4 2/6] drm/panel: nv3051d: Hold panel in reset for unprepare

Chris Morgan macroalpha82 at gmail.com
Sun Nov 26 03:51:45 UTC 2023


On Fri, Nov 17, 2023 at 02:25:32PM -0600, Chris Morgan wrote:
> From: Chris Morgan <macromorgan at hotmail.com>
> 
> Improve the panel's ability to restore from suspend by holding the
> panel in suspend after unprepare.

Now I have confirmation this does fix a bug for some users, and a
somewhat serious bug at that. A user had their device suspended for
approximately 12 hours and when they returned the screen was not
displaying correctly, even after a reboot. This patch was recommended
for troubleshooting, and confirmed to fix the problem (note, the screen
did eventually "right" itself after several hours of being off prior to
testing this fix). So now knowing it's really a bug as there was some
question previously if there were actual issues, is there a way this
can be added to the 6.6 and older supported kernels?

Thanks to brooksytech for the bug report and confirmation of fixes.

Might be a bit late for this, but:
Tested-by: brooksytech <macebrooks at gmail.com>

> 
> Fixes: b1d39f0f4264 ("drm/panel: Add NewVision NV3051D MIPI-DSI LCD panel")
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> Reviewed-by: Jessica Zhang <quic_jesszhan at quicinc.com>
> ---
>  drivers/gpu/drm/panel/panel-newvision-nv3051d.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/panel/panel-newvision-nv3051d.c b/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
> index 79de6c886292..c44c6945662f 100644
> --- a/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
> +++ b/drivers/gpu/drm/panel/panel-newvision-nv3051d.c
> @@ -261,6 +261,8 @@ static int panel_nv3051d_unprepare(struct drm_panel *panel)
>  
>  	usleep_range(10000, 15000);
>  
> +	gpiod_set_value_cansleep(ctx->reset_gpio, 1);
> +
>  	regulator_disable(ctx->vdd);
>  
>  	return 0;
> -- 
> 2.34.1
> 


More information about the dri-devel mailing list