]> Git Repo - linux.git/commitdiff
ALSA: hda - Switch to polling mode before disabling MSI
authorTakashi Iwai <[email protected]>
Fri, 30 Oct 2009 12:21:49 +0000 (13:21 +0100)
committerTakashi Iwai <[email protected]>
Fri, 30 Oct 2009 12:21:49 +0000 (13:21 +0100)
When any codec communication error happens, try to switch to the polling
mode first before turning off MSI.  MSI gets more stable nowadays, thus
we should keep it on as much as possible.

Signed-off-by: Takashi Iwai <[email protected]>
sound/pci/hda/hda_intel.c

index d0effa3563e209d85cd21dc4bd713ad6e158e30e..a0eface6e99af462f9af8626c7be51cf6620ca71 100644 (file)
@@ -677,6 +677,14 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus,
                }
        }
 
+       if (!chip->polling_mode) {
+               snd_printk(KERN_WARNING SFX "azx_get_response timeout, "
+                          "switching to polling mode: last cmd=0x%08x\n",
+                          chip->last_cmd[addr]);
+               chip->polling_mode = 1;
+               goto again;
+       }
+
        if (chip->msi) {
                snd_printk(KERN_WARNING SFX "No response from codec, "
                           "disabling MSI: last cmd=0x%08x\n",
@@ -692,14 +700,6 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus,
                goto again;
        }
 
-       if (!chip->polling_mode) {
-               snd_printk(KERN_WARNING SFX "azx_get_response timeout, "
-                          "switching to polling mode: last cmd=0x%08x\n",
-                          chip->last_cmd[addr]);
-               chip->polling_mode = 1;
-               goto again;
-       }
-
        if (chip->probing) {
                /* If this critical timeout happens during the codec probing
                 * phase, this is likely an access to a non-existing codec
This page took 0.055793 seconds and 4 git commands to generate.