diff mbox series

drm/i915: Do not match JSL in ehl_combo_pll_div_frac_wa_needed()

Message ID 20240313135424.3731410-1-jonathon.hall@puri.sm (mailing list archive)
State New, archived
Headers show
Series drm/i915: Do not match JSL in ehl_combo_pll_div_frac_wa_needed() | expand

Commit Message

Jonathon Hall March 13, 2024, 1:54 p.m. UTC
Since commit 0c65dc062611 ("drm/i915/jsl: s/JSL/JASPERLAKE for
platform/subplatform defines"), boot freezes on a Jasper Lake tablet
(Librem 11), usually with graphical corruption on the eDP display,
but sometimes just a black screen.  This commit was included in 6.6 and
later.

That commit was intended to refactor EHL and JSL macros, but the change
to ehl_combo_pll_div_frac_wa_needed() started matching JSL incorrectly
when it was only intended to match EHL.

It replaced:
	return ((IS_PLATFORM(i915, INTEL_ELKHARTLAKE) &&
		 IS_JSL_EHL_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
with:
	return (((IS_ELKHARTLAKE(i915) || IS_JASPERLAKE(i915)) &&
		 IS_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||

Remove IS_JASPERLAKE() to fix the regression.

Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jani Nikula March 18, 2024, 10:13 a.m. UTC | #1
On Wed, 13 Mar 2024, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Wed, 13 Mar 2024, Jonathon Hall <jonathon.hall@puri.sm> wrote:
>> Since commit 0c65dc062611 ("drm/i915/jsl: s/JSL/JASPERLAKE for
>> platform/subplatform defines"), boot freezes on a Jasper Lake tablet
>> (Librem 11), usually with graphical corruption on the eDP display,
>> but sometimes just a black screen.  This commit was included in 6.6 and
>> later.
>>
>> That commit was intended to refactor EHL and JSL macros, but the change
>> to ehl_combo_pll_div_frac_wa_needed() started matching JSL incorrectly
>> when it was only intended to match EHL.
>>
>> It replaced:
>> 	return ((IS_PLATFORM(i915, INTEL_ELKHARTLAKE) &&
>> 		 IS_JSL_EHL_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
>> with:
>> 	return (((IS_ELKHARTLAKE(i915) || IS_JASPERLAKE(i915)) &&
>> 		 IS_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
>>
>> Remove IS_JASPERLAKE() to fix the regression.
>>
>> Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
>> Cc: stable@vger.kernel.org
>
> Thanks for the patch!
>
> Fixes: 0c65dc062611 ("drm/i915/jsl: s/JSL/JASPERLAKE for platform/subplatform defines")
> Cc: <stable@vger.kernel.org> # v6.6+
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

And pushed to drm-intel-next.

BR,
Jani.


>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
>> index ef57dad1a9cb..57a97880dcb3 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
>> @@ -2509,7 +2509,7 @@ static void icl_wrpll_params_populate(struct skl_wrpll_params *params,
>>  static bool
>>  ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private *i915)
>>  {
>> -	return (((IS_ELKHARTLAKE(i915) || IS_JASPERLAKE(i915)) &&
>> +	return ((IS_ELKHARTLAKE(i915) &&
>>  		 IS_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
>>  		 IS_TIGERLAKE(i915) || IS_ALDERLAKE_S(i915) || IS_ALDERLAKE_P(i915)) &&
>>  		 i915->display.dpll.ref_clks.nssc == 38400;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index ef57dad1a9cb..57a97880dcb3 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -2509,7 +2509,7 @@  static void icl_wrpll_params_populate(struct skl_wrpll_params *params,
 static bool
 ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private *i915)
 {
-	return (((IS_ELKHARTLAKE(i915) || IS_JASPERLAKE(i915)) &&
+	return ((IS_ELKHARTLAKE(i915) &&
 		 IS_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
 		 IS_TIGERLAKE(i915) || IS_ALDERLAKE_S(i915) || IS_ALDERLAKE_P(i915)) &&
 		 i915->display.dpll.ref_clks.nssc == 38400;