← Back to archive

Daily update · Aug 7–8, 2026

Mainline driver fixes: AMD GPU, hwmon, watchdogs, and pinctrl

A bug-fix-heavy day: amdgpu JPEG resets and coredump hardening, hwmon correctness fixes, watchdog teardown fixes, and a locally triggerable amxdna crash fix.

In brief

Today's mainline commits are almost entirely driver bug fixes rather than new features. AMD GPU work dominates, covering JPEG engine recovery, command-submission validation, crash-dump allocation, and display/teardown follow-ups, while hwmon, watchdog, Qualcomm pinctrl, ATA, and amxdna drivers also receive corrections.

Bug fixes

amdgpu: JPEG reset fixes in DPG mode

In dynamic power-gating (DPG) mode, the JPEG engine's queue-reset path only cleared a power-gating bit and never reset a hung JPEG core, so recovery could time out. These patches temporarily force the static power-gating path so the stop/start sequence power-cycles the block, matching the v4.0 reset code.

Why it matters: More reliable recovery from hung JPEG engines on affected AMD GPUs.

c87801f545da4301e60e406cd2dc81ed5191

amdgpu: command submission, coredump, and gfx12 hardening

Amdgpu gets several reliability fixes: oversized command buffers (IBs) are now rejected using per-ring packet limits, user-queue creation is serialized against GPU resets so MES timeouts don't fail valid creates, gfx12 reads the TRUNCATE_COORD_MODE register to report the conformant texture-coordinate flag, gmc12.1 TLB invalidation gains a semaphore and fixes an MMHUB0/1 typo, and coredump ring buffers are allocated per ring with vmalloc fallback so large dumps no longer fail as a single huge allocation. A lockdep false-positive in amdgpu_lockdep_init is also fixed.

Why it matters: Targets hangs, crashes, and missing crash-dump data on newer AMD GPUs, and restores a userspace-visible conformance flag on gfx12.

2d69604b4d0bcda6ab11c1a2384c1d907eebb77a725e50c8fd37f9dd5b5ab88a5a43c070e40ff9840fa85227c2c77c38

amdgpu display, teardown, and radeon fixes

Display and teardown paths get fixes: Cyan Skillfish disables DP audio spread-spectrum compensation because the hardware doesn't actually downspread, DCE110 checks that its timing-generator ops exist to avoid a NULL dereference on Southern Islands when turning off HDMI, self-refresh exit is allowed while entry is blocked, and the aperture iounmap is no longer skipped on device removal, which had left stale WB mappings that broke re-probe. A prior 'aperture mapping leak' fix is reverted because devres LIFO teardown could unmap the aperture before IP fini callbacks used it. The old radeon driver also restores hardware polling in fence_is_signaled, fixing a performance regression.

Why it matters: Avoids display-off crashes on older GPUs, re-probe failures, and a performance regression in radeon.

ff209cd04845b96c529cd2553141e3d61469f9e5f51549008099bd0864655f08eee9c3fb

Other DRM fixes (Panthor, V3D, Xe, ps8640)

Panthor and the shared GEM shmem helper now check VMA boundaries before installing PMD (2 MiB) huge-page mappings, avoiding a VM_BUG_ON for out-of-range faults; Panthor also skips zero-sized firmware sections instead of keeping NULL entries that crash reload and unplug. The ps8640 DisplayPort bridge propagates AUX transfer register errors, the V3D driver serializes its scheduler timeout handlers because a timeout on any queue triggers a global reset, and two Xe fixes cover a memory leak in exec-queue hang-replay state and missing RCS/CCS yield-policy application for SR-IOV virtual functions.

Why it matters: Mostly crash and hang fixes for Arm GPUs (Panthor, V3D), Intel Xe, and the ps8640 bridge chip.

2b8f13d3c7e2e0d2b5902c5c617bbd08714820697ecb299c4da94744707bc5f500161709d1643db3b037

pmbus core and LM25066 fixes

PMBus is a protocol for power-supply monitoring chips. The core driver now takes locks during probe-time SMBALERT mask setup and debugfs init, and fixes a type confusion in its notification loop where attributes could be misread as a different struct. The LM25066 driver fixes 32-bit overflow when scaling current/power coefficients for large shunt-resistor values from device tree.

Why it matters: Prevents races, crashes, and wrong current/power readings on supported PMBus devices.

71638a45685259bd68ab05a80dabe8a56f77

Corsair PSU, LTC4282, and other hwmon fixes

Corsair PSU fixes cover a possible out-of-bounds string read in debugfs, a missing lock that allowed debugfs reads to land between another reader's rail-select and value read (reporting the wrong rail), and wrong decoding of negative temperatures in Linear11 format. The NZXT Smart2 driver now propagates initialization failures, ADS7828 properly gets and enables its external voltage-reference regulator, and LTC4282 gets fixes for a 32-bit overflow in maximum power, negative current limits wrapping to large values, and device-tree property parsing that checked the wrong variable.

Why it matters: Avoids wrong readings, hangs, and rare out-of-bounds access on these sensor and PSU devices.

d533882ce10636c4d73ce05d2da6050809d4c6c4234928d2fddb5ceaf901edd11a943357e253dd5f9f6d335698fd7f60

Watchdog fixes

Three watchdog driver fixes: atcwdt200 returns a proper error code when the watchdog is already enabled at probe instead of a bogus enum value, bd96801 computes heartbeat timeout limits correctly for watchdogs enabled at probe (the previous math used wrong multipliers), and at91sam9_wdt uses timer_shutdown_sync() on teardown so the ping callback can't rearm the timer after driver memory is freed.

Why it matters: Prevents probe failures, misconfigured watchdog timeouts, and use-after-free on teardown.

8d2b10eef6f31246aa2b6ccc8444d66aa6b6

Qualcomm pinctrl fixes

Pinctrl drivers describe how each GPIO pin can be muxed to different functions. On IPQ9650, two audio MCLK groups pointed at the wrong GPIO, making those mux selections fail; they're corrected to gpio39. On IPQ806x, the GPIO function and the PCIe reset function are now marked as GPIO-mode functions, matching other Qualcomm drivers, so strict pinmux checks don't reject valid device-tree configurations.

Why it matters: Restores audio MCLK muxing on some IPQ9650 boards and prevents pinmux rejections on IPQ806x.

4a2e2c563b0e687f39faccbafd4676095650

ATA fixes

libata-core adds a quirk disabling link power management (LPM) for the WDC WD141KFGX-68FH9N0 drive after a user bug report, and the pata_sl82c105 driver reads the PCI bridge revision before dropping its reference, fixing a use-after-free.

Why it matters: Avoids LPM problems on that WDC drive and a potential crash on sl82c105 PATA systems.

3971921a05537700a31039cd

amxdna accelerator crash fixes

Two fixes for the AMD amxdna AI-accelerator driver. One removes a manual vm_ops->close() call on error paths that could underflow reference counts when the VMA is later torn down. The other fixes a locally triggerable BUG_ON: an unprivileged process could mmap a GEM object, call madvise(MADV_DONTNEED), then access the memory to hit a kernel assertion and crash the system.

Why it matters: Fixes crash bugs on systems using this accelerator, including one a local user could trigger.

8d51e0fd3e694a19f7ab5972

Source commits45 entries +
617bbd087148

drm/shmem_helper: Check VMA boundaries for PMD mappings

Christian A. Ehrhardt · Jun 22, 2026 · 1 files

e0d2b5902c5c

drm/panthor: Check VMA boundaries for PMD mappings

Christian A. Ehrhardt · Jun 23, 2026 · 1 files

c5f500161709

drm/xe: Fix memory leak in exec_queue_set_hang_replay_state()

Michał Winiarski · Jun 24, 2026 · 1 files

d1643db3b037

drm/xe/uc: Apply RCS/CCS yield policy to SR-IOV VFs

Marcin Bernatowicz · Jul 9, 2026 · 1 files

4a2e2c563b0e

pinctrl: qcom: ipq9650: fix audio_sec_mclk_in1/out1 group pins

Taceddin Sancak · Jul 18, 2026 · 1 files

687f39faccba

pinctrl: qcom: ipq806x: mark gpio as a GPIO pin function

Hans Ulli Kroll · Jul 19, 2026 · 2 files

fd4676095650

pinctrl: qcom: ipq806x: mark pci reset as a GPIO pin function

Hans Ulli Kroll · Jul 19, 2026 · 1 files

8d2b10eef6f3

watchdog: atcwdt200: fix return value when watchdog is enabled

Surendra Singh Chouhan · Jul 23, 2026 · 1 files

20697ecb299c

drm/bridge: ps8640: propagate AUX transfer register errors

Pengpeng Hou · Jul 23, 2026 · 1 files

8d51e0fd3e69

accel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()

Lizhi Hou · Jul 23, 2026 · 1 files

2d69604b4d0b

drm/amdgpu: read TRUNCATE_COORD_MODE on gfx12

Qiang Yu · Jul 23, 2026 · 1 files

59bd68ab05a8

hwmon: (pmbus) Fix type confusion in notification logic

Guenter Roeck · Jul 23, 2026 · 1 files

2b8f13d3c7e2

drm/panthor: skip zero-sized firmware sections

Osama Abdelkader · Jul 24, 2026 · 1 files

5227c2c77c38

drm/amdgpu/gmc12.1: fix MMHUB0 check in pasid tlb flush

Alex Deucher · Jul 28, 2026 · 1 files

4da94744707b

drm/v3d: Serialize the scheduler timeout handlers

Maíra Canal · Jul 29, 2026 · 2 files

b88a5a43c070

drm/amdgpu: Use virtual alloc during coredump

Lijo Lazar · Jul 29, 2026 · 1 files

4301e60e406c

drm/amdgpu: fix JPEG v4.0.5 queue reset failure in DPG mode

Jesse Zhang · Jul 29, 2026 · 1 files

c87801f545da

drm/amdgpu: fix JPEG v5.0.0 queue reset failure in DPG mode

Jesse Zhang · Jul 29, 2026 · 1 files

d2dc81ed5191

drm/amdgpu: fix JPEG v5.3.0 queue reset failure in DPG mode

Jesse Zhang · Jul 29, 2026 · 1 files

5f08eee9c3fb

drm/radeon: restore hardware polling in fence_is_signaled to fix performance regression

Wang Jiang · Jul 29, 2026 · 1 files

e40ff9840fa8

drm/amdgpu: Allocate coredump ring buffers per ring

Lijo Lazar · Jul 29, 2026 · 2 files

fd37f9dd5b5a

drm/amdgpu: reject oversized IBs with per-ring packet limits

Candice Li · Jul 30, 2026 · 1 files

8099bd086465

drm/amd/display: allow self-refresh exit while entry is blocked

David Weber · Jul 30, 2026 · 1 files

b96c529cd255

Revert "drm/amdgpu: fix aperture mapping leak"

Asad Kamal · Jul 30, 2026 · 2 files

f9e5f5154900

drm/amdgpu: fix aperture iounmap skipped on device removal

Asad Kamal · Jul 30, 2026 · 1 files

cda6ab11c1a2

drm/amdgpu/gmc12.1: implement tlb inv semaphore

Alex Deucher · Jul 30, 2026 · 1 files

1246aa2b6ccc

watchdog: bd96801_wdt: Fix timeout for enabled WDG

Matti Vaittinen · Jul 31, 2026 · 1 files

4a19f7ab5972

accel/amdxdna: Fix locally exploitable BUG_ON in amdxdna_insert_pages()

Lizhi Hou · Jul 31, 2026 · 1 files

384c1d907eeb

drm/amdgpu: Fix lockdep false positive in amdgpu_lockdep_init

Vitaly Prosyak · Aug 1, 2026 · 1 files

b77a725e50c8

drm/amdgpu/userq: serialize queue map against GPU reset

Jesse Zhang · Aug 3, 2026 · 1 files

3971921a0553

ata: libata-core: Disable LPM on WDC WD141KFGX-68FH9N0

Niklas Cassel · Aug 3, 2026 · 1 files

71638a456852

hwmon: (pmbus/core) Avoid race condition during probe

Guenter Roeck · Aug 3, 2026 · 1 files

ff209cd04845

drm/amd: Disable DP audio spread spectrum for Cyan Skillfish

Travis K. Bangs · Aug 3, 2026 · 1 files

c6c4234928d2

hwmon: (corsair-psu) Fix linear11 calculation

Guenter Roeck · Aug 4, 2026 · 1 files

d533882ce106

hwmon: (nzxt-smart2) Check return value of init_device() in probe

Qingshuang Fu · Aug 4, 2026 · 1 files

0dabe8a56f77

hwmon: (pmbus/lm25066) Fix PMBus coefficient calculations

Guenter Roeck · Aug 4, 2026 · 1 files

edd11a943357

hwmon: (ltc4282) Avoid overflow in maximum power calculation

Guenter Roeck · Aug 4, 2026 · 1 files

e253dd5f9f6d

hwmon: (ltc4282) Clamp negative current limits

Guenter Roeck · Aug 4, 2026 · 1 files

335698fd7f60

hwmon: (ltc4282) Fix parsing adi,current-limit-sense-microvolt

Guenter Roeck · Aug 5, 2026 · 1 files

3141e3d61469

drm/amd/display: Check for tg ops in dce110_set_avmute

Ray Wu · Aug 5, 2026 · 1 files

fddb5ceaf901

hwmon: (ads7828) Fix external VREF regulator handling

Qingshuang Fu · Aug 5, 2026 · 1 files

36c4d73ce05d

hwmon: (corsair-psu) fix possible out-of-bounds access on missing string termination

Wilken Gottwalt · Aug 5, 2026 · 1 files

8444d66aa6b6

watchdog: at91sam9_wdt: prevent timer rearm during teardown

Hongyan Xu · Aug 6, 2026 · 1 files

7700a31039cd

ata: pata_sl82c105: fix bridge revision use-after-free

Hongyan Xu · Aug 6, 2026 · 1 files

2da6050809d4

hwmon: (corsair-psu) serialize debugfs access against hwmon

Ali Ahmet Memis · Aug 6, 2026 · 1 files