mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 10:48:17 +07:00
fa3cdf8d0b
When probing a new MST device, it's not safe to make any assumptions about it's current state. While most well mannered MST hubs will just disable the branching unit on hotplug disconnects, this isn't enough to save us from various other scenarios that might have resulted in something writing to the MST branching unit before we got control of it. This could happen if a previous probe we tried failed, if we're booting in kexec context and the hub is still in the state the last kernel put it in, etc. Luckily; there is no reason we can't just reset the branching unit every time we enable a new topology. So, fix this by resetting it on enabling new topologies to ensure that we always start off with a clean, unmodified topology state on MST sinks. This fixes occasional hard-lockups on my P50's laptop dock (e.g. AUX times out all DPCD trasactions) observed after multiple docks, undocks, and module reloads. Signed-off-by: Lyude Paul <lyude@redhat.com> Cc: stable@vger.kernel.org Cc: Karol Herbst <karolherbst@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> |
||
---|---|---|
.. | ||
dispnv04 | ||
dispnv50 | ||
include | ||
nvif | ||
nvkm | ||
Kbuild | ||
Kconfig | ||
nouveau_abi16.c | ||
nouveau_abi16.h | ||
nouveau_acpi.c | ||
nouveau_acpi.h | ||
nouveau_backlight.c | ||
nouveau_bios.c | ||
nouveau_bios.h | ||
nouveau_bo.c | ||
nouveau_bo.h | ||
nouveau_chan.c | ||
nouveau_chan.h | ||
nouveau_connector.c | ||
nouveau_connector.h | ||
nouveau_crtc.h | ||
nouveau_debugfs.c | ||
nouveau_debugfs.h | ||
nouveau_display.c | ||
nouveau_display.h | ||
nouveau_dma.c | ||
nouveau_dma.h | ||
nouveau_dp.c | ||
nouveau_drm.c | ||
nouveau_drv.h | ||
nouveau_encoder.h | ||
nouveau_fbcon.c | ||
nouveau_fbcon.h | ||
nouveau_fence.c | ||
nouveau_fence.h | ||
nouveau_gem.c | ||
nouveau_gem.h | ||
nouveau_hwmon.c | ||
nouveau_hwmon.h | ||
nouveau_ioc32.c | ||
nouveau_ioctl.h | ||
nouveau_led.c | ||
nouveau_led.h | ||
nouveau_mem.c | ||
nouveau_mem.h | ||
nouveau_nvif.c | ||
nouveau_platform.c | ||
nouveau_platform.h | ||
nouveau_prime.c | ||
nouveau_reg.h | ||
nouveau_sgdma.c | ||
nouveau_ttm.c | ||
nouveau_ttm.h | ||
nouveau_usif.c | ||
nouveau_usif.h | ||
nouveau_vga.c | ||
nouveau_vga.h | ||
nouveau_vmm.c | ||
nouveau_vmm.h | ||
nv04_fbcon.c | ||
nv04_fence.c | ||
nv10_fence.c | ||
nv10_fence.h | ||
nv17_fence.c | ||
nv50_display.h | ||
nv50_fbcon.c | ||
nv50_fence.c | ||
nv84_fence.c | ||
nvc0_fbcon.c | ||
nvc0_fence.c |