diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-04-23 15:35:40 +0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-06-17 15:00:57 +0400 |
commit | efedce1425976fc73154a826552aad4f54086a25 (patch) | |
tree | 66fe0f21efd3ff2d2efb275e91f51e3a488a5108 /drivers/video/omap2/dss/apply.c | |
parent | 5d47dbc85228de3ce82dea11af3c169e66cbf520 (diff) | |
download | linux-efedce1425976fc73154a826552aad4f54086a25.tar.xz |
OMAPDSS: modify get/find functions to go through the device chain
In the future will have arbitrarily long video pipeline chains, instead
of the current two-entities-per-pipeline model.
This patch changes the affected get/find style functions so that they
properly go through the video pipeline chain, for example when getting
the overlay manager connected to a given display.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/apply.c')
-rw-r--r-- | drivers/video/omap2/dss/apply.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c index 752b98592908..d6212d63cfb2 100644 --- a/drivers/video/omap2/dss/apply.c +++ b/drivers/video/omap2/dss/apply.c @@ -422,7 +422,19 @@ static void wait_pending_extra_info_updates(void) static struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr) { - return mgr->output ? mgr->output->device : NULL; + struct omap_dss_device *dssdev; + + dssdev = mgr->output; + if (dssdev == NULL) + return NULL; + + while (dssdev->device) + dssdev = dssdev->device; + + if (dssdev->driver) + return dssdev; + else + return NULL; } static struct omap_dss_device *dss_ovl_get_device(struct omap_overlay *ovl) |