diff options
| -rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 570bd603f401..2ca481b5aa69 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4335,11 +4335,19 @@ 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  	 * test, we're guaranteed to hold at least one CRTC state mutex, @@ -4349,6 +4357,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;  | 
