Message ID | 1452214179-22361-1-git-send-email-rodrigo.vivi@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Jani and Daniel, I believe I forgot to cc:stable on this one and this is missing on most branches out there including Linus 4.5-r5. Is there any chance to get this patch in for 4.5? without this i915 is not working on KBL. Good thing is that this platform is still protected by preliminary_hw_support. Thanks, Rodrigo. On Thu, Jan 7, 2016 at 4:49 PM, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > When adding IS_KABYLAKE definition I didn't included the > DC states related because I was planing to include them > with the patch that fixes DMC firmware loading, but I > forgot them. > > Meanwhile this runtime pm code changed a lot for > Skylake. > > Well, I didn't expect that this would crash the machine > and I just noticed now that Sarah warned me our driver > wasn't working. Thanks Sarah. > > Michel had found the main error first and his > fix had better details on the history and got > merged already: > > commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 > Author: Michel Thierry <michel.thierry@intel.com> > Date: Wed Jan 6 12:08:36 2016 +0000 > > drm/i915/kbl: Enable PW1 and Misc I/O power wells > > This one is a follow-up adding the other remaining > missing pieces. > > v2: Rebased on top of Michel's patch as explained above. > > Cc: Sarah Sharp <sarah.a.sharp@intel.com> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > Reviewed-by: Michel Thierry <michel.thierry@intel.com> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > drivers/gpu/drm/i915/intel_csr.c | 5 +++-- > drivers/gpu/drm/i915/intel_runtime_pm.c | 15 ++++++++++----- > 2 files changed, 13 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c > index 9bb63a8..3f69829 100644 > --- a/drivers/gpu/drm/i915/intel_csr.c > +++ b/drivers/gpu/drm/i915/intel_csr.c > @@ -278,7 +278,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv, > > csr->version = css_header->version; > > - if (IS_SKYLAKE(dev) && csr->version < SKL_CSR_VERSION_REQUIRED) { > + if ((IS_SKYLAKE(dev) || IS_KABYLAKE(dev)) && > + csr->version < SKL_CSR_VERSION_REQUIRED) { > DRM_INFO("Refusing to load old Skylake DMC firmware v%u.%u," > " please upgrade to v%u.%u or later" > " [https://01.org/linuxgraphics/intel-linux-graphics-firmwares].\n", > @@ -421,7 +422,7 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv) > if (!HAS_CSR(dev_priv)) > return; > > - if (IS_SKYLAKE(dev_priv)) > + if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) > csr->fw_path = I915_CSR_SKL; > else if (IS_BROXTON(dev_priv)) > csr->fw_path = I915_CSR_BXT; > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 4b44e68..89a7dd8 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -532,7 +532,8 @@ static void assert_can_enable_dc5(struct drm_i915_private *dev_priv) > bool pg2_enabled = intel_display_power_well_is_enabled(dev_priv, > SKL_DISP_PW_2); > > - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC5.\n"); > + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), > + "Platform doesn't support DC5.\n"); > WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); > WARN_ONCE(pg2_enabled, "PG2 not disabled to enable DC5.\n"); > > @@ -568,7 +569,8 @@ static void assert_can_enable_dc6(struct drm_i915_private *dev_priv) > { > struct drm_device *dev = dev_priv->dev; > > - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC6.\n"); > + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), > + "Platform doesn't support DC6.\n"); > WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); > WARN_ONCE(I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE, > "Backlight is not disabled.\n"); > @@ -595,7 +597,8 @@ static void gen9_disable_dc5_dc6(struct drm_i915_private *dev_priv) > { > assert_can_disable_dc5(dev_priv); > > - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) > + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && > + i915.enable_dc != 0 && i915.enable_dc != 1) > assert_can_disable_dc6(dev_priv); > > gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); > @@ -783,7 +786,8 @@ static void gen9_dc_off_power_well_enable(struct drm_i915_private *dev_priv, > static void gen9_dc_off_power_well_disable(struct drm_i915_private *dev_priv, > struct i915_power_well *power_well) > { > - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) > + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && > + i915.enable_dc != 0 && i915.enable_dc != 1) > skl_enable_dc6(dev_priv); > else > gen9_enable_dc5(dev_priv); > @@ -795,7 +799,8 @@ static void gen9_dc_off_power_well_sync_hw(struct drm_i915_private *dev_priv, > if (power_well->count > 0) { > gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); > } else { > - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && > + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && > + i915.enable_dc != 0 && > i915.enable_dc != 1) > gen9_set_dc_state(dev_priv, DC_STATE_EN_UPTO_DC6); > else > -- > 2.4.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Fri, 26 Feb 2016, Rodrigo Vivi <rodrigo.vivi@gmail.com> wrote: > Hi Jani and Daniel, > > I believe I forgot to cc:stable on this one and this is missing on > most branches out there including Linus 4.5-r5. > Is there any chance to get this patch in for 4.5? without this i915 is > not working on KBL. Is the referenced commit by Michel also required? Michel had found the main error first and his fix had better details on the history and got merged already: commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 Author: Michel Thierry <michel.thierry@intel.com> Date: Wed Jan 6 12:08:36 2016 +0000 drm/i915/kbl: Enable PW1 and Misc I/O power wells If that's needed, what else is needed? Where does the rabbit hole end? > Good thing is that this platform is still protected by preliminary_hw_support. We do not backport cc: stable fixes for platforms that only have preliminary hw support. v4.5 is not released yet, and although towards the later -rc's the rules are pretty much the same as for stable kernels, I might consider cherry-picking kbl fixes that make platform enabling or early adoption easier. BR, Jani. > > Thanks, > Rodrigo. > > On Thu, Jan 7, 2016 at 4:49 PM, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: >> When adding IS_KABYLAKE definition I didn't included the >> DC states related because I was planing to include them >> with the patch that fixes DMC firmware loading, but I >> forgot them. >> >> Meanwhile this runtime pm code changed a lot for >> Skylake. >> >> Well, I didn't expect that this would crash the machine >> and I just noticed now that Sarah warned me our driver >> wasn't working. Thanks Sarah. >> >> Michel had found the main error first and his >> fix had better details on the history and got >> merged already: >> >> commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 >> Author: Michel Thierry <michel.thierry@intel.com> >> Date: Wed Jan 6 12:08:36 2016 +0000 >> >> drm/i915/kbl: Enable PW1 and Misc I/O power wells >> >> This one is a follow-up adding the other remaining >> missing pieces. >> >> v2: Rebased on top of Michel's patch as explained above. >> >> Cc: Sarah Sharp <sarah.a.sharp@intel.com> >> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> >> Reviewed-by: Michel Thierry <michel.thierry@intel.com> >> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> >> --- >> drivers/gpu/drm/i915/intel_csr.c | 5 +++-- >> drivers/gpu/drm/i915/intel_runtime_pm.c | 15 ++++++++++----- >> 2 files changed, 13 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c >> index 9bb63a8..3f69829 100644 >> --- a/drivers/gpu/drm/i915/intel_csr.c >> +++ b/drivers/gpu/drm/i915/intel_csr.c >> @@ -278,7 +278,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv, >> >> csr->version = css_header->version; >> >> - if (IS_SKYLAKE(dev) && csr->version < SKL_CSR_VERSION_REQUIRED) { >> + if ((IS_SKYLAKE(dev) || IS_KABYLAKE(dev)) && >> + csr->version < SKL_CSR_VERSION_REQUIRED) { >> DRM_INFO("Refusing to load old Skylake DMC firmware v%u.%u," >> " please upgrade to v%u.%u or later" >> " [https://01.org/linuxgraphics/intel-linux-graphics-firmwares].\n", >> @@ -421,7 +422,7 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv) >> if (!HAS_CSR(dev_priv)) >> return; >> >> - if (IS_SKYLAKE(dev_priv)) >> + if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) >> csr->fw_path = I915_CSR_SKL; >> else if (IS_BROXTON(dev_priv)) >> csr->fw_path = I915_CSR_BXT; >> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c >> index 4b44e68..89a7dd8 100644 >> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c >> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c >> @@ -532,7 +532,8 @@ static void assert_can_enable_dc5(struct drm_i915_private *dev_priv) >> bool pg2_enabled = intel_display_power_well_is_enabled(dev_priv, >> SKL_DISP_PW_2); >> >> - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC5.\n"); >> + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), >> + "Platform doesn't support DC5.\n"); >> WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); >> WARN_ONCE(pg2_enabled, "PG2 not disabled to enable DC5.\n"); >> >> @@ -568,7 +569,8 @@ static void assert_can_enable_dc6(struct drm_i915_private *dev_priv) >> { >> struct drm_device *dev = dev_priv->dev; >> >> - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC6.\n"); >> + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), >> + "Platform doesn't support DC6.\n"); >> WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); >> WARN_ONCE(I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE, >> "Backlight is not disabled.\n"); >> @@ -595,7 +597,8 @@ static void gen9_disable_dc5_dc6(struct drm_i915_private *dev_priv) >> { >> assert_can_disable_dc5(dev_priv); >> >> - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) >> + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && >> + i915.enable_dc != 0 && i915.enable_dc != 1) >> assert_can_disable_dc6(dev_priv); >> >> gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); >> @@ -783,7 +786,8 @@ static void gen9_dc_off_power_well_enable(struct drm_i915_private *dev_priv, >> static void gen9_dc_off_power_well_disable(struct drm_i915_private *dev_priv, >> struct i915_power_well *power_well) >> { >> - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) >> + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && >> + i915.enable_dc != 0 && i915.enable_dc != 1) >> skl_enable_dc6(dev_priv); >> else >> gen9_enable_dc5(dev_priv); >> @@ -795,7 +799,8 @@ static void gen9_dc_off_power_well_sync_hw(struct drm_i915_private *dev_priv, >> if (power_well->count > 0) { >> gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); >> } else { >> - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && >> + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && >> + i915.enable_dc != 0 && >> i915.enable_dc != 1) >> gen9_set_dc_state(dev_priv, DC_STATE_EN_UPTO_DC6); >> else >> -- >> 2.4.3 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On 2/29/2016 2:35 PM, Jani Nikula wrote: > On Fri, 26 Feb 2016, Rodrigo Vivi <rodrigo.vivi@gmail.com> wrote: >> Hi Jani and Daniel, >> >> I believe I forgot to cc:stable on this one and this is missing on >> most branches out there including Linus 4.5-r5. >> Is there any chance to get this patch in for 4.5? without this i915 is >> not working on KBL. > > Is the referenced commit by Michel also required? > > Michel had found the main error first and his > fix had better details on the history and got > merged already: > > commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 > Author: Michel Thierry <michel.thierry@intel.com> > Date: Wed Jan 6 12:08:36 2016 +0000 > > drm/i915/kbl: Enable PW1 and Misc I/O power wells > > If that's needed, what else is needed? Where does the rabbit hole end? > >> Good thing is that this platform is still protected by preliminary_hw_support. > > We do not backport cc: stable fixes for platforms that only have > preliminary hw support. > > v4.5 is not released yet, and although towards the later -rc's the rules > are pretty much the same as for stable kernels, I might consider > cherry-picking kbl fixes that make platform enabling or early adoption > easier. > Hi Jani, Now that v4.5 has been released, would you consider _backporting_ these two patches to allow kbl to boot? AFAIK, these are the only patches needed, drm/i915/kbl: Enable PW1 and Misc I/O power wells [https://cgit.freedesktop.org/drm-intel/commit/?id=16fbc291cb87c7defcd13ad715d3e4af0d523e43] and drm/i915/kbl: Adding missing IS_KABYLAKE checks [https://cgit.freedesktop.org/drm-intel/commit/?id=8d7a1c4a579c4ecfe360044c24dc1fbf97096752] Thanks, -Michel > BR, > Jani. > >
On Wed, 16 Mar 2016, Michel Thierry <michel.thierry@intel.com> wrote: > [ text/plain ] > On 2/29/2016 2:35 PM, Jani Nikula wrote: >> On Fri, 26 Feb 2016, Rodrigo Vivi <rodrigo.vivi@gmail.com> wrote: >>> Hi Jani and Daniel, >>> >>> I believe I forgot to cc:stable on this one and this is missing on >>> most branches out there including Linus 4.5-r5. >>> Is there any chance to get this patch in for 4.5? without this i915 is >>> not working on KBL. >> >> Is the referenced commit by Michel also required? >> >> Michel had found the main error first and his >> fix had better details on the history and got >> merged already: >> >> commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 >> Author: Michel Thierry <michel.thierry@intel.com> >> Date: Wed Jan 6 12:08:36 2016 +0000 >> >> drm/i915/kbl: Enable PW1 and Misc I/O power wells >> >> If that's needed, what else is needed? Where does the rabbit hole end? >> >>> Good thing is that this platform is still protected by preliminary_hw_support. >> >> We do not backport cc: stable fixes for platforms that only have >> preliminary hw support. >> >> v4.5 is not released yet, and although towards the later -rc's the rules >> are pretty much the same as for stable kernels, I might consider >> cherry-picking kbl fixes that make platform enabling or early adoption >> easier. >> > > Hi Jani, > > Now that v4.5 has been released, would you consider _backporting_ these > two patches to allow kbl to boot? As I said we do not backport cc: stable fixes for platforms that only have preliminary hw support. We can discuss the rules we make for ourselves, but that discussion shouldn't be linked to specific patches. So I might have cherry-picked them through fixes *before* v4.5 was released, but there was no response to my mail... communication fail from my part I guess, but I kind of expected opinions. "I might consider" does not mean "I am going to". (Technically, *I* don't do stable backports. Also, the commits have to be in Linus' tree before they can be backported to stable. See Documentation/stable_kernel_rules.txt.) BR, Jani. > > AFAIK, these are the only patches needed, > drm/i915/kbl: Enable PW1 and Misc I/O power wells > [https://cgit.freedesktop.org/drm-intel/commit/?id=16fbc291cb87c7defcd13ad715d3e4af0d523e43] > and > drm/i915/kbl: Adding missing IS_KABYLAKE checks > [https://cgit.freedesktop.org/drm-intel/commit/?id=8d7a1c4a579c4ecfe360044c24dc1fbf97096752] > > Thanks, > > -Michel > >> BR, >> Jani. >> >> >
On Wed, Mar 16, 2016 at 05:15:37PM +0200, Jani Nikula wrote: > On Wed, 16 Mar 2016, Michel Thierry <michel.thierry@intel.com> wrote: > > [ text/plain ] > > On 2/29/2016 2:35 PM, Jani Nikula wrote: > >> On Fri, 26 Feb 2016, Rodrigo Vivi <rodrigo.vivi@gmail.com> wrote: > >>> Hi Jani and Daniel, > >>> > >>> I believe I forgot to cc:stable on this one and this is missing on > >>> most branches out there including Linus 4.5-r5. > >>> Is there any chance to get this patch in for 4.5? without this i915 is > >>> not working on KBL. > >> > >> Is the referenced commit by Michel also required? > >> > >> Michel had found the main error first and his > >> fix had better details on the history and got > >> merged already: > >> > >> commit 16fbc291cb87c7defcd13ad715d3e4af0d523e43 > >> Author: Michel Thierry <michel.thierry@intel.com> > >> Date: Wed Jan 6 12:08:36 2016 +0000 > >> > >> drm/i915/kbl: Enable PW1 and Misc I/O power wells > >> > >> If that's needed, what else is needed? Where does the rabbit hole end? > >> > >>> Good thing is that this platform is still protected by preliminary_hw_support. > >> > >> We do not backport cc: stable fixes for platforms that only have > >> preliminary hw support. > >> > >> v4.5 is not released yet, and although towards the later -rc's the rules > >> are pretty much the same as for stable kernels, I might consider > >> cherry-picking kbl fixes that make platform enabling or early adoption > >> easier. > >> > > > > Hi Jani, > > > > Now that v4.5 has been released, would you consider _backporting_ these > > two patches to allow kbl to boot? > > As I said we do not backport cc: stable fixes for platforms that only > have preliminary hw support. We can discuss the rules we make for > ourselves, but that discussion shouldn't be linked to specific patches. > > So I might have cherry-picked them through fixes *before* v4.5 was > released, but there was no response to my mail... communication fail > from my part I guess, but I kind of expected opinions. "I might > consider" does not mean "I am going to". > > (Technically, *I* don't do stable backports. Also, the commits have to > be in Linus' tree before they can be backported to stable. See > Documentation/stable_kernel_rules.txt.) Yup, backproting platform support when upstream isn't yet out of prelim_hw_support or to kernels where that is still set doesn't make sense. If you need platform support earlier, you need to make it clear that we need to clear that milestone earlier. prelim_hw_support taints your kernel for a reason. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index 9bb63a8..3f69829 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -278,7 +278,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv, csr->version = css_header->version; - if (IS_SKYLAKE(dev) && csr->version < SKL_CSR_VERSION_REQUIRED) { + if ((IS_SKYLAKE(dev) || IS_KABYLAKE(dev)) && + csr->version < SKL_CSR_VERSION_REQUIRED) { DRM_INFO("Refusing to load old Skylake DMC firmware v%u.%u," " please upgrade to v%u.%u or later" " [https://01.org/linuxgraphics/intel-linux-graphics-firmwares].\n", @@ -421,7 +422,7 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv) if (!HAS_CSR(dev_priv)) return; - if (IS_SKYLAKE(dev_priv)) + if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) csr->fw_path = I915_CSR_SKL; else if (IS_BROXTON(dev_priv)) csr->fw_path = I915_CSR_BXT; diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 4b44e68..89a7dd8 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -532,7 +532,8 @@ static void assert_can_enable_dc5(struct drm_i915_private *dev_priv) bool pg2_enabled = intel_display_power_well_is_enabled(dev_priv, SKL_DISP_PW_2); - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC5.\n"); + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), + "Platform doesn't support DC5.\n"); WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); WARN_ONCE(pg2_enabled, "PG2 not disabled to enable DC5.\n"); @@ -568,7 +569,8 @@ static void assert_can_enable_dc6(struct drm_i915_private *dev_priv) { struct drm_device *dev = dev_priv->dev; - WARN_ONCE(!IS_SKYLAKE(dev), "Platform doesn't support DC6.\n"); + WARN_ONCE(!IS_SKYLAKE(dev) && !IS_KABYLAKE(dev), + "Platform doesn't support DC6.\n"); WARN_ONCE(!HAS_RUNTIME_PM(dev), "Runtime PM not enabled.\n"); WARN_ONCE(I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE, "Backlight is not disabled.\n"); @@ -595,7 +597,8 @@ static void gen9_disable_dc5_dc6(struct drm_i915_private *dev_priv) { assert_can_disable_dc5(dev_priv); - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && + i915.enable_dc != 0 && i915.enable_dc != 1) assert_can_disable_dc6(dev_priv); gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); @@ -783,7 +786,8 @@ static void gen9_dc_off_power_well_enable(struct drm_i915_private *dev_priv, static void gen9_dc_off_power_well_disable(struct drm_i915_private *dev_priv, struct i915_power_well *power_well) { - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && i915.enable_dc != 1) + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && + i915.enable_dc != 0 && i915.enable_dc != 1) skl_enable_dc6(dev_priv); else gen9_enable_dc5(dev_priv); @@ -795,7 +799,8 @@ static void gen9_dc_off_power_well_sync_hw(struct drm_i915_private *dev_priv, if (power_well->count > 0) { gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); } else { - if (IS_SKYLAKE(dev_priv) && i915.enable_dc != 0 && + if ((IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) && + i915.enable_dc != 0 && i915.enable_dc != 1) gen9_set_dc_state(dev_priv, DC_STATE_EN_UPTO_DC6); else