OMAPFB: clean up default display search

Separate the code for finding the default display into a function for
clarity and to make it easier to extend it in the future.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit@ti.com>
This commit is contained in:
Tomi Valkeinen 2013-07-30 10:59:16 +03:00
parent 3e22b35534
commit 4b13defce8
1 changed files with 29 additions and 17 deletions

View File

@ -2417,6 +2417,34 @@ static int omapfb_init_connections(struct omapfb2_device *fbdev,
return 0;
}
static struct omap_dss_device *
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 */
def_name = omapdss_get_default_display_name();
if (def_name) {
for (i = 0; i < fbdev->num_displays; ++i) {
struct omap_dss_device *dssdev;
dssdev = fbdev->displays[i].dssdev;
if (dssdev->name && strcmp(def_name, dssdev->name) == 0)
return dssdev;
}
/* def_name given but not found */
return NULL;
}
/* return the first display we have in the list */
return fbdev->displays[0].dssdev;
}
static int omapfb_probe(struct platform_device *pdev)
{
struct omapfb2_device *fbdev = NULL;
@ -2494,23 +2522,7 @@ static int omapfb_probe(struct platform_device *pdev)
for (i = 0; i < fbdev->num_managers; i++)
fbdev->managers[i] = omap_dss_get_overlay_manager(i);
def_display = NULL;
for (i = 0; i < fbdev->num_displays; ++i) {
struct omap_dss_device *dssdev;
const char *def_name;
def_name = omapdss_get_default_display_name();
dssdev = fbdev->displays[i].dssdev;
if (def_name == NULL ||
(dssdev->name && strcmp(def_name, dssdev->name) == 0)) {
def_display = dssdev;
break;
}
}
def_display = omapfb_find_default_display(fbdev);
if (def_display == NULL) {
dev_err(fbdev->dev, "failed to find default display\n");
r = -EPROBE_DEFER;