| From 3d073bcb8394c0eb1b8e5632a9f5d27297d80ccd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 28 Oct 2019 09:10:56 +0100 |
| Subject: Revert "ALSA: hda: Flush interrupts on disabling" |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| [ Upstream commit 1a7f60b9df614bb36d14dc0c0bc898a31b2b506f ] |
| |
| This reverts commit caa8422d01e983782548648e125fd617cadcec3f. |
| |
| It turned out that this commit caused a regression at shutdown / |
| reboot, as the synchronize_irq() calls seems blocking the whole |
| shutdown. Also another part of the change about shuffling the call |
| order looks suspicious; the azx_stop_chip() call disables the CORB / |
| RIRB while the others may still need the CORB/RIRB update. |
| |
| Since the original commit itself was a cargo-fix, let's revert the |
| whole patch. |
| |
| Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling") |
| BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205333 |
| BugLinK: https://bugs.freedesktop.org/show_bug.cgi?id=111174 |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Cc: Chris Wilson <chris@chris-wilson.co.uk> |
| Link: https://lore.kernel.org/r/20191028081056.22010-1-tiwai@suse.de |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/hda/hdac_controller.c | 2 -- |
| sound/pci/hda/hda_intel.c | 2 +- |
| 2 files changed, 1 insertion(+), 3 deletions(-) |
| |
| diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c |
| index 3377f0bc28280..778b42ba90b80 100644 |
| --- a/sound/hda/hdac_controller.c |
| +++ b/sound/hda/hdac_controller.c |
| @@ -442,8 +442,6 @@ static void azx_int_disable(struct hdac_bus *bus) |
| list_for_each_entry(azx_dev, &bus->stream_list, list) |
| snd_hdac_stream_updateb(azx_dev, SD_CTL, SD_INT_MASK, 0); |
| |
| - synchronize_irq(bus->irq); |
| - |
| /* disable SIE for all streams */ |
| snd_hdac_chip_writeb(bus, INTCTL, 0); |
| |
| diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c |
| index b42ab80ee6078..96e9b3944b925 100644 |
| --- a/sound/pci/hda/hda_intel.c |
| +++ b/sound/pci/hda/hda_intel.c |
| @@ -1413,9 +1413,9 @@ static int azx_free(struct azx *chip) |
| } |
| |
| if (bus->chip_init) { |
| - azx_stop_chip(chip); |
| azx_clear_irq_pending(chip); |
| azx_stop_all_streams(chip); |
| + azx_stop_chip(chip); |
| } |
| |
| if (bus->irq >= 0) |
| -- |
| 2.20.1 |
| |