[regression] AACI driver on vexpress never gets loaded on Oneiric

Bug #862626 reported by Dave Martin
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro Linux
Fix Released
Undecided
Unassigned
Linaro Ubuntu
Fix Released
Medium
John Rigby
linux-linaro (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

... so sound doesn't work unless the snd-aaci module is loaded by hand.
This appears to be a regression at some commit in linux-linaro-oneiric.
At least the head of linux-linaro-natty appears unaffected.

Observed in linux-image-3.0.0-1006-linaro-vexpress (3.0.0-1006.8~ppa~natty)

For now, it looks like loading of AMBA peripheral drivers may not work usefully.
This needs investigation and (probably) a proper fix, which may involve additional udev rules, a change to the uevent data associated with these devices etc.

In the short term, this can be resolved by building the relevant AMBA drivers into the kernel for vexpress.

All of them seem to be built in already except for the AACI driver.

 CONFIG_SND_ARMAACI=y

This also appears to require the following also to be built in:

        CONFIG_SND=y
        CONFIG_SND_TIMER=y
        CONFIG_SND_PCM=y
        CONFIG_SND_AC97_CODEC=y
        CONFIG_SND_ARMAACI=y
        CONFIG_SND_SOC_I2C_AND_SPI=y
        CONFIG_AC97_BUS=y

If boards other than vexpress are making use of the ARM AACI driver, they may be affected too.

description: updated
summary: - AACI driver on vexpress never gets loaded
+ AACI driver on vexpress never gets loaded on vexpress
Changed in linaro-ubuntu:
milestone: none → 11.10
Revision history for this message
Fathi Boudra (fboudra) wrote : Re: AACI driver on vexpress never gets loaded on vexpress

Set medium priority as a work around is known: snd-aaci module is loaded by hand.
Assign to john to update the kernel config.

tags: added: armel patch vexpress
Changed in linaro-ubuntu:
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → John Rigby (jcrigby)
summary: - AACI driver on vexpress never gets loaded on vexpress
+ [regression] AACI driver on vexpress never gets loaded on Oneiric
Anmar Oueja (anmar)
Changed in linaro-landing-team-arm:
importance: Undecided → Medium
Fathi Boudra (fboudra)
Changed in linaro-ubuntu:
milestone: 11.10 → 11.11
Revision history for this message
Ricardo Salveti (rsalveti) wrote :

John, can you check if this is still and issue?

Revision history for this message
Tixy (Jon Medhurst) (tixy) wrote : Re: [Bug 862626] Re: [regression] AACI driver on vexpress never gets loaded on Oneiric

On Mon, 2011-11-21 at 08:19 +0000, Ricardo Salveti wrote:
> John, can you check if this is still and issue?
>

Yes, I can check it. For both the vexpress hardware packs presumably.
(LT and the 'official' one.)

Revision history for this message
Tixy (Jon Medhurst) (tixy) wrote :

On Mon, 2011-11-21 at 08:19 +0000, Ricardo Salveti wrote:
> John, can you check if this is still and issue?
>

Ryan checked this, it's still a problem.

Revision history for this message
John Rigby (jcrigby) wrote :

Making the above mentioned options =y in vexpress kernel but leaving them =m in other flavours.

Changed in linaro-ubuntu:
status: Triaged → Fix Committed
Revision history for this message
Loïc Minier (lool) wrote :

Isn't there some autoloading issue to be fixed here rather than a config tweak?

Revision history for this message
Ricardo Salveti (rsalveti) wrote :

Yup, that's why it's fixed released just for linaro-ubuntu, as we are using the workaround while the proper fix is still not in place.

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

On Tue, Nov 22, 2011 at 09:28:41AM -0000, Loïc Minier wrote:
> Isn't there some autoloading issue to be fixed here rather than a config
> tweak?

I have implemented a proper fix some weeks ago, and I just sent Russell
a pull request. If the ARM LT guys want to try it, they could revert
the affected config options to =m and testdrive the fix.

The pull request is here:

https://lkml.org/lkml/2011/11/22/144

Cheers
---Dave

Revision history for this message
Loïc Minier (lool) wrote :

On Tue, Nov 22, 2011, Dave Martin wrote:
> I have implemented a proper fix some weeks ago, and I just sent Russell
> a pull request. If the ARM LT guys want to try it, they could revert
> the affected config options to =m and testdrive the fix.
>
> The pull request is here:
> https://lkml.org/lkml/2011/11/22/144

 Perfect, thanks; did you sent this to Nicolas for linux-linaro?

--
Loïc Minier

Revision history for this message
Ryan Harkin (ryanharkin) wrote :

I've tested Dave's branch (above) and confirm that the audio works with the drivers configured either as modules. (It also works with the drivers compiled into the kernel).

The LT kernel works when build with the drivers are built-in (set to 'y' in .config), but not when configured as modules. When configured as modules, I get the following output at boot time:

     * Starting restore sound card(s') mixer state(s) [fail]

Then, if I check for pcm files as Dave suggested, there are none:

    root@linaro-ubuntu-desktop:~# ls /dev/snd/pcm*
    ls: cannot access /dev/snd/pcm*: No such file or directory

And finally, when I try to play a sound, I get the following error output:

    root@linaro-ubuntu-desktop:~# ogg123 /usr/share/sounds/gnome/default/alerts/bark.ogg

    Audio Device: Advanced Linux Sound Architecture (ALSA) output

    Playing: /usr/share/sounds/gnome/default/alerts/bark.ogg
    Ogg Vorbis stream: 2 channel, 48000 Hz
    ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
    ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
    ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
    ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
    ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
    ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
    ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
    ALSA lib conf.c:4663:(snd_config_expand) Evaluate error: No such file or directory
    ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM default
    ERROR: Cannot open device alsa.

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

On Tue, Nov 22, 2011 at 4:43 PM, Ryan Harkin <email address hidden> wrote:
> I've tested Dave's branch (above) and confirm that the audio works with
> the drivers configured either as modules.  (It also works with the
> drivers compiled into the kernel).
>
> The LT kernel works when build with the drivers are built-in (set to 'y'
> in .config), but not when configured as modules.  When configured as
> modules, I get the following output at boot time:

[...]

So, the LT kernel doesn't automatically load the driver modules, as we supposed.

Just to clarify, you're saying it _does_ work fully with my branch?
What if you pull those patches into the LT tree? Does that work too
when the drivers are modules?

Cheers
---Dave

Revision history for this message
Ryan Harkin (ryanharkin) wrote :

On Tue, 2011-11-22 at 18:40 +0000, Dave Martin wrote:
> Just to clarify, you're saying it _does_ work fully with my branch?

Yes, it works fully.

(sorry for adding a confused comment last time!)

> What if you pull those patches into the LT tree? Does that work too
> when the drivers are modules?

I'll give that a go and add a comment when I know.

Revision history for this message
Ryan Harkin (ryanharkin) wrote :

I've pulled the patches from Dave's branch into a copy of the LT tree and they work fully there also.

I tested the patches compiled in and as modules.

I was unable to merge the following commit automatically, so I omitted it:

e8fa516 dmaengine: pl330: Enable module alias autogeneration for AMBA drivers

Looking at it now, it should have been a trivial merge, but it seems it was needed for this test.

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

> I was unable to merge the following commit automatically, so I omitted
> it:
>
> e8fa516 dmaengine: pl330: Enable module alias autogeneration for AMBA
> drivers
>
> Looking at it now, it should have been a trivial merge, but it seems it
> was needed for this test.

Do you mean "wasn't needed"? The series includes miscellaneous driver
patches to add the necessary module alias tag. If you're missing one,
it should just mean that particular driver won't get autoloaded...
AFAIK vexpress-v2p-ca9 has no DMA controller (?)

Cheers
---Dave

Revision history for this message
Ryan Harkin (ryanharkin) wrote :

On Wed, 2011-11-23 at 10:00 +0000, Dave Martin wrote:
> > but it seems it was needed for this test.
>
> Do you mean "wasn't needed"?

Exactly. Sorry, that was a typo. I didn't need it, and the image built
and worked without the patch.

Changed in linaro-ubuntu:
status: Fix Committed → Fix Released
Revision history for this message
Dave Martin (dave-martin-arm) wrote :

On Wed, Nov 23, 2011 at 10:45 AM, Ryan Harkin <email address hidden> wrote:
> On Wed, 2011-11-23 at 10:00 +0000, Dave Martin wrote:
>> > but it seems it was needed for this test.
>>
>> Do you mean "wasn't needed"?
>
> Exactly.  Sorry, that was a typo.  I didn't need it, and the image built
> and worked without the patch.

OK, thanks for putting my mind at rest :)

---Dave

Anmar Oueja (anmar)
Changed in linaro-landing-team-arm:
status: New → Won't Fix
Revision history for this message
Tixy (Jon Medhurst) (tixy) wrote :

ARM Landing Team kernel now contains Dave Martin's patches

Changed in linaro-landing-team-arm:
milestone: none → 2012.01
status: Won't Fix → Fix Released
Changed in linux-linaro (Ubuntu):
status: New → Fix Released
Changed in linux-linaro:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.