aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_atomic_helper.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-04-26 10:11:34 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-05-02 10:35:49 -0400
commit286dbb8d5d800dcca23d43bb62d9f3cd96fe479c (patch)
tree419faa623b1d321efb70e48ac5b76fd91c552650 /drivers/gpu/drm/drm_atomic_helper.c
parente375882406d0cc24030746638592004755ed4ae0 (diff)
drm/atomic: Rename async parameter to nonblocking.
This is the first step of renaming async commit to nonblocking commit. The flag passed by userspace is NONBLOCKING, and async has a different meaning for page flips, where it means as soon as possible. Fixing up comments in drm core is done manually, to make sure I didn't miss anything. For drivers, the following cocci script is used to rename bool async to bool nonblock: @@ identifier I =~ "^async"; identifier func; @@ func(..., bool - I + nonblock , ...) { <... - I + nonblock ...> } @@ identifier func; type T; identifier I =~ "^async"; @@ T func(..., bool - I + nonblock , ...); Thanks to Tvrtko Ursulin for the cocci script. Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1461679905-30177-2-git-send-email-maarten.lankhorst@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_helper.c')
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 40c7b268a9bc..297713bab549 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1114,13 +1114,13 @@ EXPORT_SYMBOL(drm_atomic_helper_wait_for_vblanks);
1114 * drm_atomic_helper_commit - commit validated state object 1114 * drm_atomic_helper_commit - commit validated state object
1115 * @dev: DRM device 1115 * @dev: DRM device
1116 * @state: the driver state object 1116 * @state: the driver state object
1117 * @async: asynchronous commit 1117 * @nonblocking: whether nonblocking behavior is requested.
1118 * 1118 *
1119 * This function commits a with drm_atomic_helper_check() pre-validated state 1119 * This function commits a with drm_atomic_helper_check() pre-validated state
1120 * object. This can still fail when e.g. the framebuffer reservation fails. For 1120 * object. This can still fail when e.g. the framebuffer reservation fails. For
1121 * now this doesn't implement asynchronous commits. 1121 * now this doesn't implement nonblocking commits.
1122 * 1122 *
1123 * Note that right now this function does not support async commits, and hence 1123 * Note that right now this function does not support nonblocking commits, hence
1124 * driver writers must implement their own version for now. Also note that the 1124 * driver writers must implement their own version for now. Also note that the
1125 * default ordering of how the various stages are called is to match the legacy 1125 * default ordering of how the various stages are called is to match the legacy
1126 * modeset helper library closest. One peculiarity of that is that it doesn't 1126 * modeset helper library closest. One peculiarity of that is that it doesn't
@@ -1141,11 +1141,11 @@ EXPORT_SYMBOL(drm_atomic_helper_wait_for_vblanks);
1141 */ 1141 */
1142int drm_atomic_helper_commit(struct drm_device *dev, 1142int drm_atomic_helper_commit(struct drm_device *dev,
1143 struct drm_atomic_state *state, 1143 struct drm_atomic_state *state,
1144 bool async) 1144 bool nonblock)
1145{ 1145{
1146 int ret; 1146 int ret;
1147 1147
1148 if (async) 1148 if (nonblock)
1149 return -EBUSY; 1149 return -EBUSY;
1150 1150
1151 ret = drm_atomic_helper_prepare_planes(dev, state); 1151 ret = drm_atomic_helper_prepare_planes(dev, state);
@@ -1195,20 +1195,20 @@ int drm_atomic_helper_commit(struct drm_device *dev,
1195EXPORT_SYMBOL(drm_atomic_helper_commit); 1195EXPORT_SYMBOL(drm_atomic_helper_commit);
1196 1196
1197/** 1197/**
1198 * DOC: implementing async commit 1198 * DOC: implementing nonblocking commit
1199 * 1199 *
1200 * For now the atomic helpers don't support async commit directly. If there is 1200 * For now the atomic helpers don't support nonblocking commit directly. If
1201 * real need it could be added though, using the dma-buf fence infrastructure 1201 * there is real need it could be added though, using the dma-buf fence
1202 * for generic synchronization with outstanding rendering. 1202 * infrastructure for generic synchronization with outstanding rendering.
1203 * 1203 *
1204 * For now drivers have to implement async commit themselves, with the following 1204 * For now drivers have to implement nonblocking commit themselves, with the
1205 * sequence being the recommended one: 1205 * following sequence being the recommended one:
1206 * 1206 *
1207 * 1. Run drm_atomic_helper_prepare_planes() first. This is the only function 1207 * 1. Run drm_atomic_helper_prepare_planes() first. This is the only function
1208 * which commit needs to call which can fail, so we want to run it first and 1208 * which commit needs to call which can fail, so we want to run it first and
1209 * synchronously. 1209 * synchronously.
1210 * 1210 *
1211 * 2. Synchronize with any outstanding asynchronous commit worker threads which 1211 * 2. Synchronize with any outstanding nonblocking commit worker threads which
1212 * might be affected the new state update. This can be done by either cancelling 1212 * might be affected the new state update. This can be done by either cancelling
1213 * or flushing the work items, depending upon whether the driver can deal with 1213 * or flushing the work items, depending upon whether the driver can deal with
1214 * cancelled updates. Note that it is important to ensure that the framebuffer 1214 * cancelled updates. Note that it is important to ensure that the framebuffer
@@ -1222,9 +1222,9 @@ EXPORT_SYMBOL(drm_atomic_helper_commit);
1222 * 3. The software state is updated synchronously with 1222 * 3. The software state is updated synchronously with
1223 * drm_atomic_helper_swap_state(). Doing this under the protection of all modeset 1223 * drm_atomic_helper_swap_state(). Doing this under the protection of all modeset
1224 * locks means concurrent callers never see inconsistent state. And doing this 1224 * locks means concurrent callers never see inconsistent state. And doing this
1225 * while it's guaranteed that no relevant async worker runs means that async 1225 * while it's guaranteed that no relevant nonblocking worker runs means that
1226 * workers do not need grab any locks. Actually they must not grab locks, for 1226 * nonblocking workers do not need grab any locks. Actually they must not grab
1227 * otherwise the work flushing will deadlock. 1227 * locks, for otherwise the work flushing will deadlock.
1228 * 1228 *
1229 * 4. Schedule a work item to do all subsequent steps, using the split-out 1229 * 4. Schedule a work item to do all subsequent steps, using the split-out
1230 * commit helpers: a) pre-plane commit b) plane commit c) post-plane commit and 1230 * commit helpers: a) pre-plane commit b) plane commit c) post-plane commit and