[PATCH v5 1/7] sound: codec: wm8731: add rates constraints
From: Richard Genoud <hidden>
Date: 2013-07-15 14:54:09
Also in:
alsa-devel, linux-devicetree, lkml
2013/7/12 Mark Brown [off-list ref]:
On Thu, Jul 11, 2013 at 06:15:53PM +0200, Richard Genoud wrote: Please always try to use commit logs that look like normal commit logs for the subsystem.
Ok, I'll pay attention to that.
quoted
switch (freq) { - case 11289600: case 12000000: + wm8731->constraints = &wm8731_constraints_12000000; + break; case 12288000: - case 16934400: case 18432000: - wm8731->sysclk = freq; + wm8731->constraints = &wm8731_constraints_12288000_18432000; + break; + case 16934400: + case 11289600: + wm8731->constraints = &wm8731_constraints_11289600_16934400; break; default: return -EINVAL; }This isn't going to work with systems which have a variable clock as the input to the CODEC. If it's imposing constraints the driver needs to allow setting the clock to zero as a way of removing constraints (and any existing drivers should be updated to do this if needed).
Maybe I'm wrong, but I didn't find any system using variable clock with this codec. The sam9g20ek (soc/atmel/sam9g20_wm8731.c) is not using a crystal, but it's using a fixed clock anyway. But there's soc/pxa/corgi.c and soc/pxa/poodle.c that puzzle me. They seems to use a crystal, but they are setting a different sysclk depending on the rate. That seems wrong, but as I'm a newbie in ASoC...