Commit b982dab1 authored by Thierry Reding's avatar Thierry Reding

drm: Rename connector list iterator API

Currently the functions that initialize and tear down a connector
iterator use the _get() and _put() suffixes. However, these suffixes
are typically used by reference counting functions.

Make these function names a little more consistent by changing the
suffixes to _begin() and _end(), which is a fairly common pattern in
the rest of the Linux kernel.
Suggested-by: default avatarJani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170228144643.5668-8-thierry.reding@gmail.com
parent 6472e509
...@@ -1449,18 +1449,18 @@ drm_atomic_add_affected_connectors(struct drm_atomic_state *state, ...@@ -1449,18 +1449,18 @@ drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
* Changed connectors are already in @state, so only need to look * Changed connectors are already in @state, so only need to look
* at the connector_mask in crtc_state. * at the connector_mask in crtc_state.
*/ */
drm_connector_list_iter_get(state->dev, &conn_iter); drm_connector_list_iter_begin(state->dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (!(crtc_state->connector_mask & (1 << drm_connector_index(connector)))) if (!(crtc_state->connector_mask & (1 << drm_connector_index(connector))))
continue; continue;
conn_state = drm_atomic_get_connector_state(state, connector); conn_state = drm_atomic_get_connector_state(state, connector);
if (IS_ERR(conn_state)) { if (IS_ERR(conn_state)) {
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return PTR_ERR(conn_state); return PTR_ERR(conn_state);
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return 0; return 0;
} }
...@@ -1722,10 +1722,10 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p) ...@@ -1722,10 +1722,10 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p)
list_for_each_entry(crtc, &config->crtc_list, head) list_for_each_entry(crtc, &config->crtc_list, head)
drm_atomic_crtc_print_state(p, crtc->state); drm_atomic_crtc_print_state(p, crtc->state);
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
drm_atomic_connector_print_state(p, connector->state); drm_atomic_connector_print_state(p, connector->state);
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
} }
EXPORT_SYMBOL(drm_state_dump); EXPORT_SYMBOL(drm_state_dump);
......
...@@ -145,7 +145,7 @@ static int handle_conflicting_encoders(struct drm_atomic_state *state, ...@@ -145,7 +145,7 @@ static int handle_conflicting_encoders(struct drm_atomic_state *state,
* and the crtc is disabled if no encoder is left. This preserves * and the crtc is disabled if no encoder is left. This preserves
* compatibility with the legacy set_config behavior. * compatibility with the legacy set_config behavior.
*/ */
drm_connector_list_iter_get(state->dev, &conn_iter); drm_connector_list_iter_begin(state->dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
struct drm_crtc_state *crtc_state; struct drm_crtc_state *crtc_state;
...@@ -193,7 +193,7 @@ static int handle_conflicting_encoders(struct drm_atomic_state *state, ...@@ -193,7 +193,7 @@ static int handle_conflicting_encoders(struct drm_atomic_state *state,
} }
} }
out: out:
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return ret; return ret;
} }
...@@ -3018,7 +3018,7 @@ int drm_atomic_helper_connector_dpms(struct drm_connector *connector, ...@@ -3018,7 +3018,7 @@ int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
WARN_ON(!drm_modeset_is_locked(&config->connection_mutex)); WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
drm_connector_list_iter_get(connector->dev, &conn_iter); drm_connector_list_iter_begin(connector->dev, &conn_iter);
drm_for_each_connector_iter(tmp_connector, &conn_iter) { drm_for_each_connector_iter(tmp_connector, &conn_iter) {
if (tmp_connector->state->crtc != crtc) if (tmp_connector->state->crtc != crtc)
continue; continue;
...@@ -3028,7 +3028,7 @@ int drm_atomic_helper_connector_dpms(struct drm_connector *connector, ...@@ -3028,7 +3028,7 @@ int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
break; break;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
crtc_state->active = active; crtc_state->active = active;
ret = drm_atomic_commit(state); ret = drm_atomic_commit(state);
...@@ -3439,18 +3439,18 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev, ...@@ -3439,18 +3439,18 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev,
} }
} }
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(conn, &conn_iter) { drm_for_each_connector_iter(conn, &conn_iter) {
struct drm_connector_state *conn_state; struct drm_connector_state *conn_state;
conn_state = drm_atomic_get_connector_state(state, conn); conn_state = drm_atomic_get_connector_state(state, conn);
if (IS_ERR(conn_state)) { if (IS_ERR(conn_state)) {
err = PTR_ERR(conn_state); err = PTR_ERR(conn_state);
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
goto free; goto free;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
/* clear the acquire context so that it isn't accidentally reused */ /* clear the acquire context so that it isn't accidentally reused */
state->acquire_ctx = NULL; state->acquire_ctx = NULL;
......
...@@ -435,10 +435,10 @@ void drm_connector_unregister_all(struct drm_device *dev) ...@@ -435,10 +435,10 @@ void drm_connector_unregister_all(struct drm_device *dev)
struct drm_connector *connector; struct drm_connector *connector;
struct drm_connector_list_iter conn_iter; struct drm_connector_list_iter conn_iter;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
drm_connector_unregister(connector); drm_connector_unregister(connector);
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
} }
int drm_connector_register_all(struct drm_device *dev) int drm_connector_register_all(struct drm_device *dev)
...@@ -447,13 +447,13 @@ int drm_connector_register_all(struct drm_device *dev) ...@@ -447,13 +447,13 @@ int drm_connector_register_all(struct drm_device *dev)
struct drm_connector_list_iter conn_iter; struct drm_connector_list_iter conn_iter;
int ret = 0; int ret = 0;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
ret = drm_connector_register(connector); ret = drm_connector_register(connector);
if (ret) if (ret)
break; break;
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
if (ret) if (ret)
drm_connector_unregister_all(dev); drm_connector_unregister_all(dev);
...@@ -507,23 +507,23 @@ static struct lockdep_map connector_list_iter_dep_map = { ...@@ -507,23 +507,23 @@ static struct lockdep_map connector_list_iter_dep_map = {
#endif #endif
/** /**
* drm_connector_list_iter_get - initialize a connector_list iterator * drm_connector_list_iter_begin - initialize a connector_list iterator
* @dev: DRM device * @dev: DRM device
* @iter: connector_list iterator * @iter: connector_list iterator
* *
* Sets @iter up to walk the &drm_mode_config.connector_list of @dev. @iter * Sets @iter up to walk the &drm_mode_config.connector_list of @dev. @iter
* must always be cleaned up again by calling drm_connector_list_iter_put(). * must always be cleaned up again by calling drm_connector_list_iter_end().
* Iteration itself happens using drm_connector_list_iter_next() or * Iteration itself happens using drm_connector_list_iter_next() or
* drm_for_each_connector_iter(). * drm_for_each_connector_iter().
*/ */
void drm_connector_list_iter_get(struct drm_device *dev, void drm_connector_list_iter_begin(struct drm_device *dev,
struct drm_connector_list_iter *iter) struct drm_connector_list_iter *iter)
{ {
iter->dev = dev; iter->dev = dev;
iter->conn = NULL; iter->conn = NULL;
lock_acquire_shared_recursive(&connector_list_iter_dep_map, 0, 1, NULL, _RET_IP_); lock_acquire_shared_recursive(&connector_list_iter_dep_map, 0, 1, NULL, _RET_IP_);
} }
EXPORT_SYMBOL(drm_connector_list_iter_get); EXPORT_SYMBOL(drm_connector_list_iter_begin);
/** /**
* drm_connector_list_iter_next - return next connector * drm_connector_list_iter_next - return next connector
...@@ -564,7 +564,7 @@ drm_connector_list_iter_next(struct drm_connector_list_iter *iter) ...@@ -564,7 +564,7 @@ drm_connector_list_iter_next(struct drm_connector_list_iter *iter)
EXPORT_SYMBOL(drm_connector_list_iter_next); EXPORT_SYMBOL(drm_connector_list_iter_next);
/** /**
* drm_connector_list_iter_put - tear down a connector_list iterator * drm_connector_list_iter_end - tear down a connector_list iterator
* @iter: connector_list iterator * @iter: connector_list iterator
* *
* Tears down @iter and releases any resources (like &drm_connector references) * Tears down @iter and releases any resources (like &drm_connector references)
...@@ -572,14 +572,14 @@ EXPORT_SYMBOL(drm_connector_list_iter_next); ...@@ -572,14 +572,14 @@ EXPORT_SYMBOL(drm_connector_list_iter_next);
* iteration completes fully or when it was aborted without walking the entire * iteration completes fully or when it was aborted without walking the entire
* list. * list.
*/ */
void drm_connector_list_iter_put(struct drm_connector_list_iter *iter) void drm_connector_list_iter_end(struct drm_connector_list_iter *iter)
{ {
iter->dev = NULL; iter->dev = NULL;
if (iter->conn) if (iter->conn)
drm_connector_put(iter->conn); drm_connector_put(iter->conn);
lock_release(&connector_list_iter_dep_map, 0, _RET_IP_); lock_release(&connector_list_iter_dep_map, 0, _RET_IP_);
} }
EXPORT_SYMBOL(drm_connector_list_iter_put); EXPORT_SYMBOL(drm_connector_list_iter_end);
static const struct drm_prop_enum_list drm_subpixel_enum_list[] = { static const struct drm_prop_enum_list drm_subpixel_enum_list[] = {
{ SubPixelUnknown, "Unknown" }, { SubPixelUnknown, "Unknown" },
......
...@@ -102,14 +102,14 @@ bool drm_helper_encoder_in_use(struct drm_encoder *encoder) ...@@ -102,14 +102,14 @@ bool drm_helper_encoder_in_use(struct drm_encoder *encoder)
} }
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (connector->encoder == encoder) { if (connector->encoder == encoder) {
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return true; return true;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return false; return false;
} }
EXPORT_SYMBOL(drm_helper_encoder_in_use); EXPORT_SYMBOL(drm_helper_encoder_in_use);
...@@ -449,7 +449,7 @@ drm_crtc_helper_disable(struct drm_crtc *crtc) ...@@ -449,7 +449,7 @@ drm_crtc_helper_disable(struct drm_crtc *crtc)
if (encoder->crtc != crtc) if (encoder->crtc != crtc)
continue; continue;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (connector->encoder != encoder) if (connector->encoder != encoder)
continue; continue;
...@@ -467,7 +467,7 @@ drm_crtc_helper_disable(struct drm_crtc *crtc) ...@@ -467,7 +467,7 @@ drm_crtc_helper_disable(struct drm_crtc *crtc)
/* we keep a reference while the encoder is bound */ /* we keep a reference while the encoder is bound */
drm_connector_put(connector); drm_connector_put(connector);
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
} }
__drm_helper_disable_unused_functions(dev); __drm_helper_disable_unused_functions(dev);
...@@ -583,10 +583,10 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -583,10 +583,10 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
} }
count = 0; count = 0;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
save_connector_encoders[count++] = connector->encoder; save_connector_encoders[count++] = connector->encoder;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
save_set.crtc = set->crtc; save_set.crtc = set->crtc;
save_set.mode = &set->crtc->mode; save_set.mode = &set->crtc->mode;
...@@ -628,7 +628,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -628,7 +628,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
/* a) traverse passed in connector list and get encoders for them */ /* a) traverse passed in connector list and get encoders for them */
count = 0; count = 0;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
const struct drm_connector_helper_funcs *connector_funcs = const struct drm_connector_helper_funcs *connector_funcs =
connector->helper_private; connector->helper_private;
...@@ -662,7 +662,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -662,7 +662,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
connector->encoder = new_encoder; connector->encoder = new_encoder;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
if (fail) { if (fail) {
ret = -EINVAL; ret = -EINVAL;
...@@ -670,7 +670,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -670,7 +670,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
} }
count = 0; count = 0;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (!connector->encoder) if (!connector->encoder)
continue; continue;
...@@ -689,7 +689,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -689,7 +689,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
if (new_crtc && if (new_crtc &&
!drm_encoder_crtc_ok(connector->encoder, new_crtc)) { !drm_encoder_crtc_ok(connector->encoder, new_crtc)) {
ret = -EINVAL; ret = -EINVAL;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
goto fail; goto fail;
} }
if (new_crtc != connector->encoder->crtc) { if (new_crtc != connector->encoder->crtc) {
...@@ -706,7 +706,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -706,7 +706,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
connector->base.id, connector->name); connector->base.id, connector->name);
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
/* mode_set_base is not a required function */ /* mode_set_base is not a required function */
if (fb_changed && !crtc_funcs->mode_set_base) if (fb_changed && !crtc_funcs->mode_set_base)
...@@ -761,10 +761,10 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set) ...@@ -761,10 +761,10 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
} }
count = 0; count = 0;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
connector->encoder = save_connector_encoders[count++]; connector->encoder = save_connector_encoders[count++];
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
/* after fail drop reference on all unbound connectors in set, let /* after fail drop reference on all unbound connectors in set, let
* bound connectors keep their reference * bound connectors keep their reference
...@@ -794,12 +794,12 @@ static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder) ...@@ -794,12 +794,12 @@ static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder)
struct drm_connector_list_iter conn_iter; struct drm_connector_list_iter conn_iter;
struct drm_device *dev = encoder->dev; struct drm_device *dev = encoder->dev;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
if (connector->encoder == encoder) if (connector->encoder == encoder)
if (connector->dpms < dpms) if (connector->dpms < dpms)
dpms = connector->dpms; dpms = connector->dpms;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return dpms; return dpms;
} }
...@@ -835,12 +835,12 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc) ...@@ -835,12 +835,12 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
struct drm_connector_list_iter conn_iter; struct drm_connector_list_iter conn_iter;
struct drm_device *dev = crtc->dev; struct drm_device *dev = crtc->dev;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
if (connector->encoder && connector->encoder->crtc == crtc) if (connector->encoder && connector->encoder->crtc == crtc)
if (connector->dpms < dpms) if (connector->dpms < dpms)
dpms = connector->dpms; dpms = connector->dpms;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return dpms; return dpms;
} }
......
...@@ -188,7 +188,7 @@ static struct drm_crtc *drm_encoder_get_crtc(struct drm_encoder *encoder) ...@@ -188,7 +188,7 @@ static struct drm_crtc *drm_encoder_get_crtc(struct drm_encoder *encoder)
/* For atomic drivers only state objects are synchronously updated and /* For atomic drivers only state objects are synchronously updated and
* protected by modeset locks, so check those first. */ * protected by modeset locks, so check those first. */
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (!connector->state) if (!connector->state)
continue; continue;
...@@ -198,10 +198,10 @@ static struct drm_crtc *drm_encoder_get_crtc(struct drm_encoder *encoder) ...@@ -198,10 +198,10 @@ static struct drm_crtc *drm_encoder_get_crtc(struct drm_encoder *encoder)
if (connector->state->best_encoder != encoder) if (connector->state->best_encoder != encoder)
continue; continue;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return connector->state->crtc; return connector->state->crtc;
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
/* Don't return stale data (e.g. pending async disable). */ /* Don't return stale data (e.g. pending async disable). */
if (uses_atomic) if (uses_atomic)
......
...@@ -134,7 +134,7 @@ int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper) ...@@ -134,7 +134,7 @@ int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
return 0; return 0;
mutex_lock(&dev->mode_config.mutex); mutex_lock(&dev->mode_config.mutex);
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
ret = drm_fb_helper_add_one_connector(fb_helper, connector); ret = drm_fb_helper_add_one_connector(fb_helper, connector);
...@@ -155,7 +155,7 @@ int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper) ...@@ -155,7 +155,7 @@ int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
} }
fb_helper->connector_count = 0; fb_helper->connector_count = 0;
out: out:
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
return ret; return ret;
......
...@@ -139,19 +139,19 @@ int drm_mode_getresources(struct drm_device *dev, void *data, ...@@ -139,19 +139,19 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
} }
card_res->count_encoders = count; card_res->count_encoders = count;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
count = 0; count = 0;
connector_id = u64_to_user_ptr(card_res->connector_id_ptr); connector_id = u64_to_user_ptr(card_res->connector_id_ptr);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (count < card_res->count_connectors && if (count < card_res->count_connectors &&
put_user(connector->base.id, connector_id + count)) { put_user(connector->base.id, connector_id + count)) {
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return -EFAULT; return -EFAULT;
} }
count++; count++;
} }
card_res->count_connectors = count; card_res->count_connectors = count;
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return ret; return ret;
} }
...@@ -184,11 +184,11 @@ void drm_mode_config_reset(struct drm_device *dev) ...@@ -184,11 +184,11 @@ void drm_mode_config_reset(struct drm_device *dev)
if (encoder->funcs->reset) if (encoder->funcs->reset)
encoder->funcs->reset(encoder); encoder->funcs->reset(encoder);
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
if (connector->funcs->reset) if (connector->funcs->reset)
connector->funcs->reset(connector); connector->funcs->reset(connector);
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
} }
EXPORT_SYMBOL(drm_mode_config_reset); EXPORT_SYMBOL(drm_mode_config_reset);
...@@ -412,7 +412,7 @@ void drm_mode_config_cleanup(struct drm_device *dev) ...@@ -412,7 +412,7 @@ void drm_mode_config_cleanup(struct drm_device *dev)
encoder->funcs->destroy(encoder); encoder->funcs->destroy(encoder);
} }
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
/* drm_connector_list_iter holds an full reference to the /* drm_connector_list_iter holds an full reference to the
* current connector itself, which means it is inherently safe * current connector itself, which means it is inherently safe
...@@ -420,12 +420,12 @@ void drm_mode_config_cleanup(struct drm_device *dev) ...@@ -420,12 +420,12 @@ void drm_mode_config_cleanup(struct drm_device *dev)
* deleting it right away. */ * deleting it right away. */
drm_connector_put(connector); drm_connector_put(connector);
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) { if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) {
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) drm_for_each_connector_iter(connector, &conn_iter)
DRM_ERROR("connector %s leaked!\n", connector->name); DRM_ERROR("connector %s leaked!\n", connector->name);
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
} }
list_for_each_entry_safe(property, pt, &dev->mode_config.property_list, list_for_each_entry_safe(property, pt, &dev->mode_config.property_list,
......
...@@ -85,7 +85,7 @@ static int get_connectors_for_crtc(struct drm_crtc *crtc, ...@@ -85,7 +85,7 @@ static int get_connectors_for_crtc(struct drm_crtc *crtc,
*/ */
WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex)); WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex));
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (connector->encoder && connector->encoder->crtc == crtc) { if (connector->encoder && connector->encoder->crtc == crtc) {
if (connector_list != NULL && count < num_connectors) if (connector_list != NULL && count < num_connectors)
...@@ -94,7 +94,7 @@ static int get_connectors_for_crtc(struct drm_crtc *crtc, ...@@ -94,7 +94,7 @@ static int get_connectors_for_crtc(struct drm_crtc *crtc,
count++; count++;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
return count; return count;
} }
......
...@@ -140,13 +140,13 @@ void drm_kms_helper_poll_enable(struct drm_device *dev) ...@@ -140,13 +140,13 @@ void drm_kms_helper_poll_enable(struct drm_device *dev)
if (!dev->mode_config.poll_enabled || !drm_kms_helper_poll) if (!dev->mode_config.poll_enabled || !drm_kms_helper_poll)
return; return;
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT | if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT |
DRM_CONNECTOR_POLL_DISCONNECT)) DRM_CONNECTOR_POLL_DISCONNECT))
poll = true; poll = true;
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
if (dev->mode_config.delayed_event) { if (dev->mode_config.delayed_event) {
/* /*
...@@ -420,7 +420,7 @@ static void output_poll_execute(struct work_struct *work) ...@@ -420,7 +420,7 @@ static void output_poll_execute(struct work_struct *work)
goto out; goto out;
} }
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
/* Ignore forced connectors. */ /* Ignore forced connectors. */
if (connector->force) if (connector->force)
...@@ -474,7 +474,7 @@ static void output_poll_execute(struct work_struct *work) ...@@ -474,7 +474,7 @@ static void output_poll_execute(struct work_struct *work)
changed = true; changed = true;
} }
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
...@@ -580,7 +580,7 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev) ...@@ -580,7 +580,7 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev)
return false; return false;
mutex_lock(&dev->mode_config.mutex); mutex_lock(&dev->mode_config.mutex);
drm_connector_list_iter_get(dev, &conn_iter); drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) { drm_for_each_connector_iter(connector, &conn_iter) {
/* Only handle HPD capable connectors. */ /* Only handle HPD capable connectors. */
if (!(connector->polled & DRM_CONNECTOR_POLL_HPD)) if (!(connector->polled & DRM_CONNECTOR_POLL_HPD))
...@@ -597,7 +597,7 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev) ...@@ -597,7 +597,7 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev)
if (old_status != connector->status) if (old_status != connector->status)
changed = true; changed = true;
} }
drm_connector_list_iter_put(&conn_iter); drm_connector_list_iter_end(&conn_iter);
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
if (changed) if (changed)
......
...@@ -926,7 +926,7 @@ void drm_mode_put_tile_group(struct drm_device *dev, ...@@ -926,7 +926,7 @@ void drm_mode_put_tile_group(struct drm_device *dev,
* *
* This iterator tracks state needed to be able to walk the connector_list * This iterator tracks state needed to be able to walk the connector_list
* within struct drm_mode_config. Only use together with * within struct drm_mode_config. Only use together with
* drm_connector_list_iter_get(), drm_connector_list_iter_put() and * drm_connector_list_iter_begin(), drm_connector_list_iter_end() and
* drm_connector_list_iter_next() respectively the convenience macro * drm_connector_list_iter_next() respectively the convenience macro
* drm_for_each_connector_iter(). * drm_for_each_connector_iter().
*/ */
...@@ -936,11 +936,11 @@ struct drm_connector_list_iter { ...@@ -936,11 +936,11 @@ struct drm_connector_list_iter {
struct drm_connector *conn; struct drm_connector *conn;
}; };
void drm_connector_list_iter_get(struct drm_device *dev, void drm_connector_list_iter_begin(struct drm_device *dev,
struct drm_connector_list_iter *iter); struct drm_connector_list_iter *iter);
struct drm_connector * struct drm_connector *
drm_connector_list_iter_next(struct drm_connector_list_iter *iter); drm_connector_list_iter_next(struct drm_connector_list_iter *iter);
void drm_connector_list_iter_put(struct drm_connector_list_iter *iter); void drm_connector_list_iter_end(struct drm_connector_list_iter *iter);
/** /**
* drm_for_each_connector_iter - connector_list iterator macro * drm_for_each_connector_iter - connector_list iterator macro
...@@ -948,8 +948,8 @@ void drm_connector_list_iter_put(struct drm_connector_list_iter *iter); ...@@ -948,8 +948,8 @@ void drm_connector_list_iter_put(struct drm_connector_list_iter *iter);
* @iter: &struct drm_connector_list_iter * @iter: &struct drm_connector_list_iter
* *
* Note that @connector is only valid within the list body, if you want to use * Note that @connector is only valid within the list body, if you want to use
* @connector after calling drm_connector_list_iter_put() then you need to grab * @connector after calling drm_connector_list_iter_end() then you need to grab
* your own reference first using drm_connector_get(). * your own reference first using drm_connector_begin().
*/ */
#define drm_for_each_connector_iter(connector, iter) \ #define drm_for_each_connector_iter(connector, iter) \
while ((connector = drm_connector_list_iter_next(iter))) while ((connector = drm_connector_list_iter_next(iter)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment