>-----Original Message----- >From: Ville Syrjala [mailto:ville.syrjala@xxxxxxxxxxxxxxx] >Sent: Thursday, November 15, 2018 2:37 AM >To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx >Cc: Shankar, Uma <uma.shankar@xxxxxxxxx>; Maarten Lankhorst ><maarten.lankhorst@xxxxxxxxxxxxxxx> >Subject: [PATCH v2 13/13] drm/i915: Pass the plane to >icl_program_input_csc_coeff() > >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 :) Changes look ok to me. Reviewed-by: Uma Shankar <uma.shankar@xxxxxxxxx> >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); > >-- >2.18.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx