aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-01-20 12:09:52 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-02-13 18:07:50 -0500
commitd21bf469d5301d025cd82997bb1529bcdc7086af (patch)
treef819eb34fd3f32ae79cca5421e6c688ed3d6f928 /drivers/gpu
parent6aed8ec3f76a22217c9ae183d32b1aa990bed069 (diff)
drm/fb-helper: kill drm_fb_helper_restore
It's only used internally for the sysrq and panic handlers provided by the drm fb helper implementation. Hence just inline it, kill the export and remove the confusing kerneldoc. Driver's are supposed to call drm_fb_helper_restore_fbdev_mode on lastclose. Note that locking is totally fubar - the sysrq case doesn't take any locks at all. The panic handler probably shouldn't take any locks since it'll only make things worse. Otoh it's probably better to switch things over to the atomic modeset callbacks (and disable the panic handler for those drivers which don't implement it). But that's both better done in separate patches. Reviewed-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 77378a1e907e..14a81fc3e01a 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -264,6 +264,10 @@ bool drm_fb_helper_restore_fbdev_mode(struct drm_fb_helper *fb_helper)
264} 264}
265EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode); 265EXPORT_SYMBOL(drm_fb_helper_restore_fbdev_mode);
266 266
267/*
268 * restore fbcon display for all kms driver's using this helper, used for sysrq
269 * and panic handling.
270 */
267static bool drm_fb_helper_force_kernel_mode(void) 271static bool drm_fb_helper_force_kernel_mode(void)
268{ 272{
269 bool ret, error = false; 273 bool ret, error = false;
@@ -302,20 +306,6 @@ static struct notifier_block paniced = {
302 .notifier_call = drm_fb_helper_panic, 306 .notifier_call = drm_fb_helper_panic,
303}; 307};
304 308
305/**
306 * drm_fb_helper_restore - restore the framebuffer console (kernel) config
307 *
308 * Restore's the kernel's fbcon mode, used for lastclose & panic paths.
309 */
310void drm_fb_helper_restore(void)
311{
312 bool ret;
313 ret = drm_fb_helper_force_kernel_mode();
314 if (ret == true)
315 DRM_ERROR("Failed to restore crtc configuration\n");
316}
317EXPORT_SYMBOL(drm_fb_helper_restore);
318
319static bool drm_fb_helper_is_bound(struct drm_fb_helper *fb_helper) 309static bool drm_fb_helper_is_bound(struct drm_fb_helper *fb_helper)
320{ 310{
321 struct drm_device *dev = fb_helper->dev; 311 struct drm_device *dev = fb_helper->dev;
@@ -337,7 +327,10 @@ static bool drm_fb_helper_is_bound(struct drm_fb_helper *fb_helper)
337#ifdef CONFIG_MAGIC_SYSRQ 327#ifdef CONFIG_MAGIC_SYSRQ
338static void drm_fb_helper_restore_work_fn(struct work_struct *ignored) 328static void drm_fb_helper_restore_work_fn(struct work_struct *ignored)
339{ 329{
340 drm_fb_helper_restore(); 330 bool ret;
331 ret = drm_fb_helper_force_kernel_mode();
332 if (ret == true)
333 DRM_ERROR("Failed to restore crtc configuration\n");
341} 334}
342static DECLARE_WORK(drm_fb_helper_restore_work, drm_fb_helper_restore_work_fn); 335static DECLARE_WORK(drm_fb_helper_restore_work, drm_fb_helper_restore_work_fn);
343 336