On Thu, May 11, 2017 at 04:10:42PM -0300, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > > Drop legacy drm_for_each_connector() in favor of the race-free > drm_for_each_connector_iter() > > Cc: Inki Dae <inki.dae@xxxxxxxxxxx> > Cc: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx> > > --- > only built-tested! > --- Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > drivers/gpu/drm/exynos/exynos_drm_drv.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index 09d3c4c..db6ef2d 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -177,12 +177,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) > @@ -191,7 +192,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; > } > @@ -200,12 +201,13 @@ 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; > > @@ -213,7 +215,7 @@ static int exynos_drm_resume(struct device *dev) > connector->funcs->dpms(connector, dpms); > } > } > - drm_modeset_unlock_all(drm_dev); > + drm_connector_list_iter_end(&conn_iter); > > return 0; > } > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel