Commit 7c53a722 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

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: default avatarSteve Dodd <steved424@gmail.com>
Reported-by: default avatarLou Reed <gogen@disroot.org>
Tested-by: default avatarSteve Dodd <steved424@gmail.com>
Tested-by: default avatarLou Reed <gogen@disroot.org>
Fixes: 6c6aa15f ("r8169: improve interrupt handling")
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9ebcc22c
...@@ -7076,6 +7076,11 @@ static int rtl_alloc_irq(struct rtl8169_private *tp) ...@@ -7076,6 +7076,11 @@ static int rtl_alloc_irq(struct rtl8169_private *tp)
RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable); RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable);
RTL_W8(tp, Cfg9346, Cfg9346_Lock); RTL_W8(tp, Cfg9346, Cfg9346_Lock);
flags = PCI_IRQ_LEGACY; flags = PCI_IRQ_LEGACY;
} else if (tp->mac_version == RTL_GIGA_MAC_VER_40) {
/* This version was reported to have issues with resume
* from suspend when using MSI-X
*/
flags = PCI_IRQ_LEGACY | PCI_IRQ_MSI;
} else { } else {
flags = PCI_IRQ_ALL_TYPES; flags = PCI_IRQ_ALL_TYPES;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment