On Thu, Jul 25, 2013 at 11:58:16PM +0100, Russell King - ARM Linux wrote:
On Thu, Jul 25, 2013 at 08:16:04PM +0100, Mark Brown wrote:
This seems mostly fine, though it may be best to keep kirkwood-dma as a separate module for the benefit of the S/PDIF support when it gets added
- I had a look at the implementation Russell has and it looks like it
can be added as a separate interface.
You wouldn't want I2S and SPDIF to be separate modules though - they're the same hardware but different output stream formatters attached to the DMA FIFO output. Don't forget the requirements concerning the simultaneous use of I2S and SPDIF - these "output formatters" must both be enabled and disabled in unison when concurrent use is required - both bits must be set or cleared together with a single register write.
OK, I knew they both needed to know about each other and to share some stuff but I figured it was reasonable to compile out the S/PDIF support if only using I2S or similar - so long as they're coupled at runtime it should be fine.
Should the name be done as dev_name() for the interface (I don't know if there is ever more than one)?
Getting away from "kirkwood-i2s" would be sensible, because it may not be just "i2s" in this hardware block. The documentation calls this an "audio controller" but I guess "kirkwood-pcm" would be a reasonable compromise, even though it has a separate AC'97 block which could also be construed as being "pcm".
I was thinking just pick a name at runtime based on what was doing the instantiation which would avoid hard coding anything in the DMA driver.