mirror-linux/drivers/gpu/drm
Ilpo Järvinen 433330fb12 drm/radeon: Use RMW accessors for changing LNKCTL
[ Upstream commit 7189576e8a ]

Don't assume that only the driver would be accessing LNKCTL. ASPM policy
changes can trigger write to LNKCTL outside of driver's control.  And in
the case of upstream bridge, the driver does not even own the device it's
changing the registers for.

Use RMW capability accessors which do proper locking to avoid losing
concurrent updates to the register value.

Suggested-by: Lukas Wunner <lukas@wunner.de>
Fixes: 8a7cd27679 ("drm/radeon/cik: add support for pcie gen1/2/3 switching")
Fixes: b9d305dfb6 ("drm/radeon: implement pcie gen2/3 support for SI")
Link: https://lore.kernel.org/r/20230717120503.15276-7-ilpo.jarvinen@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-09-13 09:42:47 +02:00
..
amd drm/amdgpu: Use RMW accessors for changing LNKCTL 2023-09-13 09:42:47 +02:00
arm drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
armada drm/armada: Fix off-by-one error in armada_overlay_get_property() 2023-09-13 09:42:42 +02:00
aspeed
ast drm/ast: Use drm_aperture_remove_conflicting_pci_framebuffers 2023-08-30 16:10:57 +02:00
atmel-hlcdc
bridge drm: adv7511: Fix low refresh rate register for ADV7533/5 2023-09-13 09:42:40 +02:00
display drm/dp_mst: Clear MSG_RDY flag before sending new message 2023-07-27 08:50:52 +02:00
etnaviv drm/etnaviv: fix dumping of active MMU context 2023-09-13 09:42:39 +02:00
exynos drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl 2023-06-28 11:12:39 +02:00
fsl-dcu drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid() 2022-12-31 13:33:06 +01:00
gma500 drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
gud drm/gud: Fix UBSAN warning 2023-03-10 09:34:33 +01:00
hisilicon drm pull for 6.1-rc1 2022-10-05 11:24:12 -07:00
hyperv drm/hyperv: Fix a compilation issue because of not including screen_info.h 2023-09-13 09:42:36 +02:00
i2c
i810
i915 drm/i915/dgfx: Enable d3cold at s2idle 2023-08-30 16:11:09 +02:00
imx drm/imx/ipuv3: Fix front porch adjustment upon hactive aligning 2023-08-11 12:08:25 +02:00
ingenic drm/ingenic: Fix missing platform_driver_unregister() call in ingenic_drm_init() 2023-01-07 11:11:57 +01:00
kmb
lib
lima drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe() 2023-05-11 23:03:12 +09:00
logicvc
mcde
mediatek drm/mediatek: Fix potential memory leak if vmap() fail 2023-09-13 09:42:43 +02:00
meson drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
mga
mgag200 drm/mgag200: Fix gamma lut not initialized. 2023-05-30 14:03:19 +01:00
msm drm/msm/a2xx: Call adreno_gpu_init() earlier 2023-09-13 09:42:42 +02:00
mxsfb drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC 2023-03-10 09:33:09 +01:00
nouveau drm/nouveau/disp: fix use-after-free in error handling of nouveau_connector_create 2023-08-23 17:52:42 +02:00
omapdrm drm/omap: dsi: Fix excessive stack usage 2023-03-10 09:33:55 +01:00
panel drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01 2023-09-13 09:42:42 +02:00
panfrost drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path 2023-04-13 16:55:35 +02:00
pl111
qxl drm/qxl: fix UAF on handle creation 2023-08-23 17:52:39 +02:00
r128
radeon drm/radeon: Use RMW accessors for changing LNKCTL 2023-09-13 09:42:47 +02:00
rcar-du drm: rcar-du: remove R-Car H3 ES1.* workarounds 2023-08-23 17:52:20 +02:00
rockchip drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
savage
scheduler drm/scheduler: fix fence ref counting 2022-10-25 13:14:36 +02:00
shmobile drm/plane: Remove drm_plane_init() 2022-09-20 09:37:12 +02:00
sis
solomon drm/ssd130x: Init display before the SSD130X_DISPLAY_ON command 2023-02-09 11:28:02 +01:00
sprd
sti drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid() 2022-12-31 13:33:06 +01:00
stm drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
sun4i drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
tdfx
tegra drm/tegra: dpaux: Fix incorrect return value of platform_get_irq 2023-09-13 09:42:41 +02:00
tests drm: test: Fix 32-bit issue in drm_buddy_test 2023-04-26 14:28:36 +02:00
tidss drm: tidss: Fix pixel format definition 2023-03-10 09:33:09 +01:00
tilcdc drm/plane: Remove drm_plane_init() 2022-09-20 09:37:12 +02:00
tiny drm/repaper: Reduce temporary buffer size in repaper_fb_dirty() 2023-09-13 09:42:42 +02:00
ttm drm/ttm: check null pointer before accessing when swapping 2023-08-11 12:08:22 +02:00
tve200
udl drm/udl: Sync pending URBs at the end of suspend 2022-09-10 21:45:53 +02:00
v3d
vboxvideo drm/vboxvideo: fix repeated words in comments 2022-09-17 15:01:24 +02:00
vc4 drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
vgem drm/vgem: add missing mutex_destroy 2023-05-11 23:03:07 +09:00
via drm/via: Add new condition to via_dma_cleanup() 2022-09-07 07:01:16 +02:00
virtio drm/virtio: Pass correct device to dma_sync_sgtable_for_device() 2023-03-22 13:33:39 +01:00
vkms drm/vkms: Fix RGB565 pixel conversion 2023-07-19 16:21:18 +02:00
vmwgfx drm/vmwgfx: Fix shader stage validation 2023-08-30 16:11:09 +02:00
xen
xlnx drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask 2023-09-13 09:42:42 +02:00
Kconfig drm: Disable dynamic debug as broken 2023-02-22 12:59:46 +01:00
Makefile Driver core changes for 6.1-rc1 2022-10-07 17:04:10 -07:00
drm_agpsupport.c
drm_aperture.c drm/aperture: Remove primary argument 2023-08-30 16:10:57 +02:00
drm_atomic.c drm/atomic: Fix potential use-after-free in nonblocking commits 2023-07-23 13:49:50 +02:00
drm_atomic_helper.c drm/atomic: Allow vblank-enabled + self-refresh "disable" 2023-07-23 13:49:39 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c
drm_auth.c
drm_blend.c
drm_bridge.c drm/bridge: Introduce pre_enable_prev_first to alter bridge init order 2023-07-19 16:21:23 +02:00
drm_bridge_connector.c
drm_buddy.c drm: buddy_allocator: Fix buddy allocator init on 32-bit systems 2023-04-26 14:28:36 +02:00
drm_bufs.c
drm_cache.c
drm_client.c drm/client: Send hotplug event after registering a client 2023-07-23 13:49:28 +02:00
drm_client_modeset.c drm/client: Fix memory leak in drm_client_modeset_probe 2023-07-27 08:50:28 +02:00
drm_color_mgmt.c
drm_connector.c drm/connector: send hotplug uevent on connector cleanup 2023-01-07 11:11:56 +01:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c Driver core changes for 6.1-rc1 2022-10-07 17:04:10 -07:00
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c drm: Use original src rect while initializing damage iterator 2022-09-13 14:38:33 +03:00
drm_debugfs.c drm/edid: Handle EDID 1.4 range descriptor h/vfreq offsets 2022-09-02 16:38:51 +03:00
drm_debugfs_crc.c
drm_displayid.c drm/displayid: add displayid_get_header() and check bounds better 2023-05-24 17:32:34 +01:00
drm_dma.c
drm_drv.c drm/drv: Fix potential memory leak in drm_dev_init() 2022-11-10 18:49:01 -05:00
drm_dumb_buffers.c
drm_edid.c drm/edid: fix parsing of 3D modes from HDMI VSDB 2023-03-10 09:34:33 +01:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_dma_helper.c
drm_fb_helper.c drm/client: Send hotplug event after registering a client 2023-07-23 13:49:28 +02:00
drm_file.c drm-misc-next for v6.1: 2022-09-06 10:56:04 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Only advertise supported formats for conversion 2022-10-31 09:50:44 +01:00
drm_fourcc.c drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats 2023-03-10 09:33:08 +01:00
drm_framebuffer.c drm/framebuffer: convert to drm_dbg_kms() 2022-09-28 10:43:30 +02:00
drm_gem.c drm/msm/gem: Prevent blocking within shrinker loop 2023-03-22 13:33:39 +01:00
drm_gem_atomic_helper.c
drm_gem_dma_helper.c
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap() 2023-08-16 18:27:22 +02:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: fix function names in vram helper doc 2023-07-19 16:21:16 +02:00
drm_hashtab.c
drm_internal.h drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() 2022-11-10 18:49:02 -05:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c drm: fix drmm_mutex_init() 2023-05-30 14:03:20 +01:00
drm_memory.c
drm_mipi_dbi.c drm/probe-helper: Add drm_crtc_helper_mode_valid_fixed() 2022-09-12 09:14:26 +02:00
drm_mipi_dsi.c drm/mipi-dsi: Set the fwnode for mipi_dsi_device 2023-05-24 17:32:31 +01:00
drm_mm.c
drm_mode_config.c drm: Fix potential null-ptr-deref due to drmm_mode_config_init() 2023-03-10 09:33:08 +01:00
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c drm/plane-helper: Provide DRM_PLANE_NON_ATOMIC_FUNCS initializer macro 2022-09-20 09:42:31 +02:00
drm_modeset_lock.c
drm_nomodeset.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Change Air's quirk to support Air Plus 2023-06-21 16:00:52 +02:00
drm_pci.c
drm_plane.c drm/plane: Allocate planes with drm_universal_plane_alloc() 2022-09-20 09:41:06 +02:00
drm_plane_helper.c drm/plane-helper: Warn if atomic drivers call non-atomic helpers 2022-09-20 09:42:31 +02:00
drm_prime.c
drm_print.c drm_print: add _ddebug descriptor to drm_*dbg prototypes 2022-09-24 15:02:02 +02:00
drm_privacy_screen.c
drm_privacy_screen_x86.c
drm_probe_helper.c drm/probe-helper: Cancel previous job before starting new one 2023-05-11 23:03:07 +09:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c dma-buf: fix an error pointer vs NULL bug 2023-08-03 10:24:19 +02:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c drm/drm_vma_manager: Add drm_vma_node_allow_once() 2023-02-01 08:34:42 +01:00
drm_writeback.c