]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: arizona: Support clearing clocks
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 21 Jan 2013 07:09:36 +0000 (16:09 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 21 Jan 2013 08:38:54 +0000 (17:38 +0900)
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>
sound/soc/codecs/arizona.c

index 316f074e686c662ef70d95852d57d7a4b3ac4c98..845d25630ba2f1e54add550ec2982fe90aab2880 100644 (file)
@@ -474,6 +474,10 @@ int arizona_set_sysclk(struct snd_soc_codec *codec, int clk_id,
        case 147456000:
                val |= 6 << ARIZONA_SYSCLK_FREQ_SHIFT;
                break;
+       case 0:
+               dev_dbg(arizona->dev, "%s cleared\n", name);
+               *clk = freq;
+               return 0;
        default:
                return -EINVAL;
        }
@@ -692,6 +696,9 @@ static int arizona_startup(struct snd_pcm_substream *substream,
                return 0;
        }
 
+       if (base_rate == 0)
+               return 0;
+
        if (base_rate % 8000)
                constraint = &arizona_44k1_constraint;
        else