diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index edc372e04bcb..f662eb5c2aeb 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c @@ -38,7 +38,7 @@ static struct omap_overlay_manager *managers; static inline struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr) { - return mgr->device; + return mgr->output ? mgr->output->device : NULL; } static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr) diff --git a/drivers/video/omap2/dss/overlay.c b/drivers/video/omap2/dss/overlay.c index 0f799e2d91bb..45f4994bc6b0 100644 --- a/drivers/video/omap2/dss/overlay.c +++ b/drivers/video/omap2/dss/overlay.c @@ -40,7 +40,9 @@ static struct omap_overlay *overlays; static inline struct omap_dss_device *dss_ovl_get_device(struct omap_overlay *ovl) { - return ovl->manager ? ovl->manager->device : NULL; + return ovl->manager ? + (ovl->manager->output ? ovl->manager->output->device : NULL) : + NULL; } int omap_dss_get_num_overlays(void)