ALSA: hda: add polling mode in snd_hdac_bus_get_response
authorBard Liao <yung-chuan.liao@linux.intel.com>
Sun, 26 May 2019 16:58:35 +0000 (00:58 +0800)
committerTakashi Iwai <tiwai@suse.de>
Tue, 28 May 2019 05:52:02 +0000 (07:52 +0200)
Polling mode is useful if a machine somehow missed an expected IRQ.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/hdac_controller.c

index b2e9454..a16ac31 100644 (file)
@@ -239,6 +239,8 @@ int snd_hdac_bus_get_response(struct hdac_bus *bus, unsigned int addr,
        timeout = jiffies + msecs_to_jiffies(1000);
 
        for (loopcounter = 0;; loopcounter++) {
+               if (bus->polling_mode)
+                       snd_hdac_bus_update_rirb(bus);
                spin_lock_irq(&bus->reg_lock);
                if (!bus->rirb.cmds[addr]) {
                        if (res)