Bläddra i källkod

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>
Mark Brown 12 år sedan
förälder
incheckning
f2c26d48d9
1 ändrade filer med 7 tillägg och 0 borttagningar
  1. 7 0
      sound/soc/codecs/arizona.c

+ 7 - 0
sound/soc/codecs/arizona.c

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