diff options
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_rc6.c')
-rw-r--r-- | drivers/gpu/drm/i915/gt/intel_rc6.c | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c index a492f9f4c92e89..e1e9706f8cafd3 100644 --- a/drivers/gpu/drm/i915/gt/intel_rc6.c +++ b/drivers/gpu/drm/i915/gt/intel_rc6.c @@ -5,7 +5,6 @@ */ #include <linux/pm_runtime.h> -#include <linux/dmi.h> #include "i915_drv.h" #include "intel_gt.h" @@ -457,25 +456,6 @@ static bool bxt_check_bios_rc6_setup(struct intel_rc6 *rc6) return enable_rc6; } -static int intel_rc6_support_disabled(const struct dmi_system_id *id) -{ - DRM_DEBUG_KMS("A temporary WA to prevent system hang on %s device\n", - id->ident); - return 1; -} - -static const struct dmi_system_id intel_rc6_support_detect[] = { - { - .callback = intel_rc6_support_disabled, - .ident = "Google Bugzzy", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Google"), - DMI_MATCH(DMI_BOARD_NAME, "Bugzzy"), - } - }, - {} -}; - static bool rc6_supported(struct intel_rc6 *rc6) { struct drm_i915_private *i915 = rc6_to_i915(rc6); @@ -495,8 +475,21 @@ static bool rc6_supported(struct intel_rc6 *rc6) return false; } - if (dmi_check_system(intel_rc6_support_detect)) - return false; + /* + * The temporary WA to prevent system hang is to stop doing + * software RC6 control, which manually force GT entering + * and exiting from RC6. Noted that HW RC6 is still enabled + * by default. + * + * TODO: enable software RC6 contorl after a fix is found. + */ + if (INTEL_GEN(i915) == 11) { + if (IS_PLATFORM(i915, INTEL_JASPERLAKE)) { + drm_notice(&i915->drm, + "WA: Software RC6 disabled for Jasperlake platform\n"); + return false; + } + } return true; } |