diff options
Diffstat (limited to 'sound/soc/codecs/es8328.c')
-rw-r--r-- | sound/soc/codecs/es8328.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/soc/codecs/es8328.c b/sound/soc/codecs/es8328.c index 97cfa0c8e81b..f3c97da798dc 100644 --- a/sound/soc/codecs/es8328.c +++ b/sound/soc/codecs/es8328.c @@ -556,8 +556,15 @@ static int es8328_set_sysclk(struct snd_soc_dai *codec_dai, struct snd_soc_component *component = codec_dai->component; struct es8328_priv *es8328 = snd_soc_component_get_drvdata(component); int mclkdiv2 = 0; + unsigned int round_freq; - switch (freq) { + /* + * Allow a small tolerance for frequencies within 100hz. Note + * this value is chosen arbitrarily. + */ + round_freq = DIV_ROUND_CLOSEST(freq, 100) * 100; + + switch (round_freq) { case 0: es8328->sysclk_constraints = NULL; es8328->mclk_ratios = NULL; |