aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2018-08-12 07:26:26 -0400
committerDavid S. Miller <davem@davemloft.net>2018-08-13 11:58:00 -0400
commit7c53a722459c1d6ffb0f5b2058c06ca8980b8600 (patch)
tree3b05cf7445fa1cbab42c887249690b5697d82b2f
parent9ebcc22c1be80b090983caff218932593a1d58a7 (diff)
r8169: don't use MSI-X on RTL8168g
There have been two reports that network doesn't come back on resume from suspend when using MSI-X. Both cases affect the same chip version (RTL8168g - version 40), on different systems. Falling back to MSI fixes the issue. Even though we don't really have a proof yet that the network chip version is to blame, let's disable MSI-X for this version. Reported-by: Steve Dodd <steved424@gmail.com> Reported-by: Lou Reed <gogen@disroot.org> Tested-by: Steve Dodd <steved424@gmail.com> Tested-by: Lou Reed <gogen@disroot.org> Fixes: 6c6aa15fdea5 ("r8169: improve interrupt handling") Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/realtek/r8169.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 14d185b10cda..0d9c3831838f 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -7076,6 +7076,11 @@ static int rtl_alloc_irq(struct rtl8169_private *tp)
7076 RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable); 7076 RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable);
7077 RTL_W8(tp, Cfg9346, Cfg9346_Lock); 7077 RTL_W8(tp, Cfg9346, Cfg9346_Lock);
7078 flags = PCI_IRQ_LEGACY; 7078 flags = PCI_IRQ_LEGACY;
7079 } else if (tp->mac_version == RTL_GIGA_MAC_VER_40) {
7080 /* This version was reported to have issues with resume
7081 * from suspend when using MSI-X
7082 */
7083 flags = PCI_IRQ_LEGACY | PCI_IRQ_MSI;
7079 } else { 7084 } else {
7080 flags = PCI_IRQ_ALL_TYPES; 7085 flags = PCI_IRQ_ALL_TYPES;
7081 } 7086 }