ASoC: S3C2412: I2S: Return correct source clock
authorJassi Brar <jassi.brar@samsung.com>
Tue, 27 Apr 2010 06:56:34 +0000 (15:56 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 5 May 2010 14:11:52 +0000 (15:11 +0100)
Until now, s3c2412_get_iisclk would return NULL since iis_clk was never
initialized.
Return appropriate pointer as per the selection made for source clock.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/s3c2412-i2s.c

index cf0c15482c34f087ffb04bc935505845a10d51c6..ce2daacc4eb97a028e006849e98d143385acf503 100644 (file)
@@ -94,7 +94,13 @@ static int s3c2412_i2s_set_sysclk(struct snd_soc_dai *cpu_dai,
 
 struct clk *s3c2412_get_iisclk(void)
 {
-       return s3c2412_i2s.iis_clk;
+       struct s3c_i2sv2_info *i2s = &s3c2412_i2s;
+       u32 iismod = readl(i2s->regs + S3C2412_IISMOD);
+
+       if (iismod & S3C2412_IISMOD_IMS_SYSMUX)
+               return i2s->iis_cclk;
+       else
+               return i2s->iis_pclk;
 }
 EXPORT_SYMBOL_GPL(s3c2412_get_iisclk);