linux-stable/drivers
Lyude Paul 0e0d33f50e drm/nouveau/i2c: Enable i2c pads & busses during preinit
commit 7cb95eeea6 upstream.

It turns out that while disabling i2c bus access from software when the
GPU is suspended was a step in the right direction with:

commit 342406e4fb ("drm/nouveau/i2c: Disable i2c bus access after
->fini()")

We also ended up accidentally breaking the vbios init scripts on some
older Tesla GPUs, as apparently said scripts can actually use the i2c
bus. Since these scripts are executed before initializing any
subdevices, we end up failing to acquire access to the i2c bus which has
left a number of cards with their fan controllers uninitialized. Luckily
this doesn't break hardware - it just means the fan gets stuck at 100%.

This also means that we've always been using our i2c busses before
initializing them during the init scripts for older GPUs, we just didn't
notice it until we started preventing them from being used until init.
It's pretty impressive this never caused us any issues before!

So, fix this by initializing our i2c pad and busses during subdev
pre-init. We skip initializing aux busses during pre-init, as those are
guaranteed to only ever be used by nouveau for DP aux transactions.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Tested-by: Marc Meledandri <m.meledandri@gmail.com>
Fixes: 342406e4fb ("drm/nouveau/i2c: Disable i2c bus access after ->fini()")
Cc: stable@vger.kernel.org
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:33:28 +02:00
..
accessibility
acpi x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
amba
android binder: replace "%p" with "%pK" 2019-06-11 12:22:44 +02:00
ata libata: don't request sense data on !ZAC ATA devices 2019-08-04 09:33:22 +02:00
atm atm: he: fix sign-extension overflow on large shift 2019-02-27 10:06:59 +01:00
auxdisplay
base regmap: fix bulk writes on paged registers 2019-08-04 09:33:19 +02:00
bcma
block virtio-blk: limit number of hw queues by nr_cpu_ids 2019-05-10 17:52:09 +02:00
bluetooth Bluetooth: hci_bcsp: Fix memory leak in rx_skb 2019-08-04 09:33:24 +02:00
bus bus: arm-cci: remove unnecessary unreachable() 2018-12-05 19:42:41 +01:00
cdrom cdrom: Fix race condition in cdrom_sysctl_register 2019-04-05 22:29:12 +02:00
char virtio_console: initialize vtermno value for ports 2019-05-31 06:48:29 -07:00
clk clk: sunxi: fix uninitialized access 2019-07-10 09:55:44 +02:00
clocksource clocksource/drivers/exynos_mct: Increase priority over ARM arch timer 2019-08-04 09:33:22 +02:00
connector
cpufreq cpufreq: pmac32: fix possible object reference leak 2019-05-31 06:48:27 -07:00
cpuidle cpuidle: big.LITTLE: fix refcount leak 2019-02-12 19:44:55 +01:00
crypto crypto: crypto4xx - fix a potential double free in ppc4xx_trng_probe 2019-08-04 09:33:26 +02:00
dax
dca
devfreq
dio
dma dmaengine: imx-sdma: fix use-after-free on probe error path 2019-08-04 09:33:14 +02:00
dma-buf
edac EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec 2019-08-04 09:33:23 +02:00
eisa
extcon extcon: arizona: Disable mic detect if running when driver is removed 2019-05-31 06:48:26 -07:00
firewire
firmware efi/libstub: Unify command line param parsing 2019-06-11 12:22:45 +02:00
fmc
fpga
gpio gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants 2019-08-04 09:33:24 +02:00
gpu drm/nouveau/i2c: Enable i2c pads & busses during preinit 2019-08-04 09:33:28 +02:00
hid HID: core: move Usage Page concatenation to Main item 2019-05-31 06:48:29 -07:00
hsi
hv Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened channels 2018-12-29 13:40:15 +01:00
hwmon hwmon: (pmbus/core) Treat parameters as paged if on multiple pages 2019-07-10 09:55:32 +02:00
hwspinlock
hwtracing intel_th: msu: Fix single mode with IOMMU 2019-05-25 18:26:46 +02:00
i2c i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr 2019-06-22 08:17:23 +02:00
ide ide: pmac: add of_node_put() 2018-12-21 14:11:37 +01:00
idle x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
iio iio: common: ssp_sensors: Initialize calculated_time in ssp_common_process_data 2019-05-31 06:48:27 -07:00
infiniband ipoib: correcly show a VF hardware address 2019-08-04 09:33:20 +02:00
input Input: gtco - bounds check collection indent level 2019-08-04 09:33:26 +02:00
iommu iommu/vt-d: Set intel_iommu_gfx_mapped correctly 2019-06-22 08:17:14 +02:00
ipack
irqchip Revert "MIPS: perf: ath79: Fix perfcount IRQ assignment" 2019-06-11 12:22:48 +02:00
isdn mISDN: make sure device name is NUL terminated 2019-06-22 08:17:22 +02:00
leds leds: pca9532: fix a potential NULL pointer dereference 2019-05-04 08:49:10 +02:00
lguest
lightnvm
macintosh
mailbox
mcb
md bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush() 2019-08-04 09:33:23 +02:00
media media: coda: Remove unbalanced and unneeded mutex unlock 2019-08-04 09:33:27 +02:00
memory memory: tegra: Fix integer overflow on tick value calculation 2019-05-25 18:26:49 +02:00
memstick memstick: Prevent memstick host from getting runtime suspended during card detection 2019-02-12 19:44:55 +01:00
message
mfd mfd: omap-usb-tll: Fix register offsets 2019-07-10 09:55:44 +02:00
misc VMCI: Fix integer overflow in VMCI handle arrays 2019-07-21 09:06:03 +02:00
mmc mmc: sdhci-of-esdhc: add erratum eSDHC-A001 and A-008358 support 2019-05-31 06:48:25 -07:00
mtd mtd: rawnand: gpmi: fix MX28 bus master lockup problem 2019-02-15 08:07:37 +01:00
net iwlwifi: pcie: don't service an interrupt that was masked 2019-08-04 09:33:26 +02:00
nfc spi: ST ST95HF NFC: declare missing of table 2019-05-16 19:43:43 +02:00
ntb
nubus
nvdimm libnvdimm/namespace: Fix label tracking error 2019-05-31 06:48:11 -07:00
nvme nvme: Fix u32 overflow in the number of namespace list calculation 2019-07-10 09:55:32 +02:00
nvmem nvmem: core: fix read buffer in place 2019-06-22 08:17:15 +02:00
of of: add helper to lookup compatible child node 2018-12-01 09:44:21 +01:00
oprofile
parisc parisc: Use implicit space register selection for loading the coherence index of I/O pdirs 2019-06-11 12:22:47 +02:00
parport parport: Fix mem leak in parport_register_dev_model 2019-07-10 09:55:29 +02:00
pci PCI: xilinx: Check for __get_free_pages() failure 2019-06-22 08:17:17 +02:00
pcmcia pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges 2018-11-13 11:16:46 -08:00
perf
phy phy: tegra: remove redundant self assignment of 'map' 2019-02-27 10:07:03 +01:00
pinctrl pinctrl: pistachio: fix leaked of_node references 2019-05-31 06:48:18 -07:00
platform platform/x86: intel_pmc_ipc: adding error handling 2019-06-22 08:17:16 +02:00
pnp
power power: supply: sysfs: prevent endless uevent loop with CONFIG_POWER_SUPPLY_DEBUG 2019-05-25 18:26:56 +02:00
powercap x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
pps
ps3
ptp ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl 2019-02-12 19:44:52 +01:00
pwm pwm: Fix deadlock warning when removing PWM device 2019-06-22 08:17:17 +02:00
rapidio rapidio: fix a NULL pointer dereference when create_workqueue() fails 2019-06-22 08:17:11 +02:00
ras
regulator regulator: s2mps11: Fix buck7 and buck8 wrong voltages 2019-08-04 09:33:26 +02:00
remoteproc
reset reset: make device_reset_optional() really optional 2018-12-08 13:05:08 +01:00
rpmsg rpmsg: smd: fix memory leak on channel create 2018-11-13 11:17:03 -08:00
rtc rtc: pcf8523: don't return invalid date when battery is low 2019-06-22 08:17:21 +02:00
s390 s390/qdio: handle PENDING state for QEBSM devices 2019-08-04 09:33:18 +02:00
sbus drivers/sbus/char: add of_node_put() 2018-12-21 14:11:36 +01:00
scsi scsi: mac_scsi: Increase PIO/PDMA transfer length threshold 2019-08-04 09:33:25 +02:00
sfi
sh
sn
soc soc: mediatek: pwrap: Zero initialize rdata in pwrap_init_cipher 2019-06-22 08:17:15 +02:00
spi spi: bitbang: Fix NULL pointer dereference in spi_unregister_master 2019-07-10 09:55:43 +02:00
spmi
ssb ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit 2019-05-31 06:48:12 -07:00
staging media: staging: media: davinci_vpfe: - Fix for memory leak if decoder initialization fails. 2019-08-04 09:33:17 +02:00
target scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock 2019-03-23 13:19:47 +01:00
tc TC: Set DMA masks for devices 2018-11-13 11:17:02 -08:00
thermal drivers: thermal: tsens: Don't print error message on -EPROBE_DEFER 2019-06-22 08:17:13 +02:00
thunderbolt
tty Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled" 2019-07-21 09:06:00 +02:00
uio uio: Fix an Oops on load 2018-11-27 16:09:41 +01:00
usb usb: renesas_usbhs: add a workaround for a race condition of workqueue 2019-07-21 09:06:01 +02:00
uwb
vfio vfio/pci: use correct format characters 2019-05-08 07:19:10 +02:00
vhost vhost_net: disable zerocopy by default 2019-08-04 09:33:20 +02:00
video video: imsttfb: fix potential NULL pointer dereferences 2019-06-22 08:17:17 +02:00
virt drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl 2019-05-16 19:43:47 +02:00
virtio virtio: Honour 'may_reduce_num' in vring_create_virtqueue 2019-04-17 08:36:47 +02:00
vlynq
vme
w1 w1: fix the resume command API 2019-05-31 06:48:15 -07:00
watchdog watchdog: fix compile time error of pretimeout governors 2019-06-22 08:17:14 +02:00
xen xen: let alloc_xenballooned_pages() fail if not enough memory free 2019-08-04 09:33:25 +02:00
zorro
Kconfig
Makefile