On Mon, Sep 04, 2017 at 09:34:13PM +0200, Sergej Sawazki wrote:
Set the ratio of MCLK/LRCLK in hw_params() instead of relying on the auto-detection.
The ratio of MCLK/LRCLK is known to the driver, there is no need to let the device to detect it.
But also no reason to not let it do so, are there some problems with the auto-detect?
Signed-off-by: Sergej Sawazki sergej@taudac.com
sound/soc/codecs/wm8741.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/wm8741.c b/sound/soc/codecs/wm8741.c index 7e8a7fe..534741b 100644 --- a/sound/soc/codecs/wm8741.c +++ b/sound/soc/codecs/wm8741.c @@ -198,7 +198,6 @@ static int wm8741_hw_params(struct snd_pcm_substream *substream, struct wm8741_priv *wm8741 = snd_soc_codec_get_drvdata(codec); u16 iface = snd_soc_read(codec, WM8741_FORMAT_CONTROL) & 0x1FC; u16 mode = snd_soc_read(codec, WM8741_MODE_CONTROL_1) & 0x183;
int i;
/* The set of sample rates that can be supported depends on the
- MCLK supplied to the CODEC - enforce this.
@@ -209,13 +208,27 @@ static int wm8741_hw_params(struct snd_pcm_substream *substream, return -EINVAL; }
- /* Find a supported LRCLK rate */
- for (i = 0; i < wm8741->sysclk_constraints->count; i++) {
if (wm8741->sysclk_constraints->list[i] == params_rate(params))
break;
- }
This looks like it should be in a separate patch, is removing this part of this patch? It feels like the constraints should have already been applied by startup so we should never be able to fail here in hw_params, is that why you are removing it?
Thanks, Charles