All of lore.kernel.org
 help / color / mirror / Atom feed
* 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, 1 reply; 3+ messages in thread
From: Raymond @ 2005-03-12  9:27 UTC (permalink / raw)
  To: alsa-devel; +Cc: openvortex-dev

> > 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".

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)

Routes After adb_allocroute() in snd_vortex_pcm_hw_params-----------
00028100 : 00000041   ADBDMA(00) -> SRCIN(01)
00028104 : 00000042   ADBDMA(00) -> SRCIN(02)
00028108 : 00000043   ADBDMA(00) -> SRCIN(03)
00028140 : 00007151   CODECIN(1) -> MIXIN(01)
00028144 : 00002052   SRCOUT(00) -> MIXIN(02)
00028148 : 00002153   SRCOUT(01) -> MIXIN(03)
0002814c : 00002254   SRCOUT(02) -> MIXIN(04)
00028150 : 00002355   SRCOUT(03) -> MIXIN(05)
00028220 : 00007f89   EQOUT(1) -> CODECOUT(1)
00028224 : 0000328c   MIXOUT(02) -> CODECOUT(4)
00028230 : 0000338d   MIXOUT(03) -> CODECOUT(5)
00028234 : 00007050   CODECIN(0) -> MIXIN(00)
00028248 : 00003593   MIXOUT(05) -> SPDIFOUT(1)
00028280 : 000031a1   MIXOUT(01) -> EQIN(1)
00028284 : 00007e88   EQOUT(0) -> CODECOUT(0)
000282c0 : 00000040   ADBDMA(00) -> SRCIN(00)
000282f8 : 000030a0   MIXOUT(00) -> EQIN(0)
00028304 : 00003492   MIXOUT(04) -> SPDIFOUT(0)
----------------------------------------
MIXIN_MIXOUT ENABLE
21a00 : 00000004   mixin(02) -> mixout(00)
21a20 : 00000008   mixin(03) -> mixout(01)
21a44 : 00000001   mixin(04) -> mixout(02)
21a64 : 00000002   mixin(05) -> mixout(03)
21a80 : 00000004   mixin(02) -> mixout(04)
21a84 : 00000001   mixin(04) -> mixout(04)
21aa0 : 00000008   mixin(03) -> mixout(05)
21aa4 : 00000002   mixin(05) -> mixout(05)


#/etc/init.d/alsasound stop
Shutting down sound driver: done
# /etc/init.d/alsasound start
Starting sound driver: snd-au8830 done

http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-utils/speaker-test/

Running "speaker-test -c 4" and watching the graphical equalizer of the
vortexcontrol

# speaker-test -c 4

  speaker-test 0.0.7

Playback device is plughw:0,0
Stream parameters are 48000Hz, S16_LE, 4 channels
Sine wave rate is 440.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2 to 8192
Period size range from 1 to 512
Periods = 4
Buffer time size 2525
To choose buffer_size = 8192
To choose period_size = 2048
was set period_size = 512
was set buffer_size = 8192
  0 - Front Left
  1 - Front Right
  3 - Rear Right
  2 - Rear Left
Time per period = 11.854851
  0 - Front Left
  1 - Front Right
  3 - Rear Right
  2 - Rear Left
Time per period = 11.987920
  0 - Front Left

The 10 bands graphical equalizer in vortexcontrol show peak value at
500Hz band when speaker-test is testing the front left and front right,
no value when speaker-test is testing rear left and rear right.
(Front/Rear channels are all correct)

As there is no option to let "speaker-test" to run for a specified
number of pass and stop, it is aborted by Control-C.

When running the "speaker-test -c 4" again, the graphical equalizer show
peak value at 500Hz band only when speaker-test is testing the rear left
and rear right and no value when it is testing the Front Left and
Front Right. (Front/Rear channels are swapped until driver is reloaded).

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


1) Is the FIFO is still suspending not stopped ?












-------------------------------------------------------
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-12  9:27 au8830 - front / rear channels swapped after first play and Surround40 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
  0 siblings, 0 replies; 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

end of thread, other threads:[~2005-03-17  3:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-12  9:27 au8830 - front / rear channels swapped after first play and Surround40 Raymond
2005-03-13  1:10 ` Manuel Jander
2005-03-17  3:23 Raymond

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.