ALSA: Fix for reading RIRB buffer on NVIDIA aza controller with AMD Phenom cpu
authorWei Ni <wni@nvidia.com>
Fri, 26 Sep 2008 05:55:56 +0000 (13:55 +0800)
committerJaroslav Kysela <perex@perex.cz>
Fri, 10 Oct 2008 11:41:36 +0000 (13:41 +0200)
When read RIRB buffer immediately after RIRB interrupt received,
sometimes the data will be "0x0". If we wait for some time, the data
in buffer will be correct. This issue only occurred with AMD Phenom cpu.
So we set this "needs_damn_long_delay" flag.

Signed-off-by: Wei Ni <wni@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/pci/hda/hda_intel.c

index 60cc44abf58f2e915444e07ae6029297d622c9e9..9f316c1b2790851d6b6f83bcdd9a1e980ea2315b 100644 (file)
@@ -1220,6 +1220,9 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model,
        if (err < 0)
                return err;
 
+       if (chip->driver_type == AZX_DRIVER_NVIDIA)
+               chip->bus->needs_damn_long_delay = 1;
+
        codecs = audio_codecs = 0;
        max_slots = azx_max_codecs[chip->driver_type];
        if (!max_slots)