diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index f06babdb3a8c..9fe4b583cc28 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -6561,7 +6561,10 @@ void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)  		enum plane_id plane_id;  		u8 slices; -		skl_pipe_wm_get_hw_state(crtc, &crtc_state->wm.skl.optimal); +		memset(&crtc_state->wm.skl.optimal, 0, +		       sizeof(crtc_state->wm.skl.optimal)); +		if (crtc_state->hw.active) +			skl_pipe_wm_get_hw_state(crtc, &crtc_state->wm.skl.optimal);  		crtc_state->wm.skl.raw = crtc_state->wm.skl.optimal;  		memset(&dbuf_state->ddb[pipe], 0, sizeof(dbuf_state->ddb[pipe])); @@ -6572,6 +6575,9 @@ void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)  			struct skl_ddb_entry *ddb_y =  				&crtc_state->wm.skl.plane_ddb_y[plane_id]; +			if (!crtc_state->hw.active) +				continue; +  			skl_ddb_get_hw_plane_state(dev_priv, crtc->pipe,  						   plane_id, ddb, ddb_y); | 
