Messages in this thread | | | Date | Tue, 17 Dec 2013 22:50:02 +0000 | From | Mark Brown <> | Subject | Re: [PATCH v3] ASoC: fsl: imx-wm8962: Grant hw_params/free() permission to control FLL |
| |
On Thu, Dec 12, 2013 at 05:59:28PM +0800, Nicolin Chen wrote:
> + mask = WM8962_MIXINL_TO_HPMIXL_MASK | WM8962_MIXINR_TO_HPMIXL_MASK | > + WM8962_IN4L_TO_HPMIXL_MASK | WM8962_IN4R_TO_HPMIXL_MASK; > + bypass |= snd_soc_read(codec, WM8962_HEADPHONE_MIXER_1) & mask; > + bypass |= snd_soc_read(codec, WM8962_HEADPHONE_MIXER_2) & mask; > + bypass |= snd_soc_read(codec, WM8962_SPEAKER_MIXER_1) & mask; > + bypass |= snd_soc_read(codec, WM8962_SPEAKER_MIXER_2) & mask; > + > + /* Don't diable FLL if running multi-substreams or analogue bypass */ > + if (codec_dai->active != 1 || bypass) > + return 0;
I don't think this works with the power down delay we do on playback - the DAI will go inactive when closed but we'll still have the CODEC active and using its clocks until the power down time has elapsed if it's a playback DAI. Trying to reclock the device while active is at best risky, even if it's muted.
I do think refcounting from both here and the bias level changes is going to be the most robust thing, that'd also avoid the need to peer into the CODEC register map. [unhandled content-type:application/pgp-signature] | |