drm/omap: DPI: remove uses of omap_overlay_manager
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 5 Nov 2015 07:52:00 +0000 (09:52 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 3 Mar 2016 15:38:23 +0000 (17:38 +0200)
We are removing the uses of 'struct omap_overlay_manager'. This patch
changes DPI driver to use 'omap_channel' instead.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/dss/dpi.c

index c73d365..97ea602 100644 (file)
@@ -334,7 +334,7 @@ static int dpi_set_dispc_clk(struct dpi_data *dpi, unsigned long pck_req,
 static int dpi_set_mode(struct dpi_data *dpi)
 {
        struct omap_dss_device *out = &dpi->output;
-       struct omap_overlay_manager *mgr = out->manager;
+       enum omap_channel channel = out->dispc_channel;
        struct omap_video_timings *t = &dpi->timings;
        int lck_div = 0, pck_div = 0;
        unsigned long fck = 0;
@@ -342,7 +342,7 @@ static int dpi_set_mode(struct dpi_data *dpi)
        int r = 0;
 
        if (dpi->pll)
-               r = dpi_set_dsi_clk(dpi, mgr->id, t->pixelclock, &fck,
+               r = dpi_set_dsi_clk(dpi, channel, t->pixelclock, &fck,
                                &lck_div, &pck_div);
        else
                r = dpi_set_dispc_clk(dpi, t->pixelclock, &fck,
@@ -359,7 +359,7 @@ static int dpi_set_mode(struct dpi_data *dpi)
                t->pixelclock = pck;
        }
 
-       dss_mgr_set_timings(mgr->id, t);
+       dss_mgr_set_timings(channel, t);
 
        return 0;
 }
@@ -367,7 +367,7 @@ static int dpi_set_mode(struct dpi_data *dpi)
 static void dpi_config_lcd_manager(struct dpi_data *dpi)
 {
        struct omap_dss_device *out = &dpi->output;
-       struct omap_overlay_manager *mgr = out->manager;
+       enum omap_channel channel = out->dispc_channel;
 
        dpi->mgr_config.io_pad_mode = DSS_IO_PAD_MODE_BYPASS;
 
@@ -378,13 +378,14 @@ static void dpi_config_lcd_manager(struct dpi_data *dpi)
 
        dpi->mgr_config.lcden_sig_polarity = 0;
 
-       dss_mgr_set_lcd_config(mgr->id, &dpi->mgr_config);
+       dss_mgr_set_lcd_config(channel, &dpi->mgr_config);
 }
 
 static int dpi_display_enable(struct omap_dss_device *dssdev)
 {
        struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev);
        struct omap_dss_device *out = &dpi->output;
+       enum omap_channel channel = out->dispc_channel;
        int r;
 
        mutex_lock(&dpi->lock);
@@ -411,7 +412,7 @@ static int dpi_display_enable(struct omap_dss_device *dssdev)
        if (r)
                goto err_get_dispc;
 
-       r = dss_dpi_select_source(out->port_num, out->manager->id);
+       r = dss_dpi_select_source(out->port_num, channel);
        if (r)
                goto err_src_sel;
 
@@ -429,7 +430,7 @@ static int dpi_display_enable(struct omap_dss_device *dssdev)
 
        mdelay(2);
 
-       r = dss_mgr_enable(out->manager->id);
+       r = dss_mgr_enable(channel);
        if (r)
                goto err_mgr_enable;
 
@@ -457,14 +458,14 @@ err_no_reg:
 static void dpi_display_disable(struct omap_dss_device *dssdev)
 {
        struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev);
-       struct omap_overlay_manager *mgr = dpi->output.manager;
+       enum omap_channel channel = dpi->output.dispc_channel;
 
        mutex_lock(&dpi->lock);
 
-       dss_mgr_disable(mgr->id);
+       dss_mgr_disable(channel);
 
        if (dpi->pll) {
-               dss_select_lcd_clk_source(mgr->id, OMAP_DSS_CLK_SRC_FCK);
+               dss_select_lcd_clk_source(channel, OMAP_DSS_CLK_SRC_FCK);
                dss_pll_disable(dpi->pll);
        }
 
@@ -506,7 +507,7 @@ static int dpi_check_timings(struct omap_dss_device *dssdev,
                        struct omap_video_timings *timings)
 {
        struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev);
-       struct omap_overlay_manager *mgr = dpi->output.manager;
+       enum omap_channel channel = dpi->output.dispc_channel;
        int lck_div, pck_div;
        unsigned long fck;
        unsigned long pck;
@@ -516,7 +517,7 @@ static int dpi_check_timings(struct omap_dss_device *dssdev,
        if (timings->x_res % 8 != 0)
                return -EINVAL;
 
-       if (!dispc_mgr_timings_ok(mgr->id, timings))
+       if (!dispc_mgr_timings_ok(channel, timings))
                return -EINVAL;
 
        if (timings->pixelclock == 0)
@@ -663,7 +664,7 @@ static int dpi_connect(struct omap_dss_device *dssdev,
                struct omap_dss_device *dst)
 {
        struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev);
-       struct omap_overlay_manager *mgr;
+       enum omap_channel channel = dpi->output.dispc_channel;
        int r;
 
        r = dpi_init_regulator(dpi);
@@ -672,11 +673,7 @@ static int dpi_connect(struct omap_dss_device *dssdev,
 
        dpi_init_pll(dpi);
 
-       mgr = omap_dss_get_overlay_manager(dssdev->dispc_channel);
-       if (!mgr)
-               return -ENODEV;
-
-       r = dss_mgr_connect(mgr->id, dssdev);
+       r = dss_mgr_connect(channel, dssdev);
        if (r)
                return r;
 
@@ -684,7 +681,7 @@ static int dpi_connect(struct omap_dss_device *dssdev,
        if (r) {
                DSSERR("failed to connect output to new device: %s\n",
                                dst->name);
-               dss_mgr_disconnect(mgr->id, dssdev);
+               dss_mgr_disconnect(channel, dssdev);
                return r;
        }
 
@@ -694,6 +691,9 @@ static int dpi_connect(struct omap_dss_device *dssdev,
 static void dpi_disconnect(struct omap_dss_device *dssdev,
                struct omap_dss_device *dst)
 {
+       struct dpi_data *dpi = dpi_get_data_from_dssdev(dssdev);
+       enum omap_channel channel = dpi->output.dispc_channel;
+
        WARN_ON(dst != dssdev->dst);
 
        if (dst != dssdev->dst)
@@ -701,7 +701,7 @@ static void dpi_disconnect(struct omap_dss_device *dssdev,
 
        omapdss_output_unset_device(dssdev);
 
-       dss_mgr_disconnect(dssdev->manager->id, dssdev);
+       dss_mgr_disconnect(channel, dssdev);
 }
 
 static const struct omapdss_dpi_ops dpi_ops = {