From 4bf6034ea833e038ca0d60da682f82e86b96a889 Mon Sep 17 00:00:00 2001
From: eng33 <eng33@waveshare.com>
Date: Mon, 11 Dec 2023 15:06:45 +0800
Subject: [PATCH 0792/1085] drivers/gpu/drm/panel:fix waveshare panel software
 restart/shutdown display is abnormal Fixed the screen stays white when the
 user restarts or shuts down

Signed-off-by: eng33 <eng33@waveshare.com>
---
 drivers/gpu/drm/panel/panel-waveshare-dsi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/drivers/gpu/drm/panel/panel-waveshare-dsi.c
+++ b/drivers/gpu/drm/panel/panel-waveshare-dsi.c
@@ -361,9 +361,18 @@ static void ws_panel_remove(struct i2c_c
 {
 	struct ws_panel *ts = i2c_get_clientdata(i2c);
 
+	ws_panel_disable(&ts->base);
+
 	drm_panel_remove(&ts->base);
 }
 
+static void ws_panel_shutdown(struct i2c_client *i2c)
+{
+	struct ws_panel *ts = i2c_get_clientdata(i2c);
+
+	ws_panel_disable(&ts->base);
+}
+
 static const struct of_device_id ws_panel_of_ids[] = {
 	{
 		.compatible = "waveshare,2.8inch-panel",
@@ -402,6 +411,7 @@ static struct i2c_driver ws_panel_driver
 	},
 	.probe = ws_panel_probe,
 	.remove = ws_panel_remove,
+	.shutdown = ws_panel_shutdown,
 };
 module_i2c_driver(ws_panel_driver);