linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Interrupt routing broken on TiBook IV with 2.6.21.x ?
@ 2007-05-21  0:06 Christian Böhme
  2007-05-21  1:56 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Böhme @ 2007-05-21  0:06 UTC (permalink / raw)
  To: linuxppc-dev

Hi all,

With the availability of the stable 2.6.21.x kernels I recently started to
move over from OSS to ALSA for audio I/O.  Along with that move came the
surprise that not the simplest audio output works anymore (actually, this
was the case with the stable 2.6.20.x kernels and OSS already which I
therefore opted to avoid).

The problem I ran into is that no matter which application (speaker-test,
aplay, xmms, gxine) using either the native ALSA API or via the OSS
compatibility layer, none of these is able to sustain audio output for
more than 7 seconds.  In fact, most attempts max out at statistically one
second (with many even shorter than that).  After the signal at the output
jack died, the application appears to be blocking forever (it does not spin)
with no signs of ending its output.

I initially presented this problem on alsa-user@lists.sourceforge.net where
someone suggested that it might actually be caused by (broken) interrupt
routing for the built-in audio device.  This assumption may be supported
by the observation that once the sound previously produced by the application
(speaker-test in the simplest case) stopped being sent through the output
jack, no increase in the interrupt counter occurs.

An example output of /proc/interrupts on my machine looks like this (why
eth0 does not show up in this listing is beyond me):

            CPU0
  19:      39005   MPIC 1    Level     ide0
  20:         34   MPIC 1    Level     ide1
  25:     151785   MPIC 1    Level     VIA-PMU
  26:        131   MPIC 1    Level     keywest i2c
  27:          1   MPIC 1    Level     ohci_hcd:usb1
  28:          1   MPIC 1    Level     ohci_hcd:usb2
  30:        197   MPIC 1    Edge      PMac Output
  31:          1   MPIC 1    Edge      PMac Input
  40:          2   MPIC 1    Level     ohci1394
  42:          0   MPIC 1    Level     keywest i2c
  47:       7682   MPIC 1    Level     GPIO1 ADB
  48:      39571   MPIC 1    Level     radeon@pci:0000:00:10.0
  57:          0   MPIC 1    Level     eth1
  58:          1   MPIC 1    Level     yenta
  61:          1   MPIC 1    Edge      Sound Headphone Detection
BAD:          0


Has anyone any idea what causes the audio output to die prematurely ?


Cheers,
Christian

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21  0:06 Interrupt routing broken on TiBook IV with 2.6.21.x ? Christian Böhme
@ 2007-05-21  1:56 ` Benjamin Herrenschmidt
  2007-05-21 20:08   ` Christian Böhme
  0 siblings, 1 reply; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2007-05-21  1:56 UTC (permalink / raw)
  To: Christian Böhme; +Cc: linuxppc-dev


> Has anyone any idea what causes the audio output to die prematurely ?

Nope... it can't be a routing problem since interrupt -is- routed (you
are getting it !) unless I missed some subtle breakage in the
device-tree.

Which exact tipb model is this ? (cat /proc/device-tree/model)

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21  1:56 ` Benjamin Herrenschmidt
@ 2007-05-21 20:08   ` Christian Böhme
  2007-05-21 22:11     ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Böhme @ 2007-05-21 20:08 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

Benjamin Herrenschmidt wrote:

> Nope... it can't be a routing problem since interrupt -is- routed (you
> are getting it !)

Actually, these were the exact words from the ALSA developer.  For some
reason, however, the interrupt count does not increase after some (variable)
time.  It looks as if the ALSA code waits for but not receiving them.  After
a restart, an audio signal does leave the jack and the interrupt count
increases but only for about a second (sometimes more, often less).  No idea 
whether interrupts must be routed/are routable on this very machine I have at 
all ...

> Which exact tipb model is this ? (cat /proc/device-tree/model)

PowerBook3,5 of the 2002-11 release variety.

I stuck to OSS up to the 2.6.19.x kernels where everything (surprisingly)
``just worked''.  Then came the 2.6.20.x series and <root>/sound/oss/\
dmasound/dmasound_awacs.c started spitting out loads of ``tx-irq: xfer died -
patching it up...'' messages with stuttering audio output but nothing
different in their respective implementations from 2.6.19.x to 2.6.20.x.

Is there anything particular I can dive into myself to expedite finding the
cause of the problem without learning the full details of the PPC implemen-
tation ?


Cheers,
Christian

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21 20:08   ` Christian Böhme
@ 2007-05-21 22:11     ` Benjamin Herrenschmidt
  2007-05-21 22:47       ` Christian Böhme
  0 siblings, 1 reply; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2007-05-21 22:11 UTC (permalink / raw)
  To: Christian Böhme; +Cc: linuxppc-dev

On Mon, 2007-05-21 at 22:08 +0200, Christian Böhme wrote:
> Benjamin Herrenschmidt wrote:
> 
> > Nope... it can't be a routing problem since interrupt -is- routed (you
> > are getting it !)
> 
> Actually, these were the exact words from the ALSA developer.  For some
> reason, however, the interrupt count does not increase after some (variable)
> time.  It looks as if the ALSA code waits for but not receiving them.  After
> a restart, an audio signal does leave the jack and the interrupt count
> increases but only for about a second (sometimes more, often less).  No idea 
> whether interrupts must be routed/are routable on this very machine I have at 
> all ...

Or it could be the DMA channel going dead though I fail to see why it
would just start doing that now.

> > Which exact tipb model is this ? (cat /proc/device-tree/model)
> 
> PowerBook3,5 of the 2002-11 release variety.

Ok, I think I have access to one of these, I'll try to reproduce myself.

> I stuck to OSS up to the 2.6.19.x kernels where everything (surprisingly)
> ``just worked''.  Then came the 2.6.20.x series and <root>/sound/oss/\
> dmasound/dmasound_awacs.c started spitting out loads of ``tx-irq: xfer died -
> patching it up...'' messages with stuttering audio output but nothing
> different in their respective implementations from 2.6.19.x to 2.6.20.x.
> 
> Is there anything particular I can dive into myself to expedite finding the
> cause of the problem without learning the full details of the PPC implemen-
> tation ?

Not sure where to start :-) I'll first see if I can reproduce.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21 22:11     ` Benjamin Herrenschmidt
@ 2007-05-21 22:47       ` Christian Böhme
  2007-05-21 23:15         ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Böhme @ 2007-05-21 22:47 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

Benjamin Herrenschmidt wrote:

> Or it could be the DMA channel going dead though I fail to see why it
> would just start doing that now.

...

> Not sure where to start :-) I'll first see if I can reproduce.

It's not that I am not interested nor completely new to this, it's just that
I am currently a little short on time for things like these.  The last time
I checked, the Linux people have just started to make use of DMA maps, a
concept that other OS/architecture combos employed for years already.  Is
that what is used in the TiBooks to allocate DMA channels ?


Cheers,
Christian

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21 22:47       ` Christian Böhme
@ 2007-05-21 23:15         ` Benjamin Herrenschmidt
  2007-05-21 23:44           ` Christian Böhme
  0 siblings, 1 reply; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2007-05-21 23:15 UTC (permalink / raw)
  To: Christian Böhme; +Cc: linuxppc-dev

On Tue, 2007-05-22 at 00:47 +0200, Christian Böhme wrote:
> It's not that I am not interested nor completely new to this, it's just that
> I am currently a little short on time for things like these.  The last time
> I checked, the Linux people have just started to make use of DMA maps, a
> concept that other OS/architecture combos employed for years already.  Is
> that what is used in the TiBooks to allocate DMA channels ?

I'm not sure what you are talking about here. DMA mapping has existed in
linux for years.

Ben.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Interrupt routing broken on TiBook IV with 2.6.21.x ?
  2007-05-21 23:15         ` Benjamin Herrenschmidt
@ 2007-05-21 23:44           ` Christian Böhme
  0 siblings, 0 replies; 7+ messages in thread
From: Christian Böhme @ 2007-05-21 23:44 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

Benjamin Herrenschmidt wrote:

> I'm not sure what you are talking about here. DMA mapping has existed in
> linux for years.

I do admit that it's been a while since that last look ;)  The topic came up
when discussing PCI and bus systems in general with micro/real-time kernel
people whom I assumed to be experts in this since they had Linux kernels
running on top of their scheduling scheme.  As it turned out, using an
abstraction such as a DMA map was a totally new concept to them.  They
even questioned the usefulness of such an approach.


Cheers,
Christian

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-05-21 23:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-21  0:06 Interrupt routing broken on TiBook IV with 2.6.21.x ? Christian Böhme
2007-05-21  1:56 ` Benjamin Herrenschmidt
2007-05-21 20:08   ` Christian Böhme
2007-05-21 22:11     ` Benjamin Herrenschmidt
2007-05-21 22:47       ` Christian Böhme
2007-05-21 23:15         ` Benjamin Herrenschmidt
2007-05-21 23:44           ` Christian Böhme

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).