OSDN Git Service

drm/panel: simple - Disable panel on shutdown
authorThierry Reding <treding@nvidia.com>
Tue, 29 Apr 2014 15:21:21 +0000 (17:21 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 5 Jun 2014 14:46:40 +0000 (16:46 +0200)
When a device is shut down, disable the panel to make sure the display
backlight doesn't stay lit.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/panel/panel-simple.c

index a0d3cf1..abae40c 100644 (file)
@@ -262,6 +262,13 @@ static int panel_simple_remove(struct device *dev)
        return 0;
 }
 
+static void panel_simple_shutdown(struct device *dev)
+{
+       struct panel_simple *panel = dev_get_drvdata(dev);
+
+       panel_simple_disable(&panel->base);
+}
+
 static const struct drm_display_mode auo_b101aw03_mode = {
        .clock = 51450,
        .hdisplay = 1024,
@@ -467,6 +474,11 @@ static int panel_simple_platform_remove(struct platform_device *pdev)
        return panel_simple_remove(&pdev->dev);
 }
 
+static void panel_simple_platform_shutdown(struct platform_device *pdev)
+{
+       panel_simple_shutdown(&pdev->dev);
+}
+
 static struct platform_driver panel_simple_platform_driver = {
        .driver = {
                .name = "panel-simple",
@@ -475,6 +487,7 @@ static struct platform_driver panel_simple_platform_driver = {
        },
        .probe = panel_simple_platform_probe,
        .remove = panel_simple_platform_remove,
+       .shutdown = panel_simple_platform_shutdown,
 };
 
 struct panel_desc_dsi {
@@ -616,6 +629,11 @@ static int panel_simple_dsi_remove(struct mipi_dsi_device *dsi)
        return panel_simple_remove(&dsi->dev);
 }
 
+static void panel_simple_dsi_shutdown(struct mipi_dsi_device *dsi)
+{
+       panel_simple_shutdown(&dsi->dev);
+}
+
 static struct mipi_dsi_driver panel_simple_dsi_driver = {
        .driver = {
                .name = "panel-simple-dsi",
@@ -624,6 +642,7 @@ static struct mipi_dsi_driver panel_simple_dsi_driver = {
        },
        .probe = panel_simple_dsi_probe,
        .remove = panel_simple_dsi_remove,
+       .shutdown = panel_simple_dsi_shutdown,
 };
 
 static int __init panel_simple_init(void)