Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd49e2c8 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: adsp: Set DSP clock rate to SYSCLK rate



For simplicity always run the DSP at the SYSCLK rate.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 10a2b662
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -544,6 +544,28 @@ int wm_adsp2_event(struct snd_soc_dapm_widget *w,

	switch (event) {
	case SND_SOC_DAPM_POST_PMU:
		/*
		 * For simplicity set the DSP clock rate to be the
		 * SYSCLK rate rather than making it configurable.
		 */
		ret = regmap_read(dsp->regmap, ARIZONA_SYSTEM_CLOCK_1, &val);
		if (ret != 0) {
			adsp_err(dsp, "Failed to read SYSCLK state: %d\n",
				 ret);
			return ret;
		}
		val = (val & ARIZONA_SYSCLK_FREQ_MASK)
			>> ARIZONA_SYSCLK_FREQ_SHIFT;

		ret = regmap_update_bits(dsp->regmap,
					 dsp->base + ADSP2_CLOCKING,
					 ADSP2_CLK_SEL_MASK, val);
		if (ret != 0) {
			adsp_err(dsp, "Failed to set clock rate: %d\n",
				 ret);
			return ret;
		}

		if (dsp->dvfs) {
			ret = regmap_read(dsp->regmap,
					  dsp->base + ADSP2_CLOCKING, &val);