On 01/13/2015 11:49 PM, Peter Rosin wrote:
Hi!
I'm working on adding support for DAIFMT_CBM_CFM and DAIFMT_CBM_CFS to pcm512x, and it works nicely in the 3.10 kernel + Atmel-patches were I have developed the code. Now I'm trying to forward-port it and test it on 3.18 + other-Atmel-patches in preparation for submission. However, there seems to be a regression in that the (pre-existing) pcm512x_set_bias_level callback is never called in the 3.18 version.
I see that there has been some core work on set_bias_level, and suspect it has something to do with dapm and components, but I think someone else will find the problem much quicker than I am able to.
I have feebly tried to revert 0bd2ac3dae74ee25c5ea171cb572731c7a89c248 and 68f831c2724ab72c0088471b2ed1dc99e81948ef, but that didn't help. That also seems a bit backwards. So, what needs to be done in the pcm512x driver to have set_bias_level called?
It's unlikely that these commits have anything to do with it.
I think it is more likely that the DAPM state (for whatever reason) never actually changes. Check the state of the DAPM context and all the widgets in /sys/kernel/debug/asoc/your_card/... and compare their state when the system is idle to when it should not be idle.
- Lars