diff mbox series

drm/i915/vrr: Stop writing VRR_CTL_IGN_MAX_SHIFT for LNL onwards

Message ID 20250407063758.3131498-1-jouni.hogander@intel.com (mailing list archive)
State New
Headers show
Series drm/i915/vrr: Stop writing VRR_CTL_IGN_MAX_SHIFT for LNL onwards | expand

Commit Message

Jouni Högander April 7, 2025, 6:37 a.m. UTC
According to Bspec VRR_CTL_IGN_MAX_SHIFT doesn't exist for LunarLake and
onwards. Bit 30 is "Mask Block PkgC" instead. Stop writing that for
LunarLake and onwards.

Bspec: 68925

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vrr.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Nautiyal, Ankit K April 7, 2025, 11:16 a.m. UTC | #1
On 4/7/2025 12:07 PM, Jouni Högander wrote:
> According to Bspec VRR_CTL_IGN_MAX_SHIFT doesn't exist for LunarLake and
> onwards. Bit 30 is "Mask Block PkgC" instead. Stop writing that for
> LunarLake and onwards.

Good catch! I Agree with the change.


>
> Bspec: 68925


Should remove the extra line so that Bspec# is part of the trailer.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com

> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_vrr.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
> index 633a66f6b73be..ed59e83a3857b 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -444,7 +444,10 @@ static u32 trans_vrr_ctl(const struct intel_crtc_state *crtc_state)
>   {
>   	struct intel_display *display = to_intel_display(crtc_state);
>   
> -	if (DISPLAY_VER(display) >= 13)
> +	if (DISPLAY_VER(display) >= 20)
> +		return VRR_CTL_FLIP_LINE_EN |
> +			XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
> +	else if (DISPLAY_VER(display) >= 13)
>   		return VRR_CTL_IGN_MAX_SHIFT | VRR_CTL_FLIP_LINE_EN |
>   			XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
>   	else
Nautiyal, Ankit K April 7, 2025, 11:25 a.m. UTC | #2
On 4/7/2025 4:46 PM, Nautiyal, Ankit K wrote:
>
> On 4/7/2025 12:07 PM, Jouni Högander wrote:
>> According to Bspec VRR_CTL_IGN_MAX_SHIFT doesn't exist for LunarLake and
>> onwards. Bit 30 is "Mask Block PkgC" instead. Stop writing that for
>> LunarLake and onwards.

Seems like this is not there for MTL onward: Bspec: 71956.

Till Alderlake the bit is valid.


Regards,

Ankit


>
> Good catch! I Agree with the change.
>
>
>>
>> Bspec: 68925
>
>
> Should remove the extra line so that Bspec# is part of the trailer.
>
> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com
>
>> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
>> ---
>>   drivers/gpu/drm/i915/display/intel_vrr.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
>> b/drivers/gpu/drm/i915/display/intel_vrr.c
>> index 633a66f6b73be..ed59e83a3857b 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
>> @@ -444,7 +444,10 @@ static u32 trans_vrr_ctl(const struct 
>> intel_crtc_state *crtc_state)
>>   {
>>       struct intel_display *display = to_intel_display(crtc_state);
>>   -    if (DISPLAY_VER(display) >= 13)
>> +    if (DISPLAY_VER(display) >= 20)
>> +        return VRR_CTL_FLIP_LINE_EN |
>> + XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
>> +    else if (DISPLAY_VER(display) >= 13)
>>           return VRR_CTL_IGN_MAX_SHIFT | VRR_CTL_FLIP_LINE_EN |
>> XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
>>       else
Jouni Högander April 7, 2025, 12:08 p.m. UTC | #3
On Mon, 2025-04-07 at 16:55 +0530, Nautiyal, Ankit K wrote:
> 
> On 4/7/2025 4:46 PM, Nautiyal, Ankit K wrote:
> > 
> > On 4/7/2025 12:07 PM, Jouni Högander wrote:
> > > According to Bspec VRR_CTL_IGN_MAX_SHIFT doesn't exist for
> > > LunarLake and
> > > onwards. Bit 30 is "Mask Block PkgC" instead. Stop writing that
> > > for
> > > LunarLake and onwards.
> 
> Seems like this is not there for MTL onward: Bspec: 71956.
> 
> Till Alderlake the bit is valid.

Yes, you are right. I will change accordingly.

BR,

Jouni Högander
> 
> 
> Regards,
> 
> Ankit
> 
> 
> > 
> > Good catch! I Agree with the change.
> > 
> > 
> > > 
> > > Bspec: 68925
> > 
> > 
> > Should remove the extra line so that Bspec# is part of the trailer.
> > 
> > Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com
> > 
> > > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > > ---
> > >   drivers/gpu/drm/i915/display/intel_vrr.c | 5 ++++-
> > >   1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
> > > b/drivers/gpu/drm/i915/display/intel_vrr.c
> > > index 633a66f6b73be..ed59e83a3857b 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> > > @@ -444,7 +444,10 @@ static u32 trans_vrr_ctl(const struct 
> > > intel_crtc_state *crtc_state)
> > >   {
> > >       struct intel_display *display =
> > > to_intel_display(crtc_state);
> > >   -    if (DISPLAY_VER(display) >= 13)
> > > +    if (DISPLAY_VER(display) >= 20)
> > > +        return VRR_CTL_FLIP_LINE_EN |
> > > + XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
> > > +    else if (DISPLAY_VER(display) >= 13)
> > >           return VRR_CTL_IGN_MAX_SHIFT | VRR_CTL_FLIP_LINE_EN |
> > > XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
> > >       else
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 633a66f6b73be..ed59e83a3857b 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -444,7 +444,10 @@  static u32 trans_vrr_ctl(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_display *display = to_intel_display(crtc_state);
 
-	if (DISPLAY_VER(display) >= 13)
+	if (DISPLAY_VER(display) >= 20)
+		return VRR_CTL_FLIP_LINE_EN |
+			XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
+	else if (DISPLAY_VER(display) >= 13)
 		return VRR_CTL_IGN_MAX_SHIFT | VRR_CTL_FLIP_LINE_EN |
 			XELPD_VRR_CTL_VRR_GUARDBAND(crtc_state->vrr.guardband);
 	else