drivers/gpu/drm/panel:fix waveshare panel software restart/shutdown display is abnormal
authoreng33 <eng33@waveshare.com>
Mon, 11 Dec 2023 07:06:45 +0000 (15:06 +0800)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:35:23 +0000 (11:35 +0000)
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

index 2e0947a..1f07d65 100644 (file)
@@ -361,9 +361,18 @@ static void ws_panel_remove(struct i2c_client *i2c)
 {
        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);