On Wed, Oct 19, 2011 at 09:12:46AM -0700, Stephen Warren wrote:
I believe the idea was to keep as much as possible of the audio related information in the audio drivers rather than in board files. The GPIO IDs are in platform data since the audio driver can't reach into the mach-tegra gpio_names header since it's not public.
Well, it's also that the model the stack has is that all this stuff is going to be in board files.
What I'd like to see in the nc_pins case is the DAPM core automatically perform these calls based on which pins the codec has which aren't mentioned in card->dapm_routes; I haven't investigated whether that's actually possible without breaking unrelated boards though.
This wouldn't be too hard to do but needs to be entirely optional, just wiring the CODEC driver in should be enough. Keeping things powered down is an optimisation, getting audio out is critical functionality.
If you were to move the nc_pins list into platform data, you'd end up wanting to move the snd_soc_dapm_route tables too, and perhaps even tegra_wm8903_controls[] and maybe more.
Eventually, I see most of these tables moving into device-tree, with the only thing hard-coded into tegra_wm8903.c being all the clock and format setup code.
Until someone decides to connect MCLK somewhere else...