• Jian-Hong Pan's avatar
    r8169: Enable MSI-X on RTL8106e · d49c88d7
    Jian-Hong Pan authored
    Originally, we have an issue where r8169 MSI-X interrupt is broken after
    S3 suspend/resume on RTL8106e of ASUS X441UAR.
    
    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: [40] Power Management version 3
    	Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
    	Capabilities: [70] Express Endpoint, MSI 01
    	Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
    	Capabilities: [d0] Vital Product Data
    	Capabilities: [100] Advanced Error Reporting
    	Capabilities: [140] Virtual Channel
    	Capabilities: [160] Device Serial Number 01-00-00-00-36-4c-e0-00
    	Capabilities: [170] Latency Tolerance Reporting
    	Kernel driver in use: r8169
    	Kernel modules: r8169
    
    We found the all of the values in PCI BAR=4 of the ethernet adapter
    become 0xFF after system resumes.  That breaks the MSI-X interrupt.
    Therefore, we can only fall back to MSI interrupt to fix the issue at
    that time.
    
    However, there is a commit which resolves the drivers getting nothing in
    PCI BAR=4 after system resumes.  It is 04cb3ae895d7 "PCI: Reprogram
    bridge prefetch registers on resume" by Daniel Drake.
    
    After apply the patch, the ethernet adapter works fine before suspend
    and after resume.  So, we can revert the workaround after the commit
    "PCI: Reprogram bridge prefetch registers on resume" is merged into main
    tree.
    
    This patch reverts commit 7bb05b85
    "r8169: don't use MSI-X on RTL8106e".
    
    Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=201181
    Fixes: 7bb05b85 ("r8169: don't use MSI-X on RTL8106e")
    Signed-off-by: default avatarJian-Hong Pan <jian-hong@endlessm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d49c88d7
r8169.c 185 KB