diff mbox series

[v3,3/3] drm/i915/dp: Compute as_sdp based on if vrr possible

Message ID 20241021105100.2861830-4-mitulkumar.ajitkumar.golani@intel.com (mailing list archive)
State New, archived
Headers show
Series Add AS_SDP to fastset | expand

Commit Message

Golani, Mitulkumar Ajitkumar Oct. 21, 2024, 10:51 a.m. UTC
Adaptive sync sdp param computation, specifically minimum vtotal is
blocking vrr enable and disable fastset requirements in certain scenario
i.e. during null modeset, this minimum vtotal we can configure during
full modeset as well when sink is having vrr support, where it doesn't
need dependency on vrr.enable status and can also match vrr
enable/disable fastset requirement.

Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Nautiyal, Ankit K Nov. 18, 2024, 8:07 a.m. UTC | #1
On 10/21/2024 4:21 PM, Mitul Golani wrote:
> Adaptive sync sdp param computation, specifically minimum vtotal is
> blocking vrr enable and disable fastset requirements in certain scenario
> i.e. during null modeset, this minimum vtotal we can configure during
> full modeset as well when sink is having vrr support, where it doesn't
> need dependency on vrr.enable status and can also match vrr
> enable/disable fastset requirement.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_dp.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index b1f68fff524d..0fefe6f16257 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -2769,7 +2769,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
>   	const struct drm_display_mode *adjusted_mode =
>   		&crtc_state->hw.adjusted_mode;
>   
> -	if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
> +	if (!intel_vrr_possible(crtc_state) || !intel_dp->as_sdp_supported)
>   		return;
>   
>   	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
> @@ -2786,7 +2786,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
>   		as_sdp->target_rr_divider = true;
>   	} else {
>   		as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL;
> -		as_sdp->vtotal = adjusted_mode->vtotal;
> +		as_sdp->vtotal = crtc_state->vrr.vmin + 1;

Yes vrr vmin should be correct thing here for DB1 and DB2, but we do not 
need to add 1 here.

Also, this should be a separate patch.

Regards,

Ankit

>   		as_sdp->target_rr = 0;
>   	}
>   }
Golani, Mitulkumar Ajitkumar Nov. 20, 2024, 6:23 a.m. UTC | #2
> -----Original Message-----
> From: Nautiyal, Ankit K <ankit.k.nautiyal@intel.com>
> Sent: 18 November 2024 13:38
> To: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>;
> intel-gfx@lists.freedesktop.org
> Cc: ville.syrjala@linux.intel.com
> Subject: Re: [PATCH v3 3/3] drm/i915/dp: Compute as_sdp based on if vrr
> possible
> 
> 
> On 10/21/2024 4:21 PM, Mitul Golani wrote:
> > Adaptive sync sdp param computation, specifically minimum vtotal is
> > blocking vrr enable and disable fastset requirements in certain
> > scenario i.e. during null modeset, this minimum vtotal we can
> > configure during full modeset as well when sink is having vrr support,
> > where it doesn't need dependency on vrr.enable status and can also
> > match vrr enable/disable fastset requirement.
> >
> > Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> > ---
> >   drivers/gpu/drm/i915/display/intel_dp.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > b/drivers/gpu/drm/i915/display/intel_dp.c
> > index b1f68fff524d..0fefe6f16257 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -2769,7 +2769,7 @@ static void intel_dp_compute_as_sdp(struct
> intel_dp *intel_dp,
> >   	const struct drm_display_mode *adjusted_mode =
> >   		&crtc_state->hw.adjusted_mode;
> >
> > -	if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
> > +	if (!intel_vrr_possible(crtc_state) || !intel_dp->as_sdp_supported)
> >   		return;
> >
> >   	crtc_state->infoframes.enable |=
> > intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
> > @@ -2786,7 +2786,7 @@ static void intel_dp_compute_as_sdp(struct
> intel_dp *intel_dp,
> >   		as_sdp->target_rr_divider = true;
> >   	} else {
> >   		as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL;
> > -		as_sdp->vtotal = adjusted_mode->vtotal;
> > +		as_sdp->vtotal = crtc_state->vrr.vmin + 1;
> 
> Yes vrr vmin should be correct thing here for DB1 and DB2, but we do not
> need to add 1 here.
> 
> Also, this should be a separate patch.

Agreed,

I will separate these patches. Thanks for review Ankit.

Regards,
Mitul

> 
> Regards,
> 
> Ankit
> 
> >   		as_sdp->target_rr = 0;
> >   	}
> >   }
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index b1f68fff524d..0fefe6f16257 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2769,7 +2769,7 @@  static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->hw.adjusted_mode;
 
-	if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
+	if (!intel_vrr_possible(crtc_state) || !intel_dp->as_sdp_supported)
 		return;
 
 	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
@@ -2786,7 +2786,7 @@  static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
 		as_sdp->target_rr_divider = true;
 	} else {
 		as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL;
-		as_sdp->vtotal = adjusted_mode->vtotal;
+		as_sdp->vtotal = crtc_state->vrr.vmin + 1;
 		as_sdp->target_rr = 0;
 	}
 }