Message ID | 20240624191032.27333-6-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/dsb: Use chained DSBs for LUT programming | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville > Syrjala > Sent: Tuesday, June 25, 2024 12:40 AM > To: intel-gfx@lists.freedesktop.org > Subject: [PATCH 05/14] drm/i915/dsb: Shuffle code around > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Relocate intel_dsb_dewake_scanline() and dsb_chicken() upwards in the file. > I need to reuse these while emitting DSB commands, and I'd like to keep the > DSB command emission stuff more or less grouped together in the file. > > Also drop the intel_ prefix from intel_dsb_dewake_scanline() since it's all > internal stuff and thus doesn't need so much namespacing. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> LGTM. Reviewed-by: Animesh manna <animesh.manna@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dsb.c | 56 ++++++++++++------------ > 1 file changed, 28 insertions(+), 28 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c > b/drivers/gpu/drm/i915/display/intel_dsb.c > index cee33c66a26b..d3e5e5263603 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.c > +++ b/drivers/gpu/drm/i915/display/intel_dsb.c > @@ -83,6 +83,33 @@ struct intel_dsb { > #define DSB_OPCODE_POLL 0xA > /* see DSB_REG_VALUE_MASK */ > > +static int dsb_dewake_scanline(const struct intel_crtc_state > +*crtc_state) { > + struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); > + const struct drm_display_mode *adjusted_mode = &crtc_state- > >hw.adjusted_mode; > + unsigned int latency = skl_watermark_max_latency(i915, 0); > + int vblank_start; > + > + if (crtc_state->vrr.enable) > + vblank_start = intel_vrr_vmin_vblank_start(crtc_state); > + else > + vblank_start = intel_mode_vblank_start(adjusted_mode); > + > + return max(0, vblank_start - > intel_usecs_to_scanlines(adjusted_mode, > +latency)); } > + > +static u32 dsb_chicken(struct intel_crtc *crtc) { > + if (crtc->mode_flags & I915_MODE_FLAG_VRR) > + return DSB_SKIP_WAITS_EN | > + DSB_CTRL_WAIT_SAFE_WINDOW | > + DSB_CTRL_NO_WAIT_VBLANK | > + DSB_INST_WAIT_SAFE_WINDOW | > + DSB_INST_NO_WAIT_VBLANK; > + else > + return DSB_SKIP_WAITS_EN; > +} > + > static bool assert_dsb_has_room(struct intel_dsb *dsb) { > struct intel_crtc *crtc = dsb->crtc; > @@ -313,33 +340,6 @@ void intel_dsb_finish(struct intel_dsb *dsb) > intel_dsb_buffer_flush_map(&dsb->dsb_buf); > } > > -static int intel_dsb_dewake_scanline(const struct intel_crtc_state > *crtc_state) -{ > - struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); > - const struct drm_display_mode *adjusted_mode = &crtc_state- > >hw.adjusted_mode; > - unsigned int latency = skl_watermark_max_latency(i915, 0); > - int vblank_start; > - > - if (crtc_state->vrr.enable) > - vblank_start = intel_vrr_vmin_vblank_start(crtc_state); > - else > - vblank_start = intel_mode_vblank_start(adjusted_mode); > - > - return max(0, vblank_start - > intel_usecs_to_scanlines(adjusted_mode, latency)); > -} > - > -static u32 dsb_chicken(struct intel_crtc *crtc) -{ > - if (crtc->mode_flags & I915_MODE_FLAG_VRR) > - return DSB_SKIP_WAITS_EN | > - DSB_CTRL_WAIT_SAFE_WINDOW | > - DSB_CTRL_NO_WAIT_VBLANK | > - DSB_INST_WAIT_SAFE_WINDOW | > - DSB_INST_NO_WAIT_VBLANK; > - else > - return DSB_SKIP_WAITS_EN; > -} > - > static u32 dsb_error_int_status(struct intel_display *display) { > struct drm_i915_private *i915 = to_i915(display->drm); @@ -532,7 > +532,7 @@ struct intel_dsb *intel_dsb_prepare(struct intel_atomic_state > *state, > dsb->ins_start_offset = 0; > > dsb->hw_dewake_scanline = > - intel_crtc_scanline_to_hw(crtc_state, > intel_dsb_dewake_scanline(crtc_state)); > + intel_crtc_scanline_to_hw(crtc_state, > +dsb_dewake_scanline(crtc_state)); > > return dsb; > > -- > 2.44.2
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c index cee33c66a26b..d3e5e5263603 100644 --- a/drivers/gpu/drm/i915/display/intel_dsb.c +++ b/drivers/gpu/drm/i915/display/intel_dsb.c @@ -83,6 +83,33 @@ struct intel_dsb { #define DSB_OPCODE_POLL 0xA /* see DSB_REG_VALUE_MASK */ +static int dsb_dewake_scanline(const struct intel_crtc_state *crtc_state) +{ + struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); + const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; + unsigned int latency = skl_watermark_max_latency(i915, 0); + int vblank_start; + + if (crtc_state->vrr.enable) + vblank_start = intel_vrr_vmin_vblank_start(crtc_state); + else + vblank_start = intel_mode_vblank_start(adjusted_mode); + + return max(0, vblank_start - intel_usecs_to_scanlines(adjusted_mode, latency)); +} + +static u32 dsb_chicken(struct intel_crtc *crtc) +{ + if (crtc->mode_flags & I915_MODE_FLAG_VRR) + return DSB_SKIP_WAITS_EN | + DSB_CTRL_WAIT_SAFE_WINDOW | + DSB_CTRL_NO_WAIT_VBLANK | + DSB_INST_WAIT_SAFE_WINDOW | + DSB_INST_NO_WAIT_VBLANK; + else + return DSB_SKIP_WAITS_EN; +} + static bool assert_dsb_has_room(struct intel_dsb *dsb) { struct intel_crtc *crtc = dsb->crtc; @@ -313,33 +340,6 @@ void intel_dsb_finish(struct intel_dsb *dsb) intel_dsb_buffer_flush_map(&dsb->dsb_buf); } -static int intel_dsb_dewake_scanline(const struct intel_crtc_state *crtc_state) -{ - struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); - const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; - unsigned int latency = skl_watermark_max_latency(i915, 0); - int vblank_start; - - if (crtc_state->vrr.enable) - vblank_start = intel_vrr_vmin_vblank_start(crtc_state); - else - vblank_start = intel_mode_vblank_start(adjusted_mode); - - return max(0, vblank_start - intel_usecs_to_scanlines(adjusted_mode, latency)); -} - -static u32 dsb_chicken(struct intel_crtc *crtc) -{ - if (crtc->mode_flags & I915_MODE_FLAG_VRR) - return DSB_SKIP_WAITS_EN | - DSB_CTRL_WAIT_SAFE_WINDOW | - DSB_CTRL_NO_WAIT_VBLANK | - DSB_INST_WAIT_SAFE_WINDOW | - DSB_INST_NO_WAIT_VBLANK; - else - return DSB_SKIP_WAITS_EN; -} - static u32 dsb_error_int_status(struct intel_display *display) { struct drm_i915_private *i915 = to_i915(display->drm); @@ -532,7 +532,7 @@ struct intel_dsb *intel_dsb_prepare(struct intel_atomic_state *state, dsb->ins_start_offset = 0; dsb->hw_dewake_scanline = - intel_crtc_scanline_to_hw(crtc_state, intel_dsb_dewake_scanline(crtc_state)); + intel_crtc_scanline_to_hw(crtc_state, dsb_dewake_scanline(crtc_state)); return dsb;