From: Mika Westerberg <mika.westerb...@linux.intel.com>

commit 9f9666e65359d5047089aef97ac87c50f624ecb0 upstream.

When resuming from system sleep states the driver issues following
warning on Intel hardware:

  thunderbolt 0000:07:00.0: interrupt for TX ring 0 is already enabled

The reason for this is that the commit in question did not mask the ring
interrupt on Intel hardware leaving the interrupt active. Fix this by
masking it also in Intel hardware.

Reported-by: beld zhang <beldzh...@gmail.com>
Tested-by: beld zhang <beldzh...@gmail.com>
Closes: https://lore.kernel.org/linux-usb/zhkw5neabmfhg...@debian.me/
Fixes: c4af8e3fecd0 ("thunderbolt: Clear registers properly when auto clear 
isn't in use")
Cc: sta...@vger.kernel.org
Reviewed-by: Mario Limonciello <mario.limoncie...@amd.com>
Signed-off-by: Mika Westerberg <mika.westerb...@linux.intel.com>
Signed-off-by: Yongxin Liu <yongxin....@windriver.com>
---
 drivers/thunderbolt/nhi.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c
index 0a525f44ea31..4a6a3802d7e5 100644
--- a/drivers/thunderbolt/nhi.c
+++ b/drivers/thunderbolt/nhi.c
@@ -56,9 +56,14 @@ static int ring_interrupt_index(const struct tb_ring *ring)
 
 static void nhi_mask_interrupt(struct tb_nhi *nhi, int mask, int ring)
 {
-       if (nhi->quirks & QUIRK_AUTO_CLEAR_INT)
-               return;
-       iowrite32(mask, nhi->iobase + REG_RING_INTERRUPT_MASK_CLEAR_BASE + 
ring);
+       if (nhi->quirks & QUIRK_AUTO_CLEAR_INT) {
+               u32 val;
+
+               val = ioread32(nhi->iobase + REG_RING_INTERRUPT_BASE + ring);
+               iowrite32(val & ~mask, nhi->iobase + REG_RING_INTERRUPT_BASE + 
ring);
+       } else {
+               iowrite32(mask, nhi->iobase + 
REG_RING_INTERRUPT_MASK_CLEAR_BASE + ring);
+       }
 }
 
 static void nhi_clear_interrupt(struct tb_nhi *nhi, int ring)
-- 
2.39.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#12776): 
https://lists.yoctoproject.org/g/linux-yocto/message/12776
Mute This Topic: https://lists.yoctoproject.org/mt/99615835/21656
Group Owner: linux-yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to