diff mbox series

[01/10] drm/i915: Flag crtc scaling_filter changes as modeset

Message ID 20220203183823.22890-2-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Use a bitmask for bigjoiner state tracking | expand

Commit Message

Ville Syrjala Feb. 3, 2022, 6:38 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

The core doesn't flag scaling_filter prop changes as needing
a modeset. That doesn't work for us since we only reprogram the
pipe scaler during full modesets and fastsets. So we need to
flag the prop change as a modeset ourselves. Assuming nothing else
has changed the operation will get promoted (demoted?) to a fastset
later.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Navare, Manasi Feb. 3, 2022, 9:58 p.m. UTC | #1
On Thu, Feb 03, 2022 at 08:38:14PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> The core doesn't flag scaling_filter prop changes as needing
> a modeset. That doesn't work for us since we only reprogram the
> pipe scaler during full modesets and fastsets. So we need to
> flag the prop change as a modeset ourselves. Assuming nothing else
> has changed the operation will get promoted (demoted?) to a fastset
> later.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Makes sense, although not sure why this was sent as part of bigjoiner bitmask series

Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>

Manasi

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index df347329d90e..85dce8a093d4 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -7846,6 +7846,10 @@ static int intel_atomic_check(struct drm_device *dev,
>  					    new_crtc_state, i) {
>  		if (new_crtc_state->inherited != old_crtc_state->inherited)
>  			new_crtc_state->uapi.mode_changed = true;
> +
> +		if (new_crtc_state->uapi.scaling_filter !=
> +		    old_crtc_state->uapi.scaling_filter)
> +			new_crtc_state->uapi.mode_changed = true;
>  	}
>  
>  	intel_vrr_check_modeset(state);
> -- 
> 2.34.1
>
Ville Syrjala Feb. 4, 2022, 6:53 a.m. UTC | #2
On Thu, Feb 03, 2022 at 01:58:01PM -0800, Navare, Manasi wrote:
> On Thu, Feb 03, 2022 at 08:38:14PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > The core doesn't flag scaling_filter prop changes as needing
> > a modeset. That doesn't work for us since we only reprogram the
> > pipe scaler during full modesets and fastsets. So we need to
> > flag the prop change as a modeset ourselves. Assuming nothing else
> > has changed the operation will get promoted (demoted?) to a fastset
> > later.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Makes sense, although not sure why this was sent as part of bigjoiner bitmask series

Because I noticed it while examining the bigjoiner state copy mess.

> 
> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>

Thanks.

> 
> Manasi
> 
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > index df347329d90e..85dce8a093d4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -7846,6 +7846,10 @@ static int intel_atomic_check(struct drm_device *dev,
> >  					    new_crtc_state, i) {
> >  		if (new_crtc_state->inherited != old_crtc_state->inherited)
> >  			new_crtc_state->uapi.mode_changed = true;
> > +
> > +		if (new_crtc_state->uapi.scaling_filter !=
> > +		    old_crtc_state->uapi.scaling_filter)
> > +			new_crtc_state->uapi.mode_changed = true;
> >  	}
> >  
> >  	intel_vrr_check_modeset(state);
> > -- 
> > 2.34.1
> >
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index df347329d90e..85dce8a093d4 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7846,6 +7846,10 @@  static int intel_atomic_check(struct drm_device *dev,
 					    new_crtc_state, i) {
 		if (new_crtc_state->inherited != old_crtc_state->inherited)
 			new_crtc_state->uapi.mode_changed = true;
+
+		if (new_crtc_state->uapi.scaling_filter !=
+		    old_crtc_state->uapi.scaling_filter)
+			new_crtc_state->uapi.mode_changed = true;
 	}
 
 	intel_vrr_check_modeset(state);