mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 02:34:01 +08:00
r8169: don't use MSI-X on RTL8106e
Found the ethernet network on ASUS X441UAR doesn't come back on resume
from suspend when using MSI-X. The chip is RTL8106e - version 39.
[ 21.848357] libphy: r8169: probed
[ 21.848473] r8169 0000:02:00.0 eth0: RTL8106e, 0c:9d:92:32:67:b4, XID
44900000, IRQ 127
[ 22.518860] r8169 0000:02:00.0 enp2s0: renamed from eth0
[ 29.458041] Generic PHY r8169-200:00: attached PHY driver [Generic
PHY] (mii_bus:phy_addr=r8169-200:00, irq=IGNORE)
[ 63.227398] r8169 0000:02:00.0 enp2s0: Link is Up - 100Mbps/Full -
flow control off
[ 124.514648] Generic PHY r8169-200:00: attached PHY driver [Generic
PHY] (mii_bus:phy_addr=r8169-200:00, irq=IGNORE)
Here is the ethernet controller in detail:
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller [10ec:8136]
(rev 07)
Subsystem: ASUSTeK Computer Inc. RTL810xE PCI Express Fast
Ethernet controller [1043:200f]
Flags: bus master, fast devsel, latency 0, IRQ 16
I/O ports at e000 [size=256]
Memory at ef100000 (64-bit, non-prefetchable) [size=4K]
Memory at e0000000 (64-bit, prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: r8169
Kernel modules: r8169
Falling back to MSI fixes the issue.
Fixes: 6c6aa15fde
("r8169: improve interrupt handling")
Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0b3e776e2e
commit
7bb05b85bc
@ -7071,17 +7071,20 @@ static int rtl_alloc_irq(struct rtl8169_private *tp)
|
|||||||
{
|
{
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
|
|
||||||
if (tp->mac_version <= RTL_GIGA_MAC_VER_06) {
|
switch (tp->mac_version) {
|
||||||
|
case RTL_GIGA_MAC_VER_01 ... RTL_GIGA_MAC_VER_06:
|
||||||
RTL_W8(tp, Cfg9346, Cfg9346_Unlock);
|
RTL_W8(tp, Cfg9346, Cfg9346_Unlock);
|
||||||
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) {
|
break;
|
||||||
|
case RTL_GIGA_MAC_VER_39 ... RTL_GIGA_MAC_VER_40:
|
||||||
/* This version was reported to have issues with resume
|
/* This version was reported to have issues with resume
|
||||||
* from suspend when using MSI-X
|
* from suspend when using MSI-X
|
||||||
*/
|
*/
|
||||||
flags = PCI_IRQ_LEGACY | PCI_IRQ_MSI;
|
flags = PCI_IRQ_LEGACY | PCI_IRQ_MSI;
|
||||||
} else {
|
break;
|
||||||
|
default:
|
||||||
flags = PCI_IRQ_ALL_TYPES;
|
flags = PCI_IRQ_ALL_TYPES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user