[alsa-devel] [PATCH v5] ASoC/2.6.37: fix au1x platform

Manuel Lauss manuel.lauss at googlemail.com
Fri Aug 27 15:32:16 CEST 2010


Hello,

On Fri, Aug 27, 2010 at 3:07 PM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
> On 27 Aug 2010, at 13:51, Liam Girdwood <lrg at slimlogic.co.uk> wrote:
>
>> 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 at 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.
>
> Yeah, the generic AC97 code doesn't really know what's going on with ASoC so we're probably upsetting it again. Most likely we need to redo the stuff to suppress the card registration for AC97 cards.
>
>> 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 ?

Yes.

I've found another AC97-related issue on another board (DB1300):
With AC97 enabled, the device warning doesn't appear but my ethernet
is gone instead:

[...]
smsc911x: Driver version 2008-10-21.
smsc911x-mdio: probed
eth0: attached PHY driver [SMSC LAN8700] (mii_bus:phy_addr=ffffffff:01, irq=-1)
net eth0: MAC Address: 00:0f:30:11:00:a1
WM9711/WM9712 SoC Audio Codec 0.4
asoc: wm9712-hifi <-> au1xpsc_ac97.1 mapping ok
asoc: wm8731-hifi <-> au1xpsc_i2s.2 mapping ok
ALSA device list:
  #0: DB1300_AC97
  #1: DB1300_I2S
IP-Config: Failed to open eth0
IP-Config: No network devices available.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[...]

Omit the ac97 "soc-audio" device registration and ethernet comes back
(the DB1200
for example doesn't hit the reset switch with the AC97 warning present).

Otherwise both cards work fine at the same time.

Thank you!
      Manuel Lauss
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the Alsa-devel mailing list