[Intel-gfx] [PATCH 01/23] drm/i915: Fix rotation setup during plane HW readout

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Mar 11 17:25:19 UTC 2021


On Thu, Mar 11, 2021 at 06:52:44PM +0200, Imre Deak wrote:
> On Thu, Mar 11, 2021 at 06:04:57PM +0200, Ville Syrjälä wrote:
> > On Thu, Mar 11, 2021 at 12:17:14AM +0200, Imre Deak wrote:
> > > The HW plane state is cleared and inited after we store the rotation to
> > > it, so store it instead to the uapi state to match what we do with all
> > > other plane state until intel_plane_copy_uapi_to_hw_state() is called.
> > 
> > Feels a bit backwards. Ideally I'd like the readout to go the other way.
> > But given how this code is atm this is consistent with the rest.
> 
> Yes makes sense to read out to an i915 specific state first, if that's
> what you mean.
> 
> > Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > Looks like we could also nuke the
> >  intel_state->uapi.src = drm_plane_state_src(plane_state);
> >  intel_state->uapi.dst = drm_plane_state_dest(plane_state);
> > since intel_plane_copy_uapi_to_hw_state() also does that for us.
> 
> Yes, though the fn name suggests that it only copies from uapi -> hw.

Well, uapi.{src,dst} is really hw.{src,dst} in disguise because we
couldn't convince people to do the proper state split in the core
and we didn't want to duplicate these in the hw state and leave the
ones in the "uapi" state totally unused. It's a mess :(

> 
> > > Rotation for initial FBs is not supported atm, but let's still fix the
> > > plane state setup here.
> > > 
> > > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.c | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 5bfc06c46e28..12b54e032bc1 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -2468,11 +2468,11 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> > >  	return;
> > >  
> > >  valid_fb:
> > > -	intel_state->hw.rotation = plane_config->rotation;
> > > +	plane_state->rotation = plane_config->rotation;
> > >  	intel_fill_fb_ggtt_view(&intel_state->view, fb,
> > > -				intel_state->hw.rotation);
> > > +				plane_state->rotation);
> > >  	intel_state->color_plane[0].stride =
> > > -		intel_fb_pitch(fb, 0, intel_state->hw.rotation);
> > > +		intel_fb_pitch(fb, 0, plane_state->rotation);
> > >  
> > >  	__i915_vma_pin(vma);
> > >  	intel_state->vma = i915_vma_get(vma);
> > > -- 
> > > 2.25.1
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > -- 
> > Ville Syrjälä
> > Intel

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list