On Wednesday 04 August 2010 07:43:44 Takashi Iwai wrote:
At Tue, 3 Aug 2010 23:57:05 +0200,
Ondrej Zary wrote:
Enable burst mode to prevent dropouts during high PCI bus usage. The card is useless in X without this because of dropouts when anything moves on the screen (at least with PCI VGA card). Enabling this is also recommended by the datasheet (page 48).
Signed-off-by: Ondrej Zary linux@rainbow-software.org
Applied now. Thanks.
My previous patch assumed that the DMA mode (represented by 3 lowest bits of ALS4K_GCR99_DMA_EMULATION_CTRL register) is set to the default value 0. If that's not the case, it might result in invalid mode to be set. This v2 patch fixes this potential problem.
Signed-off-by: Ondrej Zary linux@rainbow-software.org
--- linux-2.6.35-rc2/sound/pci/als4000.c 2010-06-06 05:43:24.000000000 +0200 +++ linux-2.6.35-rc3/sound/pci/als4000.c 2010-08-04 20:57:00.000000000 +0200 @@ -763,9 +763,9 @@ static void snd_als4000_configure(struct /* SPECS_PAGE: 39 */ for (i = ALS4K_GCR91_DMA0_ADDR; i <= ALS4K_GCR96_DMA3_MODE_COUNT; ++i) snd_als4k_gcr_write(chip, i, 0); - + /* enable burst mode to prevent dropouts during high PCI bus usage */ snd_als4k_gcr_write(chip, ALS4K_GCR99_DMA_EMULATION_CTRL, - snd_als4k_gcr_read(chip, ALS4K_GCR99_DMA_EMULATION_CTRL)); + (snd_als4k_gcr_read(chip, ALS4K_GCR99_DMA_EMULATION_CTRL) & ~0x07) | 0x04); spin_unlock_irq(&chip->reg_lock); }