Allow dss_mgr_set_device/unset_device to set/unset either display or writeback
based on the dssdev argument passed to the function. Check if the device is a
writeback device by seeing if the wbdev pointer is populated for it or not.

Signed-off-by: Archit Taneja <[email protected]>
---
 drivers/video/omap2/dss/apply.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index 4624f86..aee0420 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -1300,7 +1300,11 @@ int dss_mgr_set_device(struct omap_overlay_manager *mgr,
        }
 
        dssdev->manager = mgr;
-       mgr->output->device = dssdev;
+
+       if (dssdev->wbdev)
+               mgr->output->writeback = dssdev;
+       else
+               mgr->output->device = dssdev;
 
        mutex_unlock(&apply_lock);
 
@@ -1318,7 +1322,8 @@ int dss_mgr_unset_device(struct omap_overlay_manager *mgr,
 
        mutex_lock(&apply_lock);
 
-       curr_dssdev = mgr->output->device;
+       curr_dssdev = dssdev->wbdev ? mgr->get_writeback(mgr) :
+                       mgr->get_display(mgr);
 
        if (!curr_dssdev) {
                DSSERR("failed to unset device, device not set.\n");
@@ -1336,7 +1341,11 @@ int dss_mgr_unset_device(struct omap_overlay_manager 
*mgr,
        }
 
        curr_dssdev->manager = NULL;
-       mgr->output->device = NULL;
+
+       if (dssdev->wbdev)
+               mgr->output->writeback = NULL;
+       else
+               mgr->output->device = NULL;
 
        mutex_unlock(&apply_lock);
 
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to