* Re: Re: au8830 - front / rear channels swapped after first play and Surround40
2005-03-12 9:27 Raymond
@ 2005-03-13 1:10 ` Manuel Jander
0 siblings, 0 replies; 3+ messages in thread
From: Manuel Jander @ 2005-03-13 1:10 UTC (permalink / raw)
To: Raymond, alsa-devel, openvortex-dev
Hi Raymond,
On Sat, 2005-03-12 at 17:27 +0800, Raymond wrote:
> > > 3) Is the bug related to "vortex: IRQ fifo error" ?
>
> > No, thats not a bug. Thats normal.
>
> http://lists.gnu.org/archive/html/openvortex-dev/2004-03/msg00007.html
>
> I think the front/rear swap bug is related to that "vortex: IRQ fifo error".
AFAIK the FIFO error occurs only one time, the first time data is being
DMA'ed. It could be that this error is some kind of data underrun, and
it does only happen once, because we never flush the FIFO's when
stopping a stream. Remaining data in the FIFO's may be messing the
channel deinterlacer, because the amount of data loaded in the fifo is
random, generating a random offset. Since the the PCI bus is 32 bit
wide, that problem would not affect stereo streams, because one 32 bit
transaction maps to two 16 bit samples. Only where a frame is more that
32bits, this problem would become apparent. This is just a theory, but
maybe it could be worth a try, to enforce a absolute flush of the FIFO
data when stopping a DMA stream.
> As the hardware equalizer is only connected from the front channels to
> the CODECOUT(0/1) in the ALSA au88x0 driver when playing at 4 channel
> sound through hw:0,0 (adb)
>
[snip!]
> It seem that the patch mentioned in
>
> http://lists.gnu.org/archive/html/openvortex-dev/2003-12/msg00009.html
>
> intened to fixed the problem in the OSS application in
>
> http://lists.gnu.org/archive/html/openvortex-dev/2003-11/msg00016.html
I'm not that sure that these things are related directly. The patch in my
opinion is just hiding either a hardware issue or a software problem. It
may be related to the the way the fifos are stopped and resumed.
>
> 1) Is the FIFO is still suspending not stopped ?
Don't know. AFAIK the fifos can be stopped or just paused. What
difference that makes, i don't know.
Best Regards
--
Manuel Jander
Electronic Engineer
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Re: au8830 - front / rear channels swapped after first play and Surround40
@ 2005-03-17 3:23 Raymond
2005-03-17 14:45 ` Manuel Jander
0 siblings, 1 reply; 3+ messages in thread
From: Raymond @ 2005-03-17 3:23 UTC (permalink / raw)
To: alsa-devel; +Cc: openvortex-dev
> > No, thats not a bug. Thats normal.
>
>
> AFAIK the FIFO error occurs only one time, the first time data is
> being DMA'ed. It could be that this error is some kind of data
> underrun, and it does only happen once, because we never flush the
> FIFO's when stopping a stream. Remaining data in the FIFO's may be
> messing the channel deinterlacer, because the amount of data loaded in
> the fifo is random, generating a random offset. Since the the PCI bus
> is 32 bit wide, that problem would not affect stereo streams, because
> one 32 bit transaction maps to two 16 bit samples. Only where a frame
> is more that 32bits, this problem would become apparent. This is just
> a theory, but maybe it could be worth a try, to enforce a absolute
> flush of the FIFO data when stopping a DMA stream.
The "vortex: IRQ fifo error" message happen once when the first play is
a stereo or 4 channels sound and it do not happen when the first play is
a MONO sound on my au8830.
Using "vortex_adbdma_stopfifo()" instead of vortex_adbdma_pausefifo()"
in snd_vortex_pcm_trigger() (just like the last version of au88x0 in
alsa-driver before it merged into alsa-kernel) seem to fix the
front/rear channels swap when playing 4 channels sound in au8830.
However the message "vortex: IRQ fifo error" will appear more than once
in the kernel log, it is quite annoying when a lot of these message is
displayed on the screen (not always) during the shutdown of the linux.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Re: Re: au8830 - front / rear channels swapped after first play and Surround40
2005-03-17 3:23 Re: au8830 - front / rear channels swapped after first play and Surround40 Raymond
@ 2005-03-17 14:45 ` Manuel Jander
0 siblings, 0 replies; 3+ messages in thread
From: Manuel Jander @ 2005-03-17 14:45 UTC (permalink / raw)
To: Raymond, alsa-devel
Hi Raymond,
On Thu, 2005-03-17 at 11:23 +0800, Raymond wrote:
> > > No, thats not a bug. Thats normal.
> >
> >
> > AFAIK the FIFO error occurs only one time, the first time data is
> > being DMA'ed. It could be that this error is some kind of data
> > underrun, and it does only happen once, because we never flush the
> > FIFO's when stopping a stream. Remaining data in the FIFO's may be
> > messing the channel deinterlacer, because the amount of data loaded in
> > the fifo is random, generating a random offset. Since the the PCI bus
> > is 32 bit wide, that problem would not affect stereo streams, because
> > one 32 bit transaction maps to two 16 bit samples. Only where a frame
> > is more that 32bits, this problem would become apparent. This is just
> > a theory, but maybe it could be worth a try, to enforce a absolute
> > flush of the FIFO data when stopping a DMA stream.
>
> The "vortex: IRQ fifo error" message happen once when the first play is
> a stereo or 4 channels sound and it do not happen when the first play is
> a MONO sound on my au8830.
>
> Using "vortex_adbdma_stopfifo()" instead of vortex_adbdma_pausefifo()"
> in snd_vortex_pcm_trigger() (just like the last version of au88x0 in
> alsa-driver before it merged into alsa-kernel) seem to fix the
> front/rear channels swap when playing 4 channels sound in au8830.
Using "vortex_adbdma_stopfifo" sounds more reasonable to me, regarding
of what i explained above.
> However the message "vortex: IRQ fifo error" will appear more than once
> in the kernel log, it is quite annoying when a lot of these message is
> displayed on the screen (not always) during the shutdown of the linux.
Does the IRQ fifo error appear once for every sound played or a lot more
than that ? if it appears once for every PCM plaayback start, it may be
that this error is just a harmless "fifo empty" error, and as such could
be just ignored. An if it really signals a FIFO empty error, it maybe
useful to detect xruns ?
Best Regards,
--
Manuel Jander
Electronic Engineer
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-03-17 14:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-17 3:23 Re: au8830 - front / rear channels swapped after first play and Surround40 Raymond
2005-03-17 14:45 ` Manuel Jander
-- strict thread matches above, loose matches on Subject: below --
2005-03-12 9:27 Raymond
2005-03-13 1:10 ` Manuel Jander
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox