[alsa-devel] [PATCH] ALSA au88x0: Fix IRQ fifo error and channels swap of 4 channels playback
[PATCH ] ALSA au88x0 - Fix IRQ fifo error and channels swap of 4 channels playback
- Fix IRQ fifo error when playing stereo by set stereo flag of fifo control This also fix the swap of front and rear channels on au8830
Hi,
thanks a lot. I tried your attached patch to 2.6.39 and in compiles and works OK as far as I can tell. I have not tested with 4 channel items though.
Best Regards, Manuel
On Fri, Jan 6, 2012 at 3:22 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
[PATCH ] ALSA au88x0 - Fix IRQ fifo error and channels swap of 4 channels playback
- Fix IRQ fifo error when playing stereo by set stereo flag of fifo control
This also fix the swap of front and rear channels on au8830
2012/1/6, Manuel Jander manuel.jander@gmail.com:
Hi,
thanks a lot. I tried your attached patch to 2.6.39 and in compiles and works OK as far as I can tell. I have not tested with 4 channel items though.
Best Regards, Manuel
On Fri, Jan 6, 2012 at 3:22 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
[PATCH ] ALSA au88x0 - Fix IRQ fifo error and channels swap of 4 channels playback
- Fix IRQ fifo error when playing stereo by set stereo flag of fifo
control This also fix the swap of front and rear channels on au8830
The patch only fix "IRQ fifo error"
Still need the following patch to fix the channel swaping of 4 channels playback
Is there any reason to use vortex_adbdma_pausefifo() instead of vortex_adbdma_stopfifo() for SNDRV_PCM_TRIGGER_STOP event ?
Refer to page 28 of 6167465
Stereo flag 505(i) may be set or reset appropriately, depending on the type of DMA channel ... 505(c) The channel valid flag indicates that the particular has been activated and the appropriate sub-buffer table 380, FIFO control register 505 and FIFO 306 are active
[PATCH ALSA] Au88x0 - Fix channels swapping of 4 channels playback
- Fix channels swapping of 4 channels playback by using vortex_adbdma_stopfifo instead of vortex_adbdma_pausefifo for SNDRV_PCM_TRIGGER_STOP event
At Sat, 7 Jan 2012 15:05:37 +0800, Raymond Yau wrote:
2012/1/6, Manuel Jander manuel.jander@gmail.com:
Hi,
thanks a lot. I tried your attached patch to 2.6.39 and in compiles and works OK as far as I can tell. I have not tested with 4 channel items though.
Best Regards, Manuel
On Fri, Jan 6, 2012 at 3:22 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
[PATCH ] ALSA au88x0 - Fix IRQ fifo error and channels swap of 4 channels playback
- Fix IRQ fifo error when playing stereo by set stereo flag of fifo
control This also fix the swap of front and rear channels on au8830
The patch only fix "IRQ fifo error"
Still need the following patch to fix the channel swaping of 4 channels playback
Is there any reason to use vortex_adbdma_pausefifo() instead of vortex_adbdma_stopfifo() for SNDRV_PCM_TRIGGER_STOP event ?
Refer to page 28 of 6167465
Stereo flag 505(i) may be set or reset appropriately, depending on the type of DMA channel ... 505(c) The channel valid flag indicates that the particular has been activated and the appropriate sub-buffer table 380, FIFO control register 505 and FIFO 306 are active
[PATCH ALSA] Au88x0 - Fix channels swapping of 4 channels playback
- Fix channels swapping of 4 channels playback by using vortex_adbdma_stopfifo instead of vortex_adbdma_pausefifo for SNDRV_PCM_TRIGGER_STOP event
OK, now applied both patches. Let me know if anything gets wrong.
thanks,
Takashi
Hi,
I can't remember why "pause fifo" is being called instead of "stop fifo". If using the latter fixes channel swap, then I would guess that the "stop" operation ensures that the DMA starts at an appropriate aligned address, thus avoiding shifted data when the interleaved channel get multiplexed to the AC97 codec. But that is just a wild guess.
Best Regards, and thanks a lot, all of you. Manuel
On Sun, Jan 8, 2012 at 2:40 PM, Takashi Iwai tiwai@suse.de wrote:
At Sat, 7 Jan 2012 15:05:37 +0800, Raymond Yau wrote:
2012/1/6, Manuel Jander manuel.jander@gmail.com:
Hi,
thanks a lot. I tried your attached patch to 2.6.39 and in compiles and works OK as far as I can tell. I have not tested with 4 channel items though.
Best Regards, Manuel
On Fri, Jan 6, 2012 at 3:22 AM, Raymond Yau superquad.vortex2@gmail.com wrote:
[PATCH ] ALSA au88x0 - Fix IRQ fifo error and channels swap of 4 channels playback
- Fix IRQ fifo error when playing stereo by set stereo flag of fifo
control This also fix the swap of front and rear channels on au8830
The patch only fix "IRQ fifo error"
Still need the following patch to fix the channel swaping of 4 channels playback
Is there any reason to use vortex_adbdma_pausefifo() instead of vortex_adbdma_stopfifo() for SNDRV_PCM_TRIGGER_STOP event ?
Refer to page 28 of 6167465
Stereo flag 505(i) may be set or reset appropriately, depending on the type of DMA channel ... 505(c) The channel valid flag indicates that the particular has been activated and the appropriate sub-buffer table 380, FIFO control register 505 and FIFO 306 are active
[PATCH ALSA] Au88x0 - Fix channels swapping of 4 channels playback
- Fix channels swapping of 4 channels playback by
using vortex_adbdma_stopfifo instead of vortex_adbdma_pausefifo for SNDRV_PCM_TRIGGER_STOP event
OK, now applied both patches. Let me know if anything gets wrong.
thanks,
Takashi
2012/1/9, Manuel Jander manuel.jander@gmail.com:
Hi,
I can't remember why "pause fifo" is being called instead of "stop fifo". If using the latter fixes channel swap, then I would guess that the "stop" operation ensures that the DMA starts at an appropriate aligned address, thus avoiding shifted data when the interleaved channel get multiplexed to the AC97 codec. But that is just a wild guess.
Best Regards, and thanks a lot, all of you. Manuel
Once, channel swap does not occur for the four channels playback.
Another patch for au88x0
- add PCM Playback Volume for subdevices using internal hardware mixer of au88x0
- Reduce the number of subdevices from 32 to 16 since number of audio streams also depend of the number of sample rate converters NR_SRC and the number of DMA channels NR_ADB
You can test it with alsa-tools/hwmixvolume
participants (3)
-
Manuel Jander
-
Raymond Yau
-
Takashi Iwai