
On Wed, Feb 22, 2012 at 09:03:07AM +0000, Russell King - ARM Linux wrote:
I have developed a standard DMA engine ASoC driver tested on SA11x0 for playback only (that's because SA11x0 requires playback DMA to be active for capture to work, and ASoC doesn't support that.)
Eew, that does sound like a rather spectacular hardware fail. What's the root of the restriction? Since I've never heard of any other hardware with a similar requirement and would be surprised to see any I'd be comfortable with a driver specific bodge to keep playback running whenever there's a capture.
I've not yet posted it, mainly because it's there by accident, along with the rest of the SA11x0 Assabet stuff (it's part of my testing for the SA11x0 DMA engine code.)
Can you guys take a look at each other's code and see what the overlap is please? Looking through it seems like the final result probably wants to be a merge of both.
It'd also be nice to get as much as we can of the sa11x0 support merged, glancing at the code there's quite a few updates I'd like to see like more use of devm_ and moving over to using snd_soc_register_card() (you shouldn't be registering any devices at all in your machine driver, though I've no idea what's going on with L3, perhaps you need to register something for that).
For the suspend/resume stuff you can make any assumptions you like about the hardware setup in the machine driver suspend and resume callbacks since all the code is specific to a particular system. You can also assume that the hardware is not in use over suspend and resume, the core should quiesce the hardware before it suspends it.