[PATCH 2/4] drm: Add restore_fbdev_mode() hook to drm_fb_helper
ville.syrjala at linux.intel.com
ville.syrjala at linux.intel.com
Thu May 24 11:29:48 PDT 2012
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
Add an optional driver specific restore_fbdev_mode() hook to
drm_fb_helper. If the driver doesn't provide the hook,
drm_fb_helper_restore_fbdev_mode() is called directly as before.
In this hook the driver can disable additional planes, cursors etc.
that shouldn't be visible while fbdev is in control.
Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
drivers/gpu/drm/drm_fb_helper.c | 5 ++++-
include/drm/drm_fb_helper.h | 1 +
2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 5683b7f..5cfc7dd 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -248,7 +248,10 @@ bool drm_fb_helper_force_kernel_mode(void)
if (helper->dev->switch_power_state == DRM_SWITCH_POWER_OFF)
continue;
- ret = drm_fb_helper_restore_fbdev_mode(helper);
+ if (helper->funcs->restore_fbdev_mode)
+ ret = helper->funcs->restore_fbdev_mode(helper);
+ else
+ ret = drm_fb_helper_restore_fbdev_mode(helper);
if (ret)
error = true;
}
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 5120b01..7f76e9c 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -56,6 +56,7 @@ struct drm_fb_helper_funcs {
int (*fb_probe)(struct drm_fb_helper *helper,
struct drm_fb_helper_surface_size *sizes);
+ int (*restore_fbdev_mode)(struct drm_fb_helper *helper);
};
struct drm_fb_helper_connector {
--
1.7.3.4
More information about the dri-devel
mailing list