linux-stable/drivers
Jian-Hong Pan d49c88d767 r8169: Enable MSI-X on RTL8106e
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 7bb05b85bc
"r8169: don't use MSI-X on RTL8106e".

Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=201181
Fixes: 7bb05b85bc ("r8169: don't use MSI-X on RTL8106e")
Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-10-15 21:31:53 -07:00
..
accessibility
acpi
amba
android
ata for-linus-20180920 2018-09-21 09:41:05 +02:00
atm
auxdisplay
base Char/Misc fixes for 4.19-rc7 2018-10-07 08:15:57 +02:00
bcma
block for-linus-20180929 2018-09-29 14:52:14 -07:00
bluetooth Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
bus
cdrom
char
clk
clocksource clocksource/drivers/timer-atmel-pit: Properly handle error cases 2018-09-27 12:01:45 +02:00
connector
cpufreq cpufreq: qcom-kryo: Fix section annotations 2018-09-29 15:01:10 +02:00
cpuidle
crypto Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
dax device-dax: Add missing address_space_operations 2018-09-22 09:07:33 -07:00
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon
firewire
firmware
fmc
fpga fpga: bridge: fix obvious function documentation error 2018-09-30 08:49:55 -07:00
fsi
gnss
gpio gpio: Assign gpio_irq_chip::parents to non-stack pointer 2018-10-10 14:03:27 +02:00
gpu single nouveau runtime reference and mst change 2018-10-12 12:53:48 +02:00
hid HID: intel-ish-hid: Enable Ice Lake mobile 2018-09-24 11:46:15 +02:00
hsi
hv Drivers: hv: vmbus: Use get/put_cpu() in vmbus_connect() 2018-09-30 08:49:55 -07:00
hwmon Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
hwspinlock
hwtracing intel_th: pci: Add Ice Lake PCH support 2018-09-18 16:08:38 +02:00
i2c i2c: designware: Call i2c_dw_clk_rate() only when calculating timings 2018-10-05 13:40:05 +02:00
ide
idle
iio
infiniband Final for-rc pull request for 4.19 2018-10-12 12:53:06 +02:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-10-12 12:35:02 +02:00
iommu iommu/amd: Clear memory encryption mask from physical address 2018-10-05 10:20:24 +02:00
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
media media: v4l: event: Prevent freeing event subscriptions while accessed 2018-10-03 06:32:51 -04:00
memory
memstick
message
mfd
misc
mmc mmc: block: avoid multiblock reads for the last sector in SPI mode 2018-10-09 09:23:00 +02:00
mtd
mux mux: adgs1408: use the correct MODULE_LICENSE 2018-10-12 17:36:39 +02:00
net r8169: Enable MSI-X on RTL8106e 2018-10-15 21:31:53 -07:00
nfc
ntb
nubus
nvdimm
nvme nvme: properly propagate errors in nvme_mpath_init 2018-09-25 16:21:40 -07:00
nvmem
of Devicetree fixes for 4.19, part 3: 2018-10-10 22:09:02 +02:00
opp
oprofile
parisc
parport
pci Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
pcmcia
perf
phy
pinctrl pinctrl: mcp23s08: fix irq and irqchip setup order 2018-10-10 14:36:35 +02:00
platform mfd: cros-ec: copy the whole event in get_next_event_xfer 2018-10-09 20:57:30 -07:00
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: fix crash caused by null driver data 2018-09-20 09:04:51 -07:00
remoteproc
reset
rpmsg
rtc
s390 s390 fixes for 4.19-rc8 2018-10-10 08:44:35 +02:00
sbus oradax: remove redundant null check before kfree 2018-10-07 22:42:00 -07:00
scsi scsi: qedi: Initialize the stats mutex lock 2018-09-28 02:28:05 -04:00
sfi
sh
siox
slimbus
sn
soc soc: fsl: qman_portals: defer probe after qman's probe 2018-10-01 17:47:43 -05:00
soundwire
spi spi: Fixes for v4.19 2018-09-28 18:04:06 -07:00
spmi
ssb
staging media fixes for v4.19-rc5 2018-09-24 15:16:41 +02:00
target scsi: target: iscsi: Use bin2hex instead of a re-implementation 2018-09-21 12:32:30 -04:00
tc
tee
thermal
thunderbolt thunderbolt: Initialize after IOMMUs 2018-10-02 10:51:16 -07:00
tty Fix open-coded multiplication arguments to allocators 2018-10-11 19:10:30 +02:00
uio
usb usb: xhci-mtk: resume USB3 roothub first 2018-10-01 17:59:02 -07:00
uwb
vfio
vhost
video mach64: detect the dot clock divider correctly on sparc 2018-10-07 22:41:05 -07:00
virt
virtio
visorbus
vlynq
vme
w1
watchdog
xen xen: issue warning message when out of grant maptrack entries 2018-09-19 11:27:42 -04:00
zorro
Kconfig
Makefile