aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gt/intel_rc6.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_rc6.c')
-rw-r--r--drivers/gpu/drm/i915/gt/intel_rc6.c37
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;
}