Merge branch 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal...
[pandora-kernel.git] / drivers / video / omap2 / dss / dpi.c
index 75fb0a5..2d3ca4c 100644 (file)
@@ -57,13 +57,13 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft,
        if (r)
                return r;
 
-       dss_select_dispc_clk_source(DSS_SRC_DSI1_PLL_FCLK);
+       dss_select_dispc_clk_source(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC);
 
        r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo);
        if (r)
                return r;
 
-       *fck = dsi_cinfo.dsi1_pll_fclk;
+       *fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
        *lck_div = dispc_cinfo.lck_div;
        *pck_div = dispc_cinfo.pck_div;
 
@@ -107,7 +107,7 @@ static int dpi_set_mode(struct omap_dss_device *dssdev)
        bool is_tft;
        int r = 0;
 
-       dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1);
+       dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK);
 
        dispc_set_pol_freq(dssdev->manager->id, dssdev->panel.config,
                        dssdev->panel.acbi, dssdev->panel.acb);
@@ -137,7 +137,7 @@ static int dpi_set_mode(struct omap_dss_device *dssdev)
        dispc_set_lcd_timings(dssdev->manager->id, t);
 
 err0:
-       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1);
+       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK);
        return r;
 }
 
@@ -173,14 +173,14 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
                        goto err1;
        }
 
-       dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1);
+       dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK);
 
        r = dpi_basic_init(dssdev);
        if (r)
                goto err2;
 
 #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL
-       dss_clk_enable(DSS_CLK_FCK2);
+       dss_clk_enable(DSS_CLK_SYSCK);
        r = dsi_pll_init(dssdev, 0, 1);
        if (r)
                goto err3;
@@ -199,10 +199,10 @@ err4:
 #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL
        dsi_pll_uninit();
 err3:
-       dss_clk_disable(DSS_CLK_FCK2);
+       dss_clk_disable(DSS_CLK_SYSCK);
 #endif
 err2:
-       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1);
+       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK);
        if (cpu_is_omap34xx())
                regulator_disable(dpi.vdds_dsi_reg);
 err1:
@@ -217,12 +217,12 @@ void omapdss_dpi_display_disable(struct omap_dss_device *dssdev)
        dssdev->manager->disable(dssdev->manager);
 
 #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL
-       dss_select_dispc_clk_source(DSS_SRC_DSS1_ALWON_FCLK);
+       dss_select_dispc_clk_source(DSS_CLK_SRC_FCK);
        dsi_pll_uninit();
-       dss_clk_disable(DSS_CLK_FCK2);
+       dss_clk_disable(DSS_CLK_SYSCK);
 #endif
 
-       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1);
+       dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK);
 
        if (cpu_is_omap34xx())
                regulator_disable(dpi.vdds_dsi_reg);
@@ -271,7 +271,7 @@ int dpi_check_timings(struct omap_dss_device *dssdev,
                if (r)
                        return r;
 
-               fck = dsi_cinfo.dsi1_pll_fclk;
+               fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
                lck_div = dispc_cinfo.lck_div;
                pck_div = dispc_cinfo.pck_div;
        }
@@ -303,22 +303,27 @@ int dpi_init_display(struct omap_dss_device *dssdev)
 {
        DSSDBG("init_display\n");
 
-       return 0;
-}
+       if (cpu_is_omap34xx() && dpi.vdds_dsi_reg == NULL) {
+               struct regulator *vdds_dsi;
 
-int dpi_init(struct platform_device *pdev)
-{
-       if (cpu_is_omap34xx()) {
-               dpi.vdds_dsi_reg = dss_get_vdds_dsi();
-               if (IS_ERR(dpi.vdds_dsi_reg)) {
+               vdds_dsi = dss_get_vdds_dsi();
+
+               if (IS_ERR(vdds_dsi)) {
                        DSSERR("can't get VDDS_DSI regulator\n");
-                       return PTR_ERR(dpi.vdds_dsi_reg);
+                       return PTR_ERR(vdds_dsi);
                }
+
+               dpi.vdds_dsi_reg = vdds_dsi;
        }
 
        return 0;
 }
 
+int dpi_init(void)
+{
+       return 0;
+}
+
 void dpi_exit(void)
 {
 }