|
From: | Raymond |
Subject: | [Openvortex-dev] Re: Re: au8830 - front / rear channels swapped after first play and Surround40 |
Date: | Thu, 17 Mar 2005 11:23:08 +0800 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.4.3) Gecko/20041005 |
> 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.
[Prev in Thread] | Current Thread | [Next in Thread] |