aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2013-01-21 02:09:36 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2013-01-21 03:38:54 -0500
commitf2c26d48d9c6e91c6b9c914f215952400e6f889b (patch)
treeac17fb34377383a0afda392459326b4f79af67b3 /sound
parente5ddd303215d1e5e89d06056d17673b18219ace3 (diff)
ASoC: arizona: Support clearing clocks
Some systems may wish to support switching between telephony and CD audio clock rates but this is restricted by enforcement of constraints on the current DAI clock. Support setting clocks to zero and don't enforce any constraints in that case in order to facilitate this use case. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/arizona.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index 316f074e686c..845d25630ba2 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -474,6 +474,10 @@ int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id,
474 case 147456000: 474 case 147456000:
475 val |= 6 << ARIZONA_SYSCLK_FREQ_SHIFT; 475 val |= 6 << ARIZONA_SYSCLK_FREQ_SHIFT;
476 break; 476 break;
477 case 0:
478 dev_dbg(arizona->dev, "%s cleared\n", name);
479 *clk = freq;
480 return 0;
477 default: 481 default:
478 return -EINVAL; 482 return -EINVAL;
479 } 483 }
@@ -692,6 +696,9 @@ static int arizona_startup(struct snd_pcm_substream *substream,
692 return 0; 696 return 0;
693 } 697 }
694 698
699 if (base_rate == 0)
700 return 0;
701
695 if (base_rate % 8000) 702 if (base_rate % 8000)
696 constraint = &arizona_44k1_constraint; 703 constraint = &arizona_44k1_constraint;
697 else 704 else