diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-07-02 17:48:31 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-07-02 17:48:31 +0200 |
commit | dc8a4f3fc3c32954c9fd46cb027b959380be2d65 (patch) | |
tree | 71899d9d8fddbd5ef528067da06933c51d2da164 /sound/soc/pxa/pxa2xx-i2s.c | |
parent | 9ea5ca75a2aebb7172094a7d77acf6ff7600cc56 (diff) | |
parent | da9ff1f796e81976935407251815838bef9868d4 (diff) | |
download | op-kernel-dev-dc8a4f3fc3c32954c9fd46cb027b959380be2d65.zip op-kernel-dev-dc8a4f3fc3c32954c9fd46cb027b959380be2d65.tar.gz |
Merge branch 'fix/asoc' into for-linus
* fix/asoc:
ASoC: Only disable pxa2xx-i2s clocks if we enabled them
ASoC: OMAP: fix OMAP1510 broken PCM pointer callback
ASoC: remove BROKEN from Efika and pcm030 fabric drivers
ASoC: Fix typo in MPC5200 PSC AC97 driver Kconfig
Diffstat (limited to 'sound/soc/pxa/pxa2xx-i2s.c')
-rw-r--r-- | sound/soc/pxa/pxa2xx-i2s.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c index 4743e26..6b8f655 100644 --- a/sound/soc/pxa/pxa2xx-i2s.c +++ b/sound/soc/pxa/pxa2xx-i2s.c @@ -167,6 +167,7 @@ static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream, BUG_ON(IS_ERR(clk_i2s)); clk_enable(clk_i2s); + dai->private_data = dai; pxa_i2s_wait(); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) @@ -255,7 +256,10 @@ static void pxa2xx_i2s_shutdown(struct snd_pcm_substream *substream, if ((SACR1 & (SACR1_DREC | SACR1_DRPL)) == (SACR1_DREC | SACR1_DRPL)) { SACR0 &= ~SACR0_ENB; pxa_i2s_wait(); - clk_disable(clk_i2s); + if (dai->private_data != NULL) { + clk_disable(clk_i2s); + dai->private_data = NULL; + } } } @@ -336,6 +340,7 @@ static int pxa2xx_i2s_probe(struct platform_device *dev) return PTR_ERR(clk_i2s); pxa_i2s_dai.dev = &dev->dev; + pxa_i2s_dai.private_data = NULL; ret = snd_soc_register_dai(&pxa_i2s_dai); if (ret != 0) clk_put(clk_i2s); |