Commit d5f84973 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915/dsb: Allow vblank synchronized DSB execution

parent 1f89b94b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1258,7 +1258,7 @@ static void icl_load_luts(const struct intel_crtc_state *crtc_state)

	if (crtc_state->dsb) {
		intel_dsb_finish(crtc_state->dsb);
		intel_dsb_commit(crtc_state->dsb);
		intel_dsb_commit(crtc_state->dsb, false);
		intel_dsb_wait(crtc_state->dsb);
	}
}
+3 −1
Original line number Diff line number Diff line
@@ -221,10 +221,11 @@ void intel_dsb_finish(struct intel_dsb *dsb)
/**
 * intel_dsb_commit() - Trigger workload execution of DSB.
 * @dsb: DSB context
 * @wait_for_vblank: wait for vblank before executing
 *
 * This function is used to do actual write to hardware using DSB.
 */
void intel_dsb_commit(struct intel_dsb *dsb)
void intel_dsb_commit(struct intel_dsb *dsb, bool wait_for_vblank)
{
	struct intel_crtc *crtc = dsb->crtc;
	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -242,6 +243,7 @@ void intel_dsb_commit(struct intel_dsb *dsb)
	}

	intel_de_write(dev_priv, DSB_CTRL(pipe, dsb->id),
		       (wait_for_vblank ? DSB_WAIT_FOR_VBLANK : 0) |
		       DSB_ENABLE);
	intel_de_write(dev_priv, DSB_HEAD(pipe, dsb->id),
		       i915_ggtt_offset(dsb->vma));
+2 −1
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@ void intel_dsb_finish(struct intel_dsb *dsb);
void intel_dsb_cleanup(struct intel_dsb *dsb);
void intel_dsb_reg_write(struct intel_dsb *dsb,
			 i915_reg_t reg, u32 val);
void intel_dsb_commit(struct intel_dsb *dsb);
void intel_dsb_commit(struct intel_dsb *dsb,
		      bool wait_for_vblank);
void intel_dsb_wait(struct intel_dsb *dsb);

#endif