aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/omap2/dss/dsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/fbdev/omap2/dss/dsi.c')
-rw-r--r--drivers/video/fbdev/omap2/dss/dsi.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dsi.c b/drivers/video/fbdev/omap2/dss/dsi.c
index b7acdcd76f73..0083f6500949 100644
--- a/drivers/video/fbdev/omap2/dss/dsi.c
+++ b/drivers/video/fbdev/omap2/dss/dsi.c
@@ -1672,21 +1672,13 @@ err:
1672 return r; 1672 return r;
1673} 1673}
1674 1674
1675int dsi_pll_init(struct platform_device *dsidev, bool enable_hsclk, 1675int dsi_pll_init(struct platform_device *dsidev)
1676 bool enable_hsdiv)
1677{ 1676{
1678 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev); 1677 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
1679 int r = 0; 1678 int r = 0;
1680 enum dsi_pll_power_state pwstate;
1681 1679
1682 DSSDBG("PLL init\n"); 1680 DSSDBG("PLL init\n");
1683 1681
1684 /*
1685 * It seems that on many OMAPs we need to enable both to have a
1686 * functional HSDivider.
1687 */
1688 enable_hsclk = enable_hsdiv = true;
1689
1690 r = dsi_regulator_init(dsidev); 1682 r = dsi_regulator_init(dsidev);
1691 if (r) 1683 if (r)
1692 return r; 1684 return r;
@@ -1718,16 +1710,7 @@ int dsi_pll_init(struct platform_device *dsidev, bool enable_hsclk,
1718 * fill the whole display. No idea about this */ 1710 * fill the whole display. No idea about this */
1719 dispc_pck_free_enable(0); 1711 dispc_pck_free_enable(0);
1720 1712
1721 if (enable_hsclk && enable_hsdiv) 1713 r = dsi_pll_power(dsidev, DSI_PLL_POWER_ON_ALL);
1722 pwstate = DSI_PLL_POWER_ON_ALL;
1723 else if (enable_hsclk)
1724 pwstate = DSI_PLL_POWER_ON_HSCLK;
1725 else if (enable_hsdiv)
1726 pwstate = DSI_PLL_POWER_ON_DIV;
1727 else
1728 pwstate = DSI_PLL_POWER_OFF;
1729
1730 r = dsi_pll_power(dsidev, pwstate);
1731 1714
1732 if (r) 1715 if (r)
1733 goto err1; 1716 goto err1;
@@ -4487,7 +4470,7 @@ static int dsi_display_init_dsi(struct platform_device *dsidev)
4487 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev); 4470 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
4488 int r; 4471 int r;
4489 4472
4490 r = dsi_pll_init(dsidev, true, true); 4473 r = dsi_pll_init(dsidev);
4491 if (r) 4474 if (r)
4492 goto err0; 4475 goto err0;
4493 4476