From df885baaac04c9eef04e898bc103a396834cbbf4 Mon Sep 17 00:00:00 2001 From: Tang Yun ping Date: Mon, 11 Sep 2017 10:12:47 +0800 Subject: [PATCH] PM / devfreq: rockchip-dmc: fix bug of get lcdc type deadlock When lcdc status changing and ddr frequency changing at the same time, it may deadlock. Use list_for_each_entry to avoid this bug. Change-Id: I8074dc60b71650ea1afc300282f90ae8ff1ae97b Signed-off-by: Tang Yun ping --- drivers/devfreq/rockchip_dmc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/devfreq/rockchip_dmc.c b/drivers/devfreq/rockchip_dmc.c index 3f81a90d0a86..65d4c9a2420a 100644 --- a/drivers/devfreq/rockchip_dmc.c +++ b/drivers/devfreq/rockchip_dmc.c @@ -691,14 +691,13 @@ static int rk_drm_get_lcdc_type(void) if (drm) { struct drm_connector *conn; - drm_modeset_lock(&drm->mode_config.connection_mutex, NULL); - drm_for_each_connector(conn, drm) { + list_for_each_entry(conn, &drm->mode_config.connector_list, + head) { if (conn->encoder) { lcdc_type = conn->connector_type; break; } } - drm_modeset_unlock(&drm->mode_config.connection_mutex); } switch (lcdc_type) { case DRM_MODE_CONNECTOR_LVDS: