diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-04 08:19:21 -0700 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-04 08:19:21 -0700 | 
| commit | c318a821b9828ef3be97d5d896d146e7daa43c86 (patch) | |
| tree | 7ed40911ffebcbabf87ec4be692f6fb154053687 /drivers/gpu/drm/drm_atomic.c | |
| parent | 322832f2f19e04c866a0ce4bdac8cff8e695f2b3 (diff) | |
| parent | a99cde438de0c4c0cecc1d1af1a55a75b10bfdef (diff) | |
Merge 4.7-rc6 into usb-next
We want the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/drm_atomic.c')
| -rw-r--r-- | drivers/gpu/drm/drm_atomic.c | 27 | 
1 files changed, 26 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index c204ef32df16..9bb99e274d23 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1296,14 +1296,39 @@ EXPORT_SYMBOL(drm_atomic_add_affected_planes);   */  void drm_atomic_legacy_backoff(struct drm_atomic_state *state)  { +	struct drm_device *dev = state->dev; +	unsigned crtc_mask = 0; +	struct drm_crtc *crtc;  	int ret; +	bool global = false; + +	drm_for_each_crtc(crtc, dev) { +		if (crtc->acquire_ctx != state->acquire_ctx) +			continue; + +		crtc_mask |= drm_crtc_mask(crtc); +		crtc->acquire_ctx = NULL; +	} + +	if (WARN_ON(dev->mode_config.acquire_ctx == state->acquire_ctx)) { +		global = true; + +		dev->mode_config.acquire_ctx = NULL; +	}  retry:  	drm_modeset_backoff(state->acquire_ctx); -	ret = drm_modeset_lock_all_ctx(state->dev, state->acquire_ctx); +	ret = drm_modeset_lock_all_ctx(dev, state->acquire_ctx);  	if (ret)  		goto retry; + +	drm_for_each_crtc(crtc, dev) +		if (drm_crtc_mask(crtc) & crtc_mask) +			crtc->acquire_ctx = state->acquire_ctx; + +	if (global) +		dev->mode_config.acquire_ctx = state->acquire_ctx;  }  EXPORT_SYMBOL(drm_atomic_legacy_backoff);  | 
