From f63a36d99c5dd8c1c122c0e48f77db3718800b07 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 29 Mar 2012 15:44:18 -0700 Subject: [PATCH] 3.0-stable patches added patches: drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch --- ...bdev-device-around-suspend-hibernate.patch | 88 +++++++++++++++++++ queue-3.0/series | 1 + 2 files changed, 89 insertions(+) create mode 100644 queue-3.0/drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch diff --git a/queue-3.0/drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch b/queue-3.0/drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch new file mode 100644 index 00000000000..0a7dc45217c --- /dev/null +++ b/queue-3.0/drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch @@ -0,0 +1,88 @@ +From 3fa016a0b5c5237e9c387fc3249592b2cb5391c6 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Wed, 28 Mar 2012 10:48:49 +0100 +Subject: drm/i915: suspend fbdev device around suspend/hibernate + +From: Dave Airlie + +commit 3fa016a0b5c5237e9c387fc3249592b2cb5391c6 upstream. + +Looking at hibernate overwriting I though it looked like a cursor, +so I tracked down this missing piece to stop the cursor blink +timer. I've no idea if this is sufficient to fix the hibernate +problems people are seeing, but please test it. + +Both radeon and nouveau have done this for a long time. + +I've run this personally all night hib/resume cycles with no fails. + +Reviewed-by: Keith Packard +Reported-by: Petr Tesarik +Reported-by: Stanislaw Gruszka +Reported-by: Lots of misc segfaults after hibernate across the world. +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=37142 +Tested-by: Dave Airlie +Tested-by: Bojan Smojver +Tested-by: Andreas Hartmann +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_drv.c | 7 +++++++ + drivers/gpu/drm/i915/intel_drv.h | 2 +- + drivers/gpu/drm/i915/intel_fb.c | 10 ++++++++++ + 3 files changed, 18 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/i915_drv.c ++++ b/drivers/gpu/drm/i915/i915_drv.c +@@ -379,6 +379,10 @@ static int i915_drm_freeze(struct drm_de + /* Modeset on resume, not lid events */ + dev_priv->modeset_on_lid = 0; + ++ console_lock(); ++ intel_fbdev_set_suspend(dev, 1); ++ console_unlock(); ++ + return 0; + } + +@@ -448,6 +452,9 @@ static int i915_drm_thaw(struct drm_devi + + dev_priv->modeset_on_lid = 0; + ++ console_lock(); ++ intel_fbdev_set_suspend(dev, 0); ++ console_unlock(); + return error; + } + +--- a/drivers/gpu/drm/i915/intel_drv.h ++++ b/drivers/gpu/drm/i915/intel_drv.h +@@ -330,7 +330,7 @@ extern int intel_framebuffer_init(struct + struct drm_i915_gem_object *obj); + extern int intel_fbdev_init(struct drm_device *dev); + extern void intel_fbdev_fini(struct drm_device *dev); +- ++extern void intel_fbdev_set_suspend(struct drm_device *dev, int state); + extern void intel_prepare_page_flip(struct drm_device *dev, int plane); + extern void intel_finish_page_flip(struct drm_device *dev, int pipe); + extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane); +--- a/drivers/gpu/drm/i915/intel_fb.c ++++ b/drivers/gpu/drm/i915/intel_fb.c +@@ -257,6 +257,16 @@ void intel_fbdev_fini(struct drm_device + kfree(dev_priv->fbdev); + dev_priv->fbdev = NULL; + } ++ ++void intel_fbdev_set_suspend(struct drm_device *dev, int state) ++{ ++ drm_i915_private_t *dev_priv = dev->dev_private; ++ if (!dev_priv->fbdev) ++ return; ++ ++ fb_set_suspend(dev_priv->fbdev->helper.fbdev, state); ++} ++ + MODULE_LICENSE("GPL and additional rights"); + + void intel_fb_output_poll_changed(struct drm_device *dev) diff --git a/queue-3.0/series b/queue-3.0/series index ca31018065a..8a53a70b69d 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -92,3 +92,4 @@ xfs-fix-oops-on-io-error-during-xlog_recover_process_iunlinks.patch slub-do-not-hold-slub_lock-when-calling-sysfs_slab_add.patch module-remove-module-size-limit.patch bluetooth-btusb-fix-binterval-for-high-super-speed-isochronous-endpoints.patch +drm-i915-suspend-fbdev-device-around-suspend-hibernate.patch -- 2.47.3