On Thu, 2007-05-31 at 14:49 -0500, Timur Tabi wrote:
Liam Girdwood wrote:
I think the best place to call snd_soc_new_pcms is in the machine driver. This means we don't have to add any pcms that are not used.
True, but the machine driver is probed before the codec driver is probed. So if you really need the codec driver to initialize the I2C bus first, then you've got a problem. Re-arranging the order of probes in soc_probe() is not really a solution.
So on your baord, why does the I2C interface need to be running before anything else can be probed?
Imho, there is little point in probing or allocating any more resources until we know the I2C codec probe succeeds. We would just have to free any resources allocated up to that point.
Yes, the hw_params could return error on anything the machine didn't like. e.g. this could be used to workaround quirks.
Would ALSA know to try something else, if a particular combination was rejected?
This would be up to your user space application. In general all common sample rates and formats are supported by most drivers e.g. 44.1k stereo. If some combinations are rejected, it's most likely due to hardware limitations.
Liam