diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2016-08-11 03:20:23 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-04-03 05:36:40 -0400 |
commit | 389c5763beda623879095a10a428a02ae138bbf1 (patch) | |
tree | 47ebccf516958f02749630d3b4b3edf8ef56b0dc | |
parent | a09d2bc1503508c17ef3a71c6b1905e3660f3029 (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.c | 10 |
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; | |||
83 | int omapdss_register_display(struct omap_dss_device *dssdev) | 83 | int 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 | } |