diff mbox

drm/i915/kbl: Adding missing IS_KABYLAKE checks.

Message ID 1452214179-22361-1-git-send-email-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rodrigo Vivi Jan. 8, 2016, 12:49 a.m. UTC
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(-)

Comments

Rodrigo Vivi Feb. 26, 2016, 12:23 a.m. UTC | #1
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
Jani Nikula Feb. 29, 2016, 2:35 p.m. UTC | #2
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
Michel Thierry March 16, 2016, 2:31 p.m. UTC | #3
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.
>
>
Jani Nikula March 16, 2016, 3:15 p.m. UTC | #4
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.
>>
>>
>
Daniel Vetter March 16, 2016, 3:32 p.m. UTC | #5
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 mbox

Patch

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