On 2019-01-14 18:36, Pierre-Louis Bossart wrote: > >>> >>> mck_rate = sck_rate; >>> } else { >>> @@ -1383,6 +1389,16 @@ static int pcm512x_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) >>> return 0; >>> } >>> >>> +static int pcm512x_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio) >>> +{ >>> + struct snd_soc_component *component = dai->component; >>> + struct pcm512x_priv *pcm512x = snd_soc_component_get_drvdata(component); >>> + >>> + pcm512x->bclk_ratio = ratio; >> You should perhaps check if (ratio >= 1 && ratio <= 256) prior to >> accepting a divider that can't be programmed? But maybe that's enforced >> somewhere else? And perhaps the sanity check should be even stricter? > Yes it should be stricter with a power of two only. I tried really hard > to make this codec work with ratios of 50 (and a 19.2 MHz mclk) on an Up > board and it's just not possible, probably not supported by hardware. Disallowing anything but powers of two just because 50 doesn't work seems pretty wild. According to docs I think 48 should work just fine. Section 8.3.2 Audio Data Interface page 16. http://www.ti.com/lit/ds/symlink/pcm5142.pdf Or? Cheers, Peter _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel