Op 14-11-18 om 22:07 schreef Ville Syrjala: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > On icl+ the plane state that gets passed to update_slave() is not > the plane state of the plane we're programming. With NV12 the > plane state would be coming from the master (UV) plane whereas > the plane we're programming is the slave (Y) plane. For that reason > we need to explicitly pass around the slave plane (or we'd have to > otherwise deduce it by checking whether we were called via > .update_plane() or .update_slave()). > > In the case of icl_program_input_csc_coeff() it's actually OK to > assume that we are always the master plane because the input CSC > only exists on HDR planes which can never be a slave plane. But > for consistency let's pass in the plane explicitly anyway. > > While at it drop the "_coeff" from the function name since it's > kinda redundant, and this makes the name a bit shorter :) > > Cc: Uma Shankar <uma.shankar@xxxxxxxxx> > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_sprite.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c > index 0262159e7084..ee4c37a613f7 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -373,14 +373,12 @@ skl_program_scaler(struct intel_plane *plane, > #define BOFF(x) (((x) & 0xffff) << 16) > > static void > -icl_program_input_csc_coeff(const struct intel_crtc_state *crtc_state, > - const struct intel_plane_state *plane_state) > +icl_program_input_csc(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state) > { > - struct drm_i915_private *dev_priv = > - to_i915(plane_state->base.plane->dev); > - struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); > - enum pipe pipe = crtc->pipe; > - struct intel_plane *plane = to_intel_plane(plane_state->base.plane); > + struct drm_i915_private *dev_priv = to_i915(plane->base.dev); > + enum pipe pipe = plane->pipe; > enum plane_id plane_id = plane->id; > > static const u16 input_csc_matrix[][9] = { > @@ -540,7 +538,7 @@ skl_program_plane(struct intel_plane *plane, > plane_state->color_ctl); > > if (fb->format->is_yuv && icl_is_hdr_plane(plane)) > - icl_program_input_csc_coeff(crtc_state, plane_state); > + icl_program_input_csc(plane, crtc_state, plane_state); > > skl_write_plane_wm(plane, crtc_state); > Whole series looks good to me. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx