}
 }
 
-static int dpi_set_dsi_clk(struct omap_dss_device *dssdev,
+static int dpi_set_dsi_clk(enum omap_channel channel,
                unsigned long pck_req, unsigned long *fck, int *lck_div,
                int *pck_div)
 {
-       struct omap_overlay_manager *mgr = dssdev->output->manager;
        struct dsi_clock_info dsi_cinfo;
        struct dispc_clock_info dispc_cinfo;
        int r;
        if (r)
                return r;
 
-       dss_select_lcd_clk_source(mgr->id,
-                       dpi_get_alt_clk_src(mgr->id));
+       dss_select_lcd_clk_source(channel,
+                       dpi_get_alt_clk_src(channel));
 
        dpi.mgr_config.clock_info = dispc_cinfo;
 
        return 0;
 }
 
-static int dpi_set_dispc_clk(struct omap_dss_device *dssdev,
-               unsigned long pck_req, unsigned long *fck, int *lck_div,
-               int *pck_div)
+static int dpi_set_dispc_clk(unsigned long pck_req, unsigned long *fck,
+               int *lck_div, int *pck_div)
 {
        struct dss_clock_info dss_cinfo;
        struct dispc_clock_info dispc_cinfo;
        return 0;
 }
 
-static int dpi_set_mode(struct omap_dss_device *dssdev)
+static int dpi_set_mode(struct omap_overlay_manager *mgr)
 {
        struct omap_video_timings *t = &dpi.timings;
-       struct omap_overlay_manager *mgr = dssdev->output->manager;
        int lck_div = 0, pck_div = 0;
        unsigned long fck = 0;
        unsigned long pck;
        int r = 0;
 
        if (dpi.dsidev)
-               r = dpi_set_dsi_clk(dssdev, t->pixel_clock * 1000, &fck,
+               r = dpi_set_dsi_clk(mgr->id, t->pixel_clock * 1000, &fck,
                                &lck_div, &pck_div);
        else
-               r = dpi_set_dispc_clk(dssdev, t->pixel_clock * 1000, &fck,
+               r = dpi_set_dispc_clk(t->pixel_clock * 1000, &fck,
                                &lck_div, &pck_div);
        if (r)
                return r;
        return 0;
 }
 
-static void dpi_config_lcd_manager(struct omap_dss_device *dssdev)
+static void dpi_config_lcd_manager(struct omap_overlay_manager *mgr)
 {
-       struct omap_overlay_manager *mgr = dssdev->output->manager;
-
        dpi.mgr_config.io_pad_mode = DSS_IO_PAD_MODE_BYPASS;
 
        dpi.mgr_config.stallmode = false;
 
 int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
 {
-       struct omap_dss_output *out = dssdev->output;
+       struct omap_dss_output *out = &dpi.output;
        int r;
 
        mutex_lock(&dpi.lock);
        if (r)
                goto err_get_dispc;
 
-       r = dss_dpi_select_source(dssdev->channel);
+       r = dss_dpi_select_source(out->manager->id);
        if (r)
                goto err_src_sel;
 
                        goto err_dsi_pll_init;
        }
 
-       r = dpi_set_mode(dssdev);
+       r = dpi_set_mode(out->manager);
        if (r)
                goto err_set_mode;
 
-       dpi_config_lcd_manager(dssdev);
+       dpi_config_lcd_manager(out->manager);
 
        mdelay(2);
 
 
 void omapdss_dpi_display_disable(struct omap_dss_device *dssdev)
 {
-       struct omap_overlay_manager *mgr = dssdev->output->manager;
+       struct omap_overlay_manager *mgr = dpi.output.manager;
 
        mutex_lock(&dpi.lock);
 
                        struct omap_video_timings *timings)
 {
        int r;
-       struct omap_overlay_manager *mgr = dssdev->output->manager;
+       struct omap_overlay_manager *mgr = dpi.output.manager;
        int lck_div, pck_div;
        unsigned long fck;
        unsigned long pck;