diff options
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 61e06f0e8cd3..625ba24f143f 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | |||
| @@ -1567,10 +1567,34 @@ vmw_kms_atomic_check_modeset(struct drm_device *dev, | |||
| 1567 | } | 1567 | } |
| 1568 | 1568 | ||
| 1569 | 1569 | ||
| 1570 | /** | ||
| 1571 | * vmw_kms_atomic_commit - Perform an atomic state commit | ||
| 1572 | * | ||
| 1573 | * @dev: DRM device | ||
| 1574 | * @state: the driver state object | ||
| 1575 | * @nonblock: Whether nonblocking behaviour is requested | ||
| 1576 | * | ||
| 1577 | * This is a simple wrapper around drm_atomic_helper_commit() for | ||
| 1578 | * us to clear the nonblocking value. | ||
| 1579 | * | ||
| 1580 | * Nonblocking commits currently cause synchronization issues | ||
| 1581 | * for vmwgfx. | ||
| 1582 | * | ||
| 1583 | * RETURNS | ||
| 1584 | * Zero for success or negative error code on failure. | ||
| 1585 | */ | ||
| 1586 | int vmw_kms_atomic_commit(struct drm_device *dev, | ||
| 1587 | struct drm_atomic_state *state, | ||
| 1588 | bool nonblock) | ||
| 1589 | { | ||
| 1590 | return drm_atomic_helper_commit(dev, state, false); | ||
| 1591 | } | ||
| 1592 | |||
| 1593 | |||
| 1570 | static const struct drm_mode_config_funcs vmw_kms_funcs = { | 1594 | static const struct drm_mode_config_funcs vmw_kms_funcs = { |
| 1571 | .fb_create = vmw_kms_fb_create, | 1595 | .fb_create = vmw_kms_fb_create, |
| 1572 | .atomic_check = vmw_kms_atomic_check_modeset, | 1596 | .atomic_check = vmw_kms_atomic_check_modeset, |
| 1573 | .atomic_commit = drm_atomic_helper_commit, | 1597 | .atomic_commit = vmw_kms_atomic_commit, |
| 1574 | }; | 1598 | }; |
| 1575 | 1599 | ||
| 1576 | static int vmw_kms_generic_present(struct vmw_private *dev_priv, | 1600 | static int vmw_kms_generic_present(struct vmw_private *dev_priv, |
