summaryrefslogtreecommitdiffstats
path: root/sound/soc/s3c24xx
diff options
context:
space:
mode:
authorJassi <jassi.brar@samsung.com>2009-09-18 08:22:27 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-09-18 16:09:37 +0200
commitb1cd6b9ec7c749ddfad628c8c12659591ae195e6 (patch)
tree4b9caed2f0995780c038b1b10114810ac71a47e0 /sound/soc/s3c24xx
parentASoC: Add S3C64xx IIS CDCLK source selection (diff)
downloadlinux-b1cd6b9ec7c749ddfad628c8c12659591ae195e6.tar.xz
linux-b1cd6b9ec7c749ddfad628c8c12659591ae195e6.zip
ASoC: Return correct codec clock in s3c64xx-i2s
Instead of always returnig pointer to the 'audio-bus' clock, check which clock is used to generate internal clocks and then return it's pointer. Signed-off-by: Jassi <jassi.brar@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/s3c24xx')
-rw-r--r--sound/soc/s3c24xx/s3c64xx-i2s.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c
index aaf452096be2..43fb253a3429 100644
--- a/sound/soc/s3c24xx/s3c64xx-i2s.c
+++ b/sound/soc/s3c24xx/s3c64xx-i2s.c
@@ -124,8 +124,12 @@ static int s3c64xx_i2s_set_sysclk(struct snd_soc_dai *cpu_dai,
struct clk *s3c64xx_i2s_get_clock(struct snd_soc_dai *dai)
{
struct s3c_i2sv2_info *i2s = to_info(dai);
+ u32 iismod = readl(i2s->regs + S3C2412_IISMOD);
- return i2s->iis_cclk;
+ if (iismod & S3C64XX_IISMOD_IMS_SYSMUX)
+ return i2s->iis_cclk;
+ else
+ return i2s->iis_pclk;
}
EXPORT_SYMBOL_GPL(s3c64xx_i2s_get_clock);