UBUNTU: SAUCE: drm/i915: Explicitly disable RC6 for certain models
From: Wen-chien Jesse Sung <jesse.sung@canonical.com>
BugLink: https://launchpad.net/bugs/1002170 BugLink: https://launchpad.net/bugs/1008867 Upstream BugLinks: https://bugs.freedesktop.org/show_bug.cgi?id=50545 https://bugs.freedesktop.org/show_bug.cgi?id=54739 Enabling RC6 may cause system hang on Lenovo S510 after idle for a while. It also makes Asus ET2012E sometimes fail to resume from suspend. Although upstream developers would like to figure out the root cause, but it may take time. We may disable RC6 on these models before the root cause is found. Wen-chien Jesse Sung (1): UBUNTU: SAUCE: drm/i915: Explicitly disable RC6 for certain models drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) -- 1.7.9.5 -- kernel-team mailing list kernel-team@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kernel-team |
UBUNTU: SAUCE: drm/i915: Explicitly disable RC6 for certain models
From: Wen-chien Jesse Sung <jesse.sung@canonical.com>
BugLink: https://launchpad.net/bugs/1002170 BugLink: https://launchpad.net/bugs/1008867 Enabling RC6 may cause system hang on Lenovo S510 after idle for a while. It also makes Asus ET2012E sometimes fail to resume from suspend. Explicitly disable RC6 on these models. Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com> --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index c364358..f50e55b 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -274,6 +274,7 @@ enum intel_pch { #define QUIRK_PIPEA_FORCE (1<<0) #define QUIRK_LVDS_SSC_DISABLE (1<<1) +#define QUIRK_RC6_DISABLE (1<<3) struct intel_fbdev; struct intel_fbc_work; diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 0bb09a0..b9e9bd6 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -7983,12 +7983,17 @@ void intel_init_emon(struct drm_device *dev) static bool intel_enable_rc6(struct drm_device *dev) { + struct drm_i915_private *dev_priv = dev->dev_private; + /* * Respect the kernel parameter if it is set */ if (i915_enable_rc6 >= 0) return i915_enable_rc6; + if (dev_priv->quirks & QUIRK_RC6_DISABLE) + return 0; + /* * Disable RC6 on Ironlake */ @@ -8795,6 +8800,13 @@ static void quirk_ssc_force_disable(struct drm_device *dev) dev_priv->quirks |= QUIRK_LVDS_SSC_DISABLE; } +static void quirk_rc6_force_disable(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |= QUIRK_RC6_DISABLE; + DRM_INFO("applying RC6 disable quirk "); +} + struct intel_quirk { int device; int subsystem_vendor; @@ -8827,6 +8839,12 @@ struct intel_quirk intel_quirks[] = { /* Sony Vaio Y cannot use SSC on LVDS */ { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable }, + + /* Asus ET2012E may fail to resume from S3 if RC6 is enabled */ + { 0x0102, 0x1043, 0x844d, quirk_rc6_force_disable }, + + /* Lenovo ThinkCentre S510 may hang after idle for a long time */ + { 0x0102, 0x17aa, 0x307b, quirk_rc6_force_disable }, }; static void intel_init_quirks(struct drm_device *dev) -- 1.7.9.5 -- kernel-team mailing list kernel-team@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kernel-team |
| All times are GMT. The time now is 02:36 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.