On Sun, Mar 18, 2012 at 1:19 AM, Trent Piepho tpiepho@gmail.com wrote:
There's a way to do this, and it's the way that the WM8988 driver is doing it - obviously you'll have different criteria for choosing constraints but the actual application of the constraints is going to be done in the same way.
Since the constraint is based on the current configuration of another DAI, the two DAIs need some way to query each other's parameters. The
Since they're both provided by the same driver this is trivial.
It's not that trivial with the sub-streams in question aren't in the same instance of the driver, e.g. playback and record. Say you had two WM8988 codecs, how does one codec get a handle to the other?
A CODEC is constrained only by its own, not by its another instance. If your machine routes related signals to two instances of the CODEC, then you have constraints at machine level, still not at codec level. So your machine driver should keep track of the first active codec's configuration and impose that on dais of the other as requests come. If actually your machine doesn't impose any such constraint, it becomes a policy, which should be imposed from user-space.
Implementation wise, maybe two tightly coupled dais at machine level, could be represented as one virtual dai with independent virtual 'mute' switches for each physical path?
I find it so obvious, so perhaps I am overlooking something :D
-j