提交 9ede365a 编写于 作者: T Tomi Valkeinen

HACK: OMAP: DSS2: clk hack for OMAP2/3

The HWMOD data for OMAP2 and 3 are currently not up to date regarding
DSS (OMAP4 HWMOD data is fine). This patch makes the DSS driver to get
the opt clocks needed for OMAP2/3 with the old clock names, thus
allowing DSS driver to use runtime PM.

The HWMOD databases should be fixes ASAP, and this patch can be reverted
after that.
Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
上级 69f06054
...@@ -4435,7 +4435,10 @@ static int dsi_get_clocks(struct platform_device *dsidev) ...@@ -4435,7 +4435,10 @@ static int dsi_get_clocks(struct platform_device *dsidev)
dsi->dss_clk = clk; dsi->dss_clk = clk;
clk = clk_get(&dsidev->dev, "sys_clk"); if (cpu_is_omap34xx() || cpu_is_omap3630())
clk = clk_get(&dsidev->dev, "dss2_alwon_fck");
else
clk = clk_get(&dsidev->dev, "sys_clk");
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
DSSERR("can't get sys_clk\n"); DSSERR("can't get sys_clk\n");
clk_put(dsi->dss_clk); clk_put(dsi->dss_clk);
......
...@@ -691,6 +691,11 @@ static void dss_put_clocks(void) ...@@ -691,6 +691,11 @@ static void dss_put_clocks(void)
clk_put(dss.dss_clk); clk_put(dss.dss_clk);
} }
struct clk *dss_get_ick(void)
{
return clk_get(&dss.pdev->dev, "ick");
}
int dss_runtime_get(void) int dss_runtime_get(void)
{ {
int r; int r;
......
...@@ -209,6 +209,8 @@ void dss_uninit_platform_driver(void); ...@@ -209,6 +209,8 @@ void dss_uninit_platform_driver(void);
int dss_runtime_get(void); int dss_runtime_get(void);
void dss_runtime_put(void); void dss_runtime_put(void);
struct clk *dss_get_ick(void);
void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select); void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select);
const char *dss_get_generic_clk_source_name(enum omap_dss_clk_source clk_src); const char *dss_get_generic_clk_source_name(enum omap_dss_clk_source clk_src);
void dss_dump_clocks(struct seq_file *s); void dss_dump_clocks(struct seq_file *s);
......
...@@ -952,7 +952,10 @@ static int omap_rfbihw_probe(struct platform_device *pdev) ...@@ -952,7 +952,10 @@ static int omap_rfbihw_probe(struct platform_device *pdev)
msleep(10); msleep(10);
clk = clk_get(&pdev->dev, "ick"); if (cpu_is_omap24xx() || cpu_is_omap34xx() || cpu_is_omap3630())
clk = dss_get_ick();
else
clk = clk_get(&pdev->dev, "ick");
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
DSSERR("can't get ick\n"); DSSERR("can't get ick\n");
r = PTR_ERR(clk); r = PTR_ERR(clk);
......
...@@ -741,7 +741,10 @@ static int venc_get_clocks(struct platform_device *pdev) ...@@ -741,7 +741,10 @@ static int venc_get_clocks(struct platform_device *pdev)
venc.tv_clk = clk; venc.tv_clk = clk;
if (dss_has_feature(FEAT_VENC_REQUIRES_TV_DAC_CLK)) { if (dss_has_feature(FEAT_VENC_REQUIRES_TV_DAC_CLK)) {
clk = clk_get(&pdev->dev, "tv_dac_clk"); if (cpu_is_omap34xx() || cpu_is_omap3630())
clk = clk_get(&pdev->dev, "dss_96m_fck");
else
clk = clk_get(&pdev->dev, "tv_dac_clk");
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
DSSERR("can't get tv_dac_clk\n"); DSSERR("can't get tv_dac_clk\n");
clk_put(venc.tv_clk); clk_put(venc.tv_clk);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册