linux-stable/drivers
Stefan Mätje 914168e184 PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum
commit 4ec73791a6 upstream.

Due to an erratum in some Pericom PCIe-to-PCI bridges in reverse mode
(conventional PCI on primary side, PCIe on downstream side), the Retrain
Link bit needs to be cleared manually to allow the link training to
complete successfully.

If it is not cleared manually, the link training is continuously restarted
and no devices below the PCI-to-PCIe bridge can be accessed.  That means
drivers for devices below the bridge will be loaded but won't work and may
even crash because the driver is only reading 0xffff.

See the Pericom Errata Sheet PI7C9X111SLB_errata_rev1.2_102711.pdf for
details.  Devices known as affected so far are: PI7C9X110, PI7C9X111SL,
PI7C9X130.

Add a new flag, clear_retrain_link, in struct pci_dev.  Quirks for affected
devices set this bit.

Note that pcie_retrain_link() lives in aspm.c because that's currently the
only place we use it, but this erratum is not specific to ASPM, and we may
retrain links for other reasons in the future.

Signed-off-by: Stefan Mätje <stefan.maetje@esd.eu>
[bhelgaas: apply regardless of CONFIG_PCIEASPM]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
CC: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-25 18:25:32 +02:00
..
accessibility
acpi ACPICA: Namespace: remove address node from global list after method termination 2019-05-16 19:42:30 +02:00
amba
android binder: fix handling of misaligned binder object 2019-05-02 09:40:31 +02:00
ata libata: fix using DMA buffers on stack 2019-05-04 09:15:22 +02:00
atm atm: he: fix sign-extension overflow on large shift 2019-02-27 10:08:05 +01:00
auxdisplay auxdisplay: hd44780: Fix memory leak on ->remove() 2019-04-20 09:15:00 +02:00
base devres: Align data[] to ARCH_KMALLOC_MINALIGN 2019-05-16 19:42:29 +02:00
bcma
block virtio-blk: limit number of hw queues by nr_cpu_ids 2019-05-10 17:53:12 +02:00
bluetooth Bluetooth: btusb: request wake pin with NOAUTOEN 2019-05-08 07:20:51 +02:00
bus bus: arm-cci: remove unnecessary unreachable() 2018-12-01 09:42:49 +01:00
cdrom cdrom: Fix race condition in cdrom_sysctl_register 2019-04-05 22:31:35 +02:00
char ipmi:ssif: compare block number correctly for multi-part return messages 2019-05-21 18:50:19 +02:00
clk clk: rockchip: fix wrong clock definitions for rk3328 2019-05-25 18:25:21 +02:00
clocksource clocksource/drivers/oxnas: Fix OX820 compatible 2019-05-16 19:42:21 +02:00
connector
cpufreq x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
cpuidle cpuidle: big.LITTLE: fix refcount leak 2019-02-12 19:46:03 +01:00
crypto crypto: rockchip - update IV buffer to contain the next IV 2019-05-21 18:50:15 +02:00
dax
dca
devfreq
dio
dma dmaengine: sh: rcar-dmac: With cyclic DMA residue 0 is valid 2019-05-02 09:40:30 +02:00
dma-buf
edac x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
eisa
extcon
firewire
firmware efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted 2019-04-05 22:31:36 +02:00
fmc
fpga fpga: altera-cvp: Fix registration for CvP incapable devices 2019-02-12 19:45:58 +01:00
fsi
gpio gpio: of: Fix of_gpiochip_add() error path 2019-05-04 09:15:22 +02:00
gpu drm/rockchip: fix for mailbox read validation. 2019-05-16 19:42:30 +02:00
hid HID: input: add mapping for "Toggle Display" key 2019-05-16 19:42:20 +02:00
hsi
hv Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup() 2019-05-10 17:53:08 +02:00
hwmon hwmon: (pwm-fan) Disable PWM if fetching cooling data fails 2019-05-16 19:42:19 +02:00
hwspinlock
hwtracing intel_th: msu: Fix single mode with IOMMU 2019-05-25 18:25:19 +02:00
i2c i2c: i2c-stm32f7: Fix SDADEL minimum formula 2019-05-08 07:20:53 +02:00
ide ide: pmac: add of_node_put() 2018-12-21 14:13:14 +01:00
idle x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
iio iio: adc: xilinx: fix potential use-after-free on remove 2019-05-16 19:42:19 +02:00
infiniband RDMA/vmw_pvrdma: Return the correct opcode when creating WR 2019-05-16 19:42:29 +02:00
input Input: elan_i2c - add hardware ID for multiple Lenovo laptops 2019-05-16 19:42:30 +02:00
iommu iommu/tegra-smmu: Fix invalid ASID bits on Tegra30/114 2019-05-25 18:25:22 +02:00
ipack
irqchip MIPS: perf: ath79: Fix perfcount IRQ assignment 2019-05-16 19:42:23 +02:00
isdn mISDN: Check address length before reading address family 2019-05-16 19:42:21 +02:00
leds leds: pwm: silently error out on EPROBE_DEFER 2019-05-16 19:42:29 +02:00
lightnvm
macintosh
mailbox mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue 2019-03-23 14:35:15 +01:00
mcb
md md: add mddev->pers to avoid potential NULL pointer dereference 2019-05-25 18:25:18 +02:00
media media: ov6650: Fix sensor possibly not detected on probe 2019-05-25 18:25:19 +02:00
memory memory: tegra: Fix integer overflow on tick value calculation 2019-05-25 18:25:25 +02:00
memstick memstick: Prevent memstick host from getting runtime suspended during card detection 2019-02-12 19:46:04 +01:00
message
mfd mfd: mc13xxx: Fix a missing check of a register-read failure 2019-02-27 10:08:03 +01:00
misc lkdtm: Add tests for NULL pointer dereference 2019-04-20 09:15:06 +02:00
mmc x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
mtd mtd: spi-nor: intel-spi: Avoid crossing 4K address boundary on read/write 2019-05-21 18:50:17 +02:00
mux
net p54: drop device reference count if fails to enable device 2019-05-25 18:25:19 +02:00
nfc spi: ST ST95HF NFC: declare missing of table 2019-05-16 19:42:24 +02:00
ntb
nubus
nvdimm libnvdimm/btt: Fix a kmemdup failure check 2019-05-16 19:42:20 +02:00
nvme nvme-loop: init nvmet_ctrl fatal_err_work when allocate 2019-05-08 07:20:47 +02:00
nvmem
of OF: properties: add missing of_node_put 2019-01-23 08:09:49 +01:00
oprofile
parisc parisc: Skip registering LED when running in QEMU 2019-05-25 18:25:18 +02:00
parport parport_pc: fix find_superio io compare code, should use equal test. 2019-03-23 14:35:24 +01:00
pci PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum 2019-05-25 18:25:32 +02:00
pcmcia
perf
phy phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs 2019-04-03 06:25:19 +02:00
pinctrl pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins 2019-03-23 14:35:14 +01:00
platform platform/x86: thinkpad_acpi: Disable Bluetooth for some machines 2019-05-16 19:42:19 +02:00
pnp
power power: supply: axp288_charger: Fix unchecked return value 2019-05-21 18:50:13 +02:00
powercap x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
pps
ps3
ptp ptp: Fix pass zero to ERR_PTR() in ptp_clock_register 2019-02-12 19:45:59 +01:00
pwm
rapidio
ras
regulator regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting 2019-04-05 22:31:39 +02:00
remoteproc
reset reset: make device_reset_optional() really optional 2018-12-08 13:03:40 +01:00
rpmsg rpmsg: smd: fix memory leak on channel create 2018-11-13 11:15:12 -08:00
rtc rtc: da9063: set uie_unsupported when relevant 2019-05-08 07:20:49 +02:00
s390 s390: ctcm: fix ctcm_new_device error return code 2019-05-16 19:42:24 +02:00
sbus drivers/sbus/char: add of_node_put() 2018-12-21 14:13:13 +01:00
scsi scsi: raid_attrs: fix unused variable warning 2019-05-16 19:42:27 +02:00
sfi
sh
sn
soc soc/tegra: pmc: Drop locking from tegra_powergate_is_powered() 2019-04-20 09:15:06 +02:00
spi spi: pxa2xx: Setup maximum supported DMA transfer length 2019-03-23 14:35:19 +01:00
spmi
ssb
staging staging: olpc_dcon: add a missing dependency 2019-05-16 19:42:28 +02:00
target scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock 2019-03-23 14:35:20 +01:00
tc TC: Set DMA masks for devices 2018-11-13 11:15:11 -08:00
tee
thermal x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:18:42 +02:00
thunderbolt
tty tty/vt: fix write/write race in ioctl(KDSKBSENT) handler 2019-05-21 18:50:18 +02:00
uio Revert "uio: use request_threaded_irq instead" 2019-02-15 08:09:14 +01:00
usb USB: serial: fix unthrottle races 2019-05-16 19:42:19 +02:00
uwb
vfio vfio/pci: use correct format characters 2019-05-08 07:20:49 +02:00
vhost vhost: reject zero size iova range 2019-04-27 09:35:34 +02:00
video fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting 2019-05-25 18:25:30 +02:00
virt drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl 2019-05-16 19:42:35 +02:00
virtio virtio_pci: fix a NULL pointer reference in vp_del_vqs 2019-05-10 17:53:11 +02:00
vlynq
vme
w1 USB: w1 ds2490: Fix bug caused by improper use of altsetting array 2019-05-08 07:20:46 +02:00
watchdog watchdog: renesas_wdt: don't set divider while watchdog is running 2019-02-12 19:46:03 +01:00
xen xen/pvcalls: remove set but not used variable 'intf' 2019-02-27 10:08:03 +01:00
zorro
Kconfig
Makefile