From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ondrej Zary Subject: Re: als4000: enable burst mode Date: Wed, 4 Aug 2010 21:08:14 +0200 Message-ID: <201008042108.15858.linux@rainbow-software.org> References: <201008032357.06661.linux@rainbow-software.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail.atlantis.sk (mail1-out1.atlantis.sk [80.94.52.55]) by alsa0.perex.cz (Postfix) with ESMTP id AC6CF24679 for ; Wed, 4 Aug 2010 21:08:24 +0200 (CEST) In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: alsa-devel@alsa-project.org Cc: Takashi Iwai List-Id: alsa-devel@alsa-project.org 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 > > 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-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); } -- Ondrej Zary