Skip to content

Commit

Permalink
drm/exynos: use drm_for_each_connector_iter()
Browse files Browse the repository at this point in the history
Drop legacy drm_for_each_connector() in favor of the race-free
drm_for_each_connector_iter()

Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170511191049.28944-2-gustavo@padovan.org
  • Loading branch information
Gustavo Padovan committed May 26, 2017
1 parent 71ebc9a commit 48a9291
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/gpu/drm/exynos/exynos_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,13 @@ static int exynos_drm_suspend(struct device *dev)
{
struct drm_device *drm_dev = dev_get_drvdata(dev);
struct drm_connector *connector;
struct drm_connector_list_iter conn_iter;

if (pm_runtime_suspended(dev) || !drm_dev)
return 0;

drm_modeset_lock_all(drm_dev);
drm_for_each_connector(connector, drm_dev) {
drm_connector_list_iter_begin(drm_dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
int old_dpms = connector->dpms;

if (connector->funcs->dpms)
Expand All @@ -185,7 +186,7 @@ static int exynos_drm_suspend(struct device *dev)
/* Set the old mode back to the connector for resume */
connector->dpms = old_dpms;
}
drm_modeset_unlock_all(drm_dev);
drm_connector_list_iter_end(&conn_iter);

return 0;
}
Expand All @@ -194,20 +195,21 @@ static int exynos_drm_resume(struct device *dev)
{
struct drm_device *drm_dev = dev_get_drvdata(dev);
struct drm_connector *connector;
struct drm_connector_list_iter conn_iter;

if (pm_runtime_suspended(dev) || !drm_dev)
return 0;

drm_modeset_lock_all(drm_dev);
drm_for_each_connector(connector, drm_dev) {
drm_connector_list_iter_begin(drm_dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
if (connector->funcs->dpms) {
int dpms = connector->dpms;

connector->dpms = DRM_MODE_DPMS_OFF;
connector->funcs->dpms(connector, dpms);
}
}
drm_modeset_unlock_all(drm_dev);
drm_connector_list_iter_end(&conn_iter);

return 0;
}
Expand Down

0 comments on commit 48a9291

Please sign in to comment.