[PATCH 09/10] S3C64XX I2S: Set parent links for clock audio-bus.
Jassi
jassi.brar at samsung.com
Tue Sep 15 06:02:41 EDT 2009
Explicitly route audio-bus from FOUTepll via MOUTepll.
Signed-Off-by: Jassi <jassi.brar at samsung.com>
---
sound/soc/s3c24xx/s3c64xx-i2s.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c
index 66f4ded..71aeb33 100644
--- a/sound/soc/s3c24xx/s3c64xx-i2s.c
+++ b/sound/soc/s3c24xx/s3c64xx-i2s.c
@@ -254,6 +254,7 @@ static __devinit int s3c64xx_iis_dev_probe(struct platform_device *pdev)
{
struct s3c_i2sv2_info *i2s;
struct snd_soc_dai *dai;
+ struct clk *cm, *cf;
int ret;
if (pdev->id >= ARRAY_SIZE(s3c64xx_i2s)) {
@@ -275,6 +276,21 @@ static __devinit int s3c64xx_iis_dev_probe(struct platform_device *pdev)
goto err;
}
+ cm = clk_get(NULL, "mout_epll");
+ if (IS_ERR(cm)) {
+ dev_err(&pdev->dev, "failed to get mout_epll\n");
+ ret = PTR_ERR(cm);
+ goto mout_err;
+ }
+ clk_set_parent(i2s->iis_cclk, cm);
+ cf = clk_get(NULL, "fout_epll");
+ if (IS_ERR(cf)) {
+ dev_err(&pdev->dev, "failed to get fout_epll\n");
+ ret = PTR_ERR(cf);
+ goto fout_err;
+ }
+ clk_set_parent(cm, cf);
+
ret = s3c_i2sv2_probe(pdev, dai, i2s, 0);
if (ret)
goto err_clk;
@@ -283,11 +299,17 @@ static __devinit int s3c64xx_iis_dev_probe(struct platform_device *pdev)
if (ret != 0)
goto err_i2sv2;
+ clk_put(cf);
+ clk_put(cm);
return 0;
err_i2sv2:
/* Not implemented for I2Sv2 core yet */
err_clk:
+ clk_put(cf);
+fout_err:
+ clk_put(cm);
+mout_err:
clk_put(i2s->iis_cclk);
err:
return ret;
--
1.6.2.5
More information about the linux-arm-kernel
mailing list