]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ALSA: hda/tegra: Program WAKEEN register for Tegra
authorMohan Kumar <mkumard@nvidia.com>
Tue, 25 Aug 2020 05:24:15 +0000 (10:54 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Sep 2020 11:47:46 +0000 (13:47 +0200)
[ Upstream commit 23d63a31d9f44d7daeac0d1fb65c6a73c70e5216 ]

The WAKEEN bits are used to indicate which bits in the
STATESTS register may cause wake event during the codec
state change request. Configure the WAKEEN register for
the Tegra to detect the wake events.

Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Acked-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/20200825052415.20626-3-mkumard@nvidia.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/pci/hda/hda_tegra.c

index e5191584638abb817e1d6ade1776b15f6ad7f280..e378cb33c69dfcda0df7677744fdba6b4105a055 100644 (file)
@@ -169,6 +169,10 @@ static int __maybe_unused hda_tegra_runtime_suspend(struct device *dev)
        struct hdac_bus *bus = azx_bus(chip);
 
        if (chip && chip->running) {
+               /* enable controller wake up event */
+               azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) |
+                          STATESTS_INT_MASK);
+
                azx_stop_chip(chip);
                synchronize_irq(bus->irq);
                azx_enter_link_reset(chip);
@@ -191,6 +195,9 @@ static int __maybe_unused hda_tegra_runtime_resume(struct device *dev)
        if (chip && chip->running) {
                hda_tegra_init(hda);
                azx_init_chip(chip, 1);
+               /* disable controller wake up event*/
+               azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) &
+                          ~STATESTS_INT_MASK);
        }
 
        return 0;