[PATCH 1/5] drm/imx: disable outputs in lastclose when framebuffer emulation is disabled

Lucas Stach l.stach at pengutronix.de
Fri Jun 17 10:13:38 UTC 2016


If there is no framebuffer mode that can be restored, all outputs should
be disabled in order to avoid information leaks.

Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
---
 drivers/gpu/drm/imx/imx-drm-core.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index 82656654fb21..c63378661e11 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -63,7 +63,19 @@ static void imx_drm_driver_lastclose(struct drm_device *drm)
 {
 	struct imx_drm_device *imxdrm = drm->dev_private;
 
-	drm_fbdev_cma_restore_mode(imxdrm->fbhelper);
+	if (imxdrm->fbhelper) {
+		drm_fbdev_cma_restore_mode(imxdrm->fbhelper);
+	} else {
+		struct drm_connector *connector;
+
+		/* no kernel mode to go back to, disable all outputs */
+		drm_modeset_lock_all(drm);
+		drm_for_each_connector(connector, drm)
+			connector->encoder = NULL;
+		drm_modeset_unlock_all(drm);
+
+		drm_helper_disable_unused_functions(drm);
+	}
 }
 
 static int imx_drm_driver_unload(struct drm_device *drm)
-- 
2.8.1



More information about the dri-devel mailing list