| From 8c361a6e3ad46947cf21c07ecaeddd3cc2807fa3 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 25 Aug 2020 10:54:15 +0530 |
| Subject: ALSA: hda/tegra: Program WAKEEN register for Tegra |
| |
| From: Mohan Kumar <mkumard@nvidia.com> |
| |
| [ 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 | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| diff --git a/sound/pci/hda/hda_tegra.c b/sound/pci/hda/hda_tegra.c |
| index e5191584638ab..e378cb33c69df 100644 |
| --- a/sound/pci/hda/hda_tegra.c |
| +++ b/sound/pci/hda/hda_tegra.c |
| @@ -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; |
| -- |
| 2.25.1 |
| |