|
@@ -4819,10 +4819,18 @@ skl_compute_wm(struct drm_atomic_state *state)
|
|
|
struct drm_crtc_state *cstate;
|
|
|
struct intel_atomic_state *intel_state = to_intel_atomic_state(state);
|
|
|
struct skl_wm_values *results = &intel_state->wm_results;
|
|
|
+ struct drm_device *dev = state->dev;
|
|
|
struct skl_pipe_wm *pipe_wm;
|
|
|
bool changed = false;
|
|
|
int ret, i;
|
|
|
|
|
|
+ /*
|
|
|
+ * When we distrust bios wm we always need to recompute to set the
|
|
|
+ * expected DDB allocations for each CRTC.
|
|
|
+ */
|
|
|
+ if (to_i915(dev)->wm.distrust_bios_wm)
|
|
|
+ changed = true;
|
|
|
+
|
|
|
/*
|
|
|
* If this transaction isn't actually touching any CRTC's, don't
|
|
|
* bother with watermark calculation. Note that if we pass this
|
|
@@ -4833,6 +4841,7 @@ skl_compute_wm(struct drm_atomic_state *state)
|
|
|
*/
|
|
|
for_each_new_crtc_in_state(state, crtc, cstate, i)
|
|
|
changed = true;
|
|
|
+
|
|
|
if (!changed)
|
|
|
return 0;
|
|
|
|