Hello,
The current implementation of constraints in TWL4030 codec needs some tuning.
An interesting case can be generated by using gstreamer: gst-launch-0.10 alsasrc device=hw:0 ! alsasink device=hw:0 sync=false
What would (since the current implementation blocks it) happen in this case is: playback stream: open capture stream: open capture stream: hw_params playback_stream: hw_params
In capture open we set the constraints to the capture stream based on the playback streams runtime parameters, and they are 0 (rate = 0, sample_bits = 0), since the hw_param has not been called for that stream yet...
The following patch fixes this issue among other possible scenarios regarding to constraint handling.
Note that I'm not using the just introduced symmetric_rates feature of ASoC introduced by Mark Brown recently, since I think that also suffers from this problem (or not, I have to try it out first to be sure about it)
--- Peter Ujfalusi (1): ASoC: TWL4030: Fix for the constraint handling
sound/soc/codecs/twl4030.c | 85 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 66 insertions(+), 19 deletions(-)