diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-08-06 09:50:52 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-03-19 11:03:06 +0200 |
commit | a6ec216493da705a5f6fc96098c5f4af10e2be44 (patch) | |
tree | 477a2d01597b2e1c84e987a6c255ecf71a31441d /drivers/video/omap2/omapfb/omapfb-main.c | |
parent | 4b13defce85d4e3cbd7ddfd701856a78772de373 (diff) | |
download | lwn-a6ec216493da705a5f6fc96098c5f4af10e2be44.tar.gz lwn-a6ec216493da705a5f6fc96098c5f4af10e2be44.zip |
OMAPFB: search for default display with DT alias
Improve the search for the default display in two ways:
* compare the given display name to the display's alias
* if no display name is given, look for "display0" DT alias
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/video/omap2/omapfb/omapfb-main.c')
-rw-r--r-- | drivers/video/omap2/omapfb/omapfb-main.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index b7469636f15c..f121e87b30be 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c @@ -2423,7 +2423,10 @@ omapfb_find_default_display(struct omapfb2_device *fbdev) const char *def_name; int i; - /* search with the display name from the user or the board file */ + /* + * Search with the display name from the user or the board file, + * comparing to display names and aliases + */ def_name = omapdss_get_default_display_name(); @@ -2435,12 +2438,30 @@ omapfb_find_default_display(struct omapfb2_device *fbdev) if (dssdev->name && strcmp(def_name, dssdev->name) == 0) return dssdev; + + if (strcmp(def_name, dssdev->alias) == 0) + return dssdev; } /* def_name given but not found */ return NULL; } + /* then look for DT alias display0 */ + for (i = 0; i < fbdev->num_displays; ++i) { + struct omap_dss_device *dssdev; + int id; + + dssdev = fbdev->displays[i].dssdev; + + if (dssdev->dev->of_node == NULL) + continue; + + id = of_alias_get_id(dssdev->dev->of_node, "display"); + if (id == 0) + return dssdev; + } + /* return the first display we have in the list */ return fbdev->displays[0].dssdev; } |