On Thu, 2010-08-26 at 14:53 +0200, Manuel Lauss wrote:
This patch fixes up the au1x audio platform after the multi-component merge:
- compile fixes and updates to get DB1200 platform audio working again,
- removal of global variables in AC97/I2S/DMA(PCM) modules.
The AC97 part is limited to one instance only for now due to issues with getting at driver data in the soc_ac97_ops.
Signed-off-by: Manuel Lauss manuel.lauss@googlemail.com
v5: smaller patch v4: fixed a bug in the previous bugfix, and added DAI drvdata accessors. v3: fixed a bug which caused cat /proc/iomem to loop endlessly. v2: prepare PCM,I2S for multiple card operation, use dev_name() for DAI name.
Against Liam's asoc/for-2.6.37 branch.
Tested on DB1200 and DB1300 (here both I2S and AC97 operate as independent cards), please fold this into the other Au1x multi-component patches.
This all looks fine
Issues I observed with AC97:
AC97 is limited to a single instance since I cannot get at the driver data in the AC97 callbacks at all time (or did I miss anything?): when the AC97 codec calls snd_ac97_mixer(), it calls into the soc_ac97_ops callbacks; however ac97->bus->card->private_data (suggested by Mark) is _always_ NULL, so no way to get at the dai and ultimately driver data.
generic AC97 codec use spits out this kobject warning, which is caused by the "device_register()" in soc-core.c::soc_ac97_dev_register():
Although I'm curious about these issues. I didn't see them when testing on my now non working Zylonite with WM9713 (AC97), so I'm suspecting it's related to the generic AC97 somehow.
Unfortunately, this will need someone with working AC97 hardware to fix this issue.
Is the AC97 DAI being probed before the generic AC97 codec driver in this case ?
Liam