aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2016-08-11 03:20:23 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2017-04-03 05:36:40 -0400
commit389c5763beda623879095a10a428a02ae138bbf1 (patch)
tree47ebccf516958f02749630d3b4b3edf8ef56b0dc
parenta09d2bc1503508c17ef3a71c6b1905e3660f3029 (diff)
drm/omap: display: Add displays in sorted order to the panel_list
Keep the panel_list ordered according to aliases. The DRM connectors will be created following the panel_list. By keeping the list ordered the DRM connectors will be created in the same order regardless of the driver probe order. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r--drivers/gpu/drm/omapdrm/dss/display.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c
index 94c012e0584b..26cb59be045e 100644
--- a/drivers/gpu/drm/omapdrm/dss/display.c
+++ b/drivers/gpu/drm/omapdrm/dss/display.c
@@ -83,6 +83,7 @@ static int disp_num_counter;
83int omapdss_register_display(struct omap_dss_device *dssdev) 83int omapdss_register_display(struct omap_dss_device *dssdev)
84{ 84{
85 struct omap_dss_driver *drv = dssdev->driver; 85 struct omap_dss_driver *drv = dssdev->driver;
86 struct list_head *cur;
86 int id; 87 int id;
87 88
88 /* 89 /*
@@ -118,7 +119,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
118 drv->get_timings = omapdss_default_get_timings; 119 drv->get_timings = omapdss_default_get_timings;
119 120
120 mutex_lock(&panel_list_mutex); 121 mutex_lock(&panel_list_mutex);
121 list_add_tail(&dssdev->panel_list, &panel_list); 122 list_for_each(cur, &panel_list) {
123 struct omap_dss_device *ldev = list_entry(cur,
124 struct omap_dss_device,
125 panel_list);
126 if (strcmp(ldev->alias, dssdev->alias) > 0)
127 break;
128 }
129 list_add_tail(&dssdev->panel_list, cur);
122 mutex_unlock(&panel_list_mutex); 130 mutex_unlock(&panel_list_mutex);
123 return 0; 131 return 0;
124} 132}