On Wed, Apr 01, 2009 at 06:21:19PM +0200, Daniel Gl?ckner wrote:
On 04/01/2009 05:24 PM, Mark Brown wrote:
In that case rather than using a trigger to check if the device is running it should be possible to use constraints to prevent reconfiguration of the device when it's not supported - this is more friendly to apps since they know they won't be allowed to change the configuration.
It was my impression that it is up to the pcm part to install these constraints as this is where SNDRV_PCM_INFO_JOINT_DUPLEX can be put into the snd_pcm_hardware structure.
JOINT_DUPLEX is just a hint to the application about how the card will behave - you still need to enforce the actual constraints you have in the driver. In any case, the PCM driver shouldn't be setting that unless it has such a constraint itself since it should work with the widest possible range of systems.
Hrm. For the ADC that's probably OK but powering off the DAC does risk being audible in the output; that does depend on the hardware, though. It should do the right thing, I think, but checking for audio artefacts would be advisable.
I can't hear any artefacts with my cheap headphones. The delayed close is audible, though.
Probably due to something else in the output path powerdown (eg, the output stages). If it happens without the change to power down the DAC it's a separate issue :)
- and one to fix the bug
This sounds like a good plan. Please put something explaining the failure scenario in the comments so anyone pulling the PLL configuration out for machine drivers doesn't get suprised by this.