summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/armada/armada_fbdev.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-10-27 15:26:33 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-12-10 20:24:02 +0000
commit2f5ae4901acc6fdee939718658fa9f59c4f2217b (patch)
tree5420f95a46b1a6829fb0a52707366e571cacfb34 /drivers/gpu/drm/armada/armada_fbdev.c
parent796c8e1c3439aa6f2aef75d767defa0243ed6ead (diff)
DRM: Armada: implement lastclose() for fbhelper
Call drm_fb_helper_restore_fbdev_mode() upon last close so that in the event of the X server crashing, we have some kind of mode restored. Reviewed-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/armada/armada_fbdev.c')
-rw-r--r--drivers/gpu/drm/armada/armada_fbdev.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index dd5ea77dac96..743570e99f90 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -177,6 +177,16 @@ int armada_fbdev_init(struct drm_device *dev)
return ret;
}
+void armada_fbdev_lastclose(struct drm_device *dev)
+{
+ struct armada_private *priv = dev->dev_private;
+
+ drm_modeset_lock_all(dev);
+ if (priv->fbdev)
+ drm_fb_helper_restore_fbdev_mode(priv->fbdev);
+ drm_modeset_unlock_all(dev);
+}
+
void armada_fbdev_fini(struct drm_device *dev)
{
struct armada_private *priv = dev->dev_private;