summaryrefslogtreecommitdiffstats
path: root/sound/hda/hdac_controller.c
diff options
context:
space:
mode:
authorBard Liao <yung-chuan.liao@linux.intel.com>2019-05-26 18:58:35 +0200
committerTakashi Iwai <tiwai@suse.de>2019-05-28 07:52:02 +0200
commit5e13cf6cd64c6a4c15a4426e6f1683093a495d9a (patch)
tree644dda75ab513b3aa84a15d64f7a2d7e4adfa0be /sound/hda/hdac_controller.c
parentALSA: hda: move polling_mode flag to struct hdac_bus (diff)
downloadlinux-5e13cf6cd64c6a4c15a4426e6f1683093a495d9a.tar.xz
linux-5e13cf6cd64c6a4c15a4426e6f1683093a495d9a.zip
ALSA: hda: add polling mode in snd_hdac_bus_get_response
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>
Diffstat (limited to '')
-rw-r--r--sound/hda/hdac_controller.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
index b2e9454f5816..a16ac31bda83 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
@@ -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)