Skip to content

Conversation

@opsiff
Copy link
Member

@opsiff opsiff commented Dec 5, 2025

git log --oneline v6.6.117429..v6.6.117329 | wc
100 886 7223

Handle:
drm/amdgpu: Respect max pixel clock for HDMI and DVI-D (v2)

  • riscv: bpf: Fix uninitialized symbol 'retval_off'
  • bpf: Clear pfmemalloc flag when freeing all fragments
  • nvme: Use non zero KATO for persistent discovery connections
  • uprobe: Do not emulate/sstep original instruction when ip is changed
  • hwmon: (asus-ec-sensors) increase timeout for locking ACPI mutex
  • hwmon: (dell-smm) Add support for Dell OptiPlex 7040
  • tools/cpupower: Fix incorrect size in cpuidle_state_disable()
  • tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage
  • tools/power x86_energy_perf_policy: Enhance HWP enable
  • tools/power x86_energy_perf_policy: Prefer driver HWP limits
  • mfd: stmpe: Remove IRQ domain upon removal
  • mfd: stmpe-i2c: Add missing MODULE_LICENSE
  • mfd: madera: Work around false-positive -Wininitialized warning
  • mfd: da9063: Split chip variant reading in two bus transactions
  • drm/amd/display: ensure committing streams is seamless
  • drm/amd/display: Increase AUX Intra-Hop Done Max Wait Duration
  • drm/amd/display: add more cyan skillfish devices
  • drm/amd/display: update dpp/disp clock from smu clock table
  • drm/amd/pm: Use cached metrics data on aldebaran
  • drm/amd/pm: Use cached metrics data on arcturus
  • drm/amdgpu/jpeg: Hold pg_lock before jpeg poweroff
  • drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf()
  • PCI: Disable MSI on RDC PCI to PCIe bridges
  • selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8
  • selftests/net: Ensure assert() triggers in psock_tpacket.c
  • wifi: rtw88: sdio: use indirect IO for device registers before power-on
  • drm/amdkfd: return -ENOTTY for unsupported IOCTLs
  • media: pci: ivtv: Don't create fake v4l2_fh
  • media: amphion: Delete v4l2_fh synchronously in .release()
  • drm/tidss: Use the crtc_ timings when programming the HW*
  • drm/bridge: cdns-dsi: Fix REG_WAKEUP_TIME value
  • drm/bridge: cdns-dsi: Don't fail on MIPI_DSI_MODE_VIDEO_BURST
  • drm/tidss: Set crtc modesetting parameters with adjusted mode
  • media: i2c: Kconfig: Ensure a dependency on HAVE_CLK for VIDEO_CAMERA_SENSOR
  • x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall
  • net: stmmac: Check stmmac_hw_setup() in stmmac_resume()
  • ice: Don't use %pK through printk or tracepoints
  • thunderbolt: Use is_pciehp instead of is_hotplug_bridge
  • powerpc/eeh: Use result of error_detected() in uevent
  • s390/pci: Use pci_uevent_ers() in PCI recovery
  • bridge: Redirect to backup port when port is administratively down
  • scsi: ufs: host: mediatek: Fix auto-hibern8 timer configuration
  • scsi: ufs: host: mediatek: Assign power mode userdata before FASTAUTO mode change
  • scsi: ufs: host: mediatek: Change reset sequence for improved stability
  • scsi: ufs: host: mediatek: Fix invalid access in vccqx handling
  • net: ipv6: fix field-spanning memcpy warning in AH output
  • media: imon: make send_packet() more robust
  • drm/bridge: display-connector: don't set OP_DETECT for DisplayPorts
  • drm/amdkfd: Handle lack of READ permissions in SVM mapping
  • iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before setting register
  • iio: adc: imx93_adc: load calibrated values even calibration failed
  • usb: gadget: f_ncm: Fix MAC assignment NCM ethernet
  • char: misc: Make misc_register() reentry for miscdevice who wants dynamic minor
  • char: misc: Does not request module for miscdevice with dynamic minor
  • net: When removing nexthops, don't call synchronize_net if it is not necessary
  • net: stmmac: Correctly handle Rx checksum offload errors
  • net: Call trace_sock_exceed_buf_limit() for memcg failure with SK_MEM_RECV.
  • PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call
  • ALSA: usb-audio: Add validation of UAC2/UAC3 effect units
  • rds: Fix endianness annotation for RDS_MPATH_HASH
  • scsi: mpi3mr: Fix controller init failure on fault during queue creation
  • scsi: pm80xx: Fix race condition caused by static variables
  • extcon: adc-jack: Fix wakeup source leaks on device unbind
  • remoteproc: wkup_m3: Use devm_pm_runtime_enable() helper
  • net: phy: fixed_phy: let fixed_phy_unregister free the phy_device
  • fuse: zero initialize inode private data
  • drm/amdkfd: fix vram allocation failure for a special case
  • drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption
  • media: fix uninitialized symbol warnings
  • drm/amdgpu: Respect max pixel clock for HDMI and DVI-D (v2)
  • mips: lantiq: danube: add missing properties to cpu node
  • mips: lantiq: danube: add model to EASY50712 dts
  • mips: lantiq: danube: add missing device_type in pci node
  • mips: lantiq: xway: sysctrl: rename stp clock
  • mips: lantiq: danube: rename stp node on EASY50712 reference board
  • crypto: qat - use kcalloc() in qat_uclo_map_objs_from_mof()
  • scsi: pm8001: Use int instead of u32 to store error codes
  • ptp: Limit time setting of PTP clocks
  • dmaengine: sh: setup_xref error handling
  • dmaengine: mv_xor: match alloc_wc and free_wc
  • dmaengine: dw-edma: Set status for callback_result
  • drm/msm/dsi/phy: Toggle back buffer resync after preparing PLL
  • drm/msm/dsi/phy_7nm: Fix missing initial VCO rate
  • drm/amdgpu: Allow kfd CRIU with no buffer objects
  • ipv6: Add sanity checks on ipv6_devconf.rpl_seg_enabled
  • net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms
  • media: adv7180: Add missing lock in suspend callback
  • media: adv7180: Do not write format to device in set_fmt
  • media: adv7180: Only validate format in querystd
  • media: verisilicon: Explicitly disable selection api ioctls for decoders
  • ALSA: usb-audio: apply quirk for MOONDROP Quark2
  • net: call cond_resched() less often in __release_sock()
  • smsc911x: add second read of EEPROM mac when possible corruption seen
  • iommu/amd: Skip enabling command/event buffers for kdump
  • iommu/apple-dart: Clear stream error indicator bits for T8110 DARTs
  • drm/amd: add more cyan skillfish PCI ids
  • drm/amdgpu: don't enable SMU on cyan skillfish
  • drm/amdgpu: add support for cyan skillfish gpu_info
  • usb: gadget: f_hid: Fix zero length packet transfer
  • usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget

Summary by Sourcery

Rebase the Deepin 6.6.y kernel to a newer 6.6.117 upstream point, picking up a broad set of driver, networking, media, and tooling fixes and small feature updates.

Bug Fixes:

  • Correct UFS Mediatek auto-hibernation timers, clock gating delays, UniPro timeout configuration, reset timing, and voltage regulator handling to improve stability.
  • Harden multiple media drivers (imon, adv7180, ivtv, amphion, verisilicon, IR I2C tuners, XC4000/5000) against timeouts, early callbacks, lockless access, uninitialized variables, and improper V4L2 handle lifetimes.
  • Enforce HDMI/DVI TMDS pixel clock limits on AMDGPU connectors and fix display timing / clock table handling in AMD DC and TI DSS pipelines to avoid invalid modes and flicker.
  • Fix IPv6 AH header handling, vsyscall emulation checks, PTP clock set/adjust validation, nexthop removal synchronization, socket backlog scheduling, and RDS multipath hashing endianness issues.
  • Resolve DMA engine and IOMMU corner cases (error paths, callback results, kdump reuse) and add timeout/error propagation in SH/MV/DW EDMA and Apple DART handlers.
  • Improve robustness of several storage and SCSI drivers (NVMe discovery keep-alive, UFS Mediatek calibration and power modes, mpi3mr queue bring-up, pm8001 logging, pm80xx race) under fault conditions.
  • Address USB gadget issues in HID and NCM functions and Cadence CDNSP, including zero-length packet handling, MAC assignment, teardown ordering, and endpoint freeing.
  • Tighten hwmon, PCI, Thunderbolt, EEH, and s390 PCI error reporting and MSI quirks, including new Dell OptiPlex support and RDC bridge MSI disablement.
  • Fix miscdevice registration/deregistration corner cases, FUSE inode private data initialization, and cpupower/cpuidle/x86_energy_perf_policy userspace tool bugs (file modes, sizes, HWP handling).
  • Repair various networking driver issues in stmmac, smsc911x, ice tracing, DSA loop, NCI timeout handling, fixed PHY lifetime, bridge backup-port redirection, and rtw88 SDIO power-on access.
  • Ensure AMDGPU JPEG power-gating, KFD CRIU/ioctl handling, SVM mapping permissions, SDMA unmap timeout calculation, and GPU metrics paths behave correctly for new cyan_skillfish and other ASICs.
  • Refresh validation and quirks in ALSA USB audio for UAC2/3 effect units and specific devices (e.g., MOONDROP Quark2) to avoid parsing errors and mis-calibrated volumes.
  • Prevent use-after-free and race conditions in STPME MFD IRQ domain, ADC drivers (spear, imx93), extcon-adc-jack wakeup, wkup_m3 PM, and pm8001 log access.
  • Increase robustness of tests and selftests (psock_tpacket) by making assertions effective and replacing non-portable word-size macros.

Enhancements:

  • Tune auto-hibern8 and clock gating behavior for specific UFS vendor devices and expose more precise DP training / intra-hop wait times.
  • Prefer updating Intel HWP performance limits via cpufreq sysfs when available, log full MSR changes, and keep bandwidth tables aligned to maximum display clocks.
  • Adjust DP and DSI bridge behavior (Cadence DSI wakeup time, display-connector detection rules) and make DC commit transitions more seamless across topology changes.
  • Improve AMD and Qualcomm display PLL and bandwidth setup for DCN3.0.1 and SDM845 7nm PHY, including proper VCO rate storage and buffer resync controls.
  • Refine AMD DC ASIC ID handling and PCI ID tables to support additional cyan_skillfish variants and their SMU enablement constraints.
  • Clarify and harden various error paths and logging in SCSI (pm8001/pm80xx, mpi3mr), PCI P2PDMA, and XDP frag handling to aid diagnosis and recovery.
  • Use mutex guards and modern helper macros (guard(mutex), FIELD_PREP, timespec64 helpers) across subsystems to simplify state management and avoid subtle races.

Tests:

  • Update networking selftests to avoid glibc-specific __WORDSIZE usage and ensure assertions are active during psock_tpacket runs.

Chenghao Duan and others added 30 commits December 5, 2025 13:46
[ Upstream commit d0bf7cd ]

In the __arch_prepare_bpf_trampoline() function, retval_off is only
meaningful when save_ret is true, so the current logic is correct.
However, in the original logic, retval_off is only initialized under
certain conditions; for example, in the fmod_ret logic, the compiler is
not aware that the flags of the fmod_ret program (prog) have set
BPF_TRAMP_F_CALL_ORIG, which results in an uninitialized symbol
compilation warning.

So initialize retval_off unconditionally to fix it.

Signed-off-by: Chenghao Duan <[email protected]>
Reviewed-by: Pu Lehui <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexei Starovoitov <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit d8d03481351e39548aa67588e1ade864d869ef1f)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 8f12d11 ]

It is possible for bpf_xdp_adjust_tail() to free all fragments. The
kfunc currently clears the XDP_FLAGS_HAS_FRAGS bit, but not
XDP_FLAGS_FRAGS_PF_MEMALLOC. So far, this has not caused a issue when
building sk_buff from xdp_buff since all readers of xdp_buff->flags
use the flag only when there are fragments. Clear the
XDP_FLAGS_FRAGS_PF_MEMALLOC bit as well to make the flags correct.

Signed-off-by: Amery Hung <[email protected]>
Signed-off-by: Martin KaFai Lau <[email protected]>
Reviewed-by: Maciej Fijalkowski <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 9c55db583707b908807547c2d31b4eca3d043f17)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2e48265 ]

The NVMe Base Specification 2.1 states that:

"""
A host requests an explicit persistent connection ... by specifying a
non-zero Keep Alive Timer value in the Connect command.
"""

As such if we are starting a persistent connection to a discovery
controller and the KATO is currently 0 we need to update KATO to a non
zero value to avoid continuous timeouts on the target.

Signed-off-by: Alistair Francis <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Signed-off-by: Keith Busch <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 1a8ca4b9b3e34ab0973159c9d00d56a84ff6e11b)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 4363264 ]

If uprobe handler changes instruction pointer we still execute single
step) or emulate the original instruction and increment the (new) ip
with its length.

This makes the new instruction pointer bogus and application will
likely crash on illegal instruction execution.

If user decided to take execution elsewhere, it makes little sense
to execute the original instruction, so let's skip it.

Acked-by: Oleg Nesterov <[email protected]>
Acked-by: Andrii Nakryiko <[email protected]>
Signed-off-by: Jiri Olsa <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexei Starovoitov <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 1721c2938d0049cda7bfa176e754a54c00df15d1)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 584d55b ]

Some motherboards require more time to acquire the ACPI mutex,
causing "Failed to acquire mutex" messages to appear in the kernel log.
Increase the timeout from 500ms to 800ms to accommodate these cases.

Signed-off-by: Ben Copeland <[email protected]>
Signed-off-by: Eugene Shalygin <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 52d4d91db6f8ae229f79c93aefcc5449c7a85506)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 53d3bd4 ]

The Dell OptiPlex 7040 supports the legacy SMM interface for reading
sensors and performing fan control. Whitelist this machine so that
this driver loads automatically.

Closes: Wer-Wolf/i8kutils#15
Signed-off-by: Armin Wolf <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit efa623350136faa9d18729f490f9bf108b2f9ea7)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 23199d2 ]

Fix incorrect size parameter passed to cpuidle_state_write_file() in
cpuidle_state_disable().

The function was incorrectly using sizeof(disable) which returns the
size of the unsigned int variable (4 bytes) instead of the actual
length of the string stored in the 'value' buffer.

Since 'value' is populated with snprintf() to contain the string
representation of the disable value, we should use the length
returned by snprintf() to get the correct string length for
writing to the sysfs file.

This ensures the correct number of bytes is written to the cpuidle
state disable file in sysfs.

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Kaushlendra Kumar <[email protected]>
Signed-off-by: Shuah Khan <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 5b69364cbef1422a3882a6dbebb3908d1f0700a1)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6212765 ]

The fopen_or_die() function was previously hardcoded
to open files in read-only mode ("r"), ignoring the
mode parameter passed to it. This patch corrects
fopen_or_die() to use the provided mode argument,
allowing for flexible file access as intended.

Additionally, the call to fopen_or_die() in
err_on_hypervisor() incorrectly used the mode
"ro", which is not a valid fopen mode. This is
fixed to use the correct "r" mode.

Signed-off-by: Kaushlendra Kumar <[email protected]>
Signed-off-by: Len Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 91d267901aab12c5d9f2cfba0e7fb9b792c7a6dc)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit c97c057 ]

On enabling HWP, preserve the reserved bits in MSR_PM_ENABLE.

Also, skip writing the MSR_PM_ENABLE if HWP is already enabled.

Signed-off-by: Len Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 941ac2bcb1acba500abc081bb9fcd6152136799f)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2734fdb ]

When we are successful in using cpufreq min/max limits,
skip setting the raw MSR limits entirely.

This is necessary to avoid undoing any modification that
the cpufreq driver makes to our sysfs request.

eg. intel_pstate may take our request for a limit
that is valid according to HWP.CAP.MIN/MAX and clip
it to be within the range available in PLATFORM_INFO.

Signed-off-by: Len Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 5ebb9bc9a662050903d7e8325d509f15946e8414)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 57bf2a3 ]

The IRQ domain is (optionally) added during stmpe_probe, but never removed.
Add the call to stmpe_remove.

Signed-off-by: Alexander Stein <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 784f62e68a6cacdb7de4f26b89b5aee051570987)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 00ea54f ]

This driver is licensed GPL-2.0-only, so add the corresponding module flag.

Signed-off-by: Alexander Stein <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit d9e793728021f1b42af96dbc0555806f551146ce)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 364752a ]

clang-21 warns about one uninitialized variable getting dereferenced
in madera_dev_init:

drivers/mfd/madera-core.c:739:10: error: variable 'mfd_devs' is uninitialized when used here [-Werror,-Wuninitialized]
  739 |                               mfd_devs, n_devs,
      |                               ^~~~~~~~
drivers/mfd/madera-core.c:459:33: note: initialize the variable 'mfd_devs' to silence this warning
  459 |         const struct mfd_cell *mfd_devs;
      |                                        ^
      |                                         = NULL

The code is actually correct here because n_devs is only nonzero
when mfd_devs is a valid pointer, but this is impossible for the
compiler to see reliably.

Change the logic to check for the pointer as well, to make this easier
for the compiler to follow.

Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Richard Fitzgerald <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 830c39871f1679ea9b5dccc5ebded3b158214a75)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 9ac4890 ]

We observed the initial probe of the da9063 failing in
da9063_get_device_type in about 30% of boots on a Xilinx ZynqMP based
board. The problem originates in da9063_i2c_blockreg_read, which uses
a single bus transaction to turn the register page and then read a
register. On the bus, this should translate to a write to register 0,
followed by a read to the target register, separated by a repeated
start. However, we found that after the write to register 0, the
controller sometimes continues directly with the register address of
the read request, without sending the chip address or a repeated start
in between, which makes the read request invalid.

To fix this, separate turning the page and reading the register into
two separate transactions. This brings the initialization code in line
with the rest of the driver, which uses register maps (which to my
knowledge do not use repeated starts after turning the page). This has
been included in our kernel for several months and was recently
included in a shipped product. For us, it reliably fixes the issue,
and we have not observed any new issues.

While the underlying problem is probably with the i2c controller or
its driver, I still propose a change here in the interest of
robustness: First, I'm not sure this issue can be fixed on the
controller side, since there are other issues related to repeated
start which can't (AR# 60695, AR# 61664). Second, similar problems
might exist with other controllers.

Signed-off-by: Jens Kehne <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit f6bea0255090c42d49285638f8c4463080ee3312)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ca74cc4 ]

[Why]
When transitioning between topologies such as multi-display to single
display ODM 2:1, pipes might not be freed before use.

[How]
In dc_commit_streams, commit an additional, minimal transition if
original transition is not seamless to ensure pipes are freed.

Reviewed-by: Alvin Lee <[email protected]>
Signed-off-by: Clay King <[email protected]>
Signed-off-by: Wayne Lin <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit acb3c23080ca3867807cc6909f18fd18a7e5c0ab)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit e3419e1 ]

[WHY]
In the worst case, AUX intra-hop done can take hundreds of milliseconds as
each retimer in a link might have to wait a full AUX_RD_INTERVAL to send
LT abort downstream.

[HOW]
Wait 300ms for each retimer in a link to allow time to propagate a LT abort
without infinitely waiting on intra-hop done.
For no-retimer case, keep the max duration at 10ms.

Reviewed-by: Wenjing Liu <[email protected]>
Signed-off-by: Michael Strauss <[email protected]>
Signed-off-by: Ivan Lipski <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 2728e38ac27ed658d287925bf24c52e4bae96670)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 3cf06bd ]

Add PCI IDs to support display probe for cyan skillfish
family of SOCs.

Acked-by: Harry Wentland <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 8c05069ce157c1eab02e5492d3c8a47996117c3f)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2e72fdb ]

[Why]
The reason some high-resolution monitors fail to display properly
is that this platform does not support sufficiently high DPP and
DISP clock frequencies

[How]
Update DISP and DPP clocks from the smu clock table then DML can
filter these mode if not support.

Reviewed-by: Nicholas Kazlauskas <[email protected]>
Signed-off-by: Paul Hsieh <[email protected]>
Signed-off-by: Roman Li <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit f17f0100f7024647f509058c7c23f6e203892538)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit e87577e ]

Cached metrics data validity is 1ms on aldebaran. It's not reasonable
for any client to query gpu_metrics at a faster rate and constantly
interrupt PMFW.

Signed-off-by: Lijo Lazar <[email protected]>
Reviewed-by: Asad Kamal <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit d4b2c3a3bc01796190913f6dfc286036c350f1b7)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 2f3b1cc ]

Cached metrics data validity is 1ms on arcturus. It's not reasonable for
any client to query gpu_metrics at a faster rate and constantly
interrupt PMFW.

Signed-off-by: Lijo Lazar <[email protected]>
Reviewed-by: Asad Kamal <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit a0a44b1e0873cb0d53a8bfef1865a9befd53e29a)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 0e7581e ]

Acquire jpeg_pg_lock before changes to jpeg power state
and release it after power off from idle work handler.

Signed-off-by: Sathishkumar S <[email protected]>
Reviewed-by: Leo Liu <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit cb02acebd3d0f2e8beff6a28e985633f28cda088)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6510b62 ]

snprintf() returns the number of characters that *would* have been
written, which can overestimate how much you actually wrote to the
buffer in case of truncation. That leads to 'data += this' advancing
the pointer past the end of the buffer and size going negative.

Switching to scnprintf() prevents potential buffer overflows and ensures
consistent behavior when building the output string.

Signed-off-by: Seyediman Seyedarab <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Danilo Krummrich <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit ce054c331334b260e35d65f8c71b9423501a04ae)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ebc7086 ]

RDC PCI to PCIe bridges, present on Vortex86DX3 and Vortex86EX2 SoCs, do
not support MSIs. If enabled, interrupts generated by PCIe devices never
reach the processor.

I have contacted the manufacturer (DM&P) and they confirmed that PCI MSIs
need to be disabled for them.

Signed-off-by: Marcos Del Sol Vives <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit d7f4354d3de955b10eace6a1e0faf66a4aed5568)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit c36748e ]

The `__WORDSIZE` macro, defined in the non-standard `<bits/wordsize.h>`
header, is a GNU extension and not universally available with all
toolchains, such as Clang when used with musl libc.

This can lead to build failures in environments where this header is
missing.

The intention of the code is to determine the bit width of a C `long`.
Replace the non-portable `__WORDSIZE` with the standard and portable
`sizeof(long) * 8` expression to achieve the same result.

This change also removes the inclusion of the now-unused
`<bits/wordsize.h>` header.

Signed-off-by: Wake Liu <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 517abdc57cfbcb467b0aed5c6d264932b4453e34)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit bc4c0a4 ]

The get_next_frame() function in psock_tpacket.c was missing a return
statement in its default switch case, leading to a compiler warning.

This was caused by a `bug_on(1)` call, which is defined as an
`assert()`, being compiled out because NDEBUG is defined during the
build.

Instead of adding a `return NULL;` which would silently hide the error
and could lead to crashes later, this change restores the original
author's intent. By adding `#undef NDEBUG` before including <assert.h>,
we ensure the assertion is active and will cause the test to abort if
this unreachable code is ever executed.

Signed-off-by: Wake Liu <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit da9d28d7934279a32921c1fd439888503fc4d997)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 58de1f9 ]

The register REG_SYS_CFG1 is used to determine chip basic information
as arguments of following flows, such as download firmware and load PHY
parameters, so driver read the value early (before power-on).

However, the direct IO is disallowed before power-on, or it causes wrong
values, which driver recognizes a chip as a wrong type RF_1T1R, but
actually RF_2T2R, causing driver warns:

  rtw88_8822cs mmc1:0001:1: unsupported rf path (1)

Fix it by using indirect IO before power-on.

Reported-by: Piotr Oniszczuk <[email protected]>
Closes: https://lore.kernel.org/linux-wireless/[email protected]/T/#t
Suggested-by: Bitterblue Smith <[email protected]>
Tested-by: Piotr Oniszczuk <[email protected]>
Reviewed-by: Martin Blumenstingl <[email protected]>
Signed-off-by: Ping-Ke Shih <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 153353da60d0d0f2516a473a924cd03517f90a4e)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 57af162 ]

Some kfd ioctls may not be available depending on the kernel version the
user is running, as such we need to report -ENOTTY so userland can
determine the cause of the ioctl failure.

Signed-off-by: Geoffrey McRae <[email protected]>
Acked-by: Alex Deucher <[email protected]>
Reviewed-by: Felix Kuehling <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit b567d1c40c70e5019eeb68683991a515ffb998aa)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit cc6e8d1 ]

The ivtv driver has a structure named ivtv_open_id that models an open
file handle for the device. It embeds a v4l2_fh instance for file
handles that correspond to a V4L2 video device, and stores a pointer to
that v4l2_fh in struct ivtv_stream to identify which open file handle
owns a particular stream.

In addition to video devices, streams can be owned by ALSA PCM devices.
Those devices do not make use of the v4l2_fh instance for obvious
reasons, but the snd_ivtv_pcm_capture_open() function still initializes
a "fake" v4l2_fh for the sole purpose of using it as an open file handle
identifier. The v4l2_fh is not properly destroyed when the ALSA PCM
device is closed, leading to possible resource leaks.

Fortunately, the v4l2_fh instance pointed to by ivtv_stream is not
accessed, only the pointer value is used for comparison. Replace it with
a pointer to the ivtv_open_id structure that embeds the v4l2_fh, and
don't initialize the v4l2_fh for ALSA PCM devices.

Signed-off-by: Laurent Pinchart <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 48bb7f8ab9841cdb9b0bd27c9c1e73658bd03286)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 19fb9c5 ]

The v4l2_fh initialized and added in vpu_v4l2_open() is delete and
cleaned up when the last reference to the vpu_inst is released. This may
happen later than at vpu_v4l2_close() time.

Not deleting and cleaning up the v4l2_fh when closing the file handle to
the video device is not ideal, as the v4l2_fh will still be present in
the video device's fh_list, and will store a copy of events queued to
the video device. There may also be other side effects of keeping alive
an object that represents an open file handle after the file handle is
closed.

The v4l2_fh instance is embedded in the vpu_inst structure, and is
accessed in two different ways:

- in vpu_notify_eos() and vpu_notify_source_change(), to queue V4L2
  events to the file handle ; and

- through the driver to access the v4l2_fh.m2m_ctx pointer.

The v4l2_fh.m2m_ctx pointer is not touched by v4l2_fh_del() and
v4l2_fh_exit(). It is set to NULL by the driver when closing the file
handle, in vpu_v4l2_close().

The vpu_notify_eos() and vpu_notify_source_change() functions are called
in vpu_set_last_buffer_dequeued() and vdec_handle_resolution_change()
respectively, only if the v4l2_fh.m2m_ctx pointer is not NULL. There is
therefore a guarantee that no new event will be queued to the v4l2_fh
after vpu_v4l2_close() destroys the m2m_ctx.

The vpu_notify_eos() function is also called from vpu_vb2_buf_finish(),
which is guaranteed to be called for all queued buffers when
vpu_v4l2_close() calls v4l2_m2m_ctx_release(), and will not be called
later.

It is therefore safe to assume that the driver will not touch the
v4l2_fh, except to check the m2m_ctx pointer, after vpu_v4l2_close()
destroys the m2m_ctx. We can safely delete and cleanup the v4l2_fh
synchronously in vpu_v4l2_close().

Signed-off-by: Laurent Pinchart <[email protected]>
Reviewed-by: Ming Qian <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 3f964091abb0797150d2e7a207f2cbea14aa0fba)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 478306e ]

Use the crtc_* fields from drm_display_mode, instead of the "logical"
fields. This shouldn't change anything in practice, but afaiu the crtc_*
fields are the correct ones to use here.

Reviewed-by: Aradhya Bhatia <[email protected]>
Tested-by: Parth Pancholi <[email protected]>
Tested-by: Jayesh Choudhary <[email protected]>
Reviewed-by: Devarsh Thakkar <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Tomi Valkeinen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 105ed683b4008724bb702f49ae53556cef35803b)
Signed-off-by: Wentao Guan <[email protected]>
edumazet and others added 9 commits December 5, 2025 13:51
[ Upstream commit 16c6101 ]

While stress testing TCP I had unexpected retransmits and sack packets
when a single cpu receives data from multiple high-throughput flows.

super_netperf 4 -H srv -T,10 -l 3000 &

Tcpdump extract:

 00:00:00.000007 IP6 clnt > srv: Flags [.], seq 26062848:26124288, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 61440
 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26124288:26185728, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 61440
 00:00:00.000005 IP6 clnt > srv: Flags [P.], seq 26185728:26243072, ack 1, win 66, options [nop,nop,TS val 651460834 ecr 3100749131], length 57344
 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26243072:26304512, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 61440
 00:00:00.000005 IP6 clnt > srv: Flags [.], seq 26304512:26365952, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 61440
 00:00:00.000007 IP6 clnt > srv: Flags [P.], seq 26365952:26423296, ack 1, win 66, options [nop,nop,TS val 651460844 ecr 3100749141], length 57344
 00:00:00.000006 IP6 clnt > srv: Flags [.], seq 26423296:26484736, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 61440
 00:00:00.000005 IP6 clnt > srv: Flags [.], seq 26484736:26546176, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 61440
 00:00:00.000005 IP6 clnt > srv: Flags [P.], seq 26546176:26603520, ack 1, win 66, options [nop,nop,TS val 651460853 ecr 3100749150], length 57344
 00:00:00.003932 IP6 clnt > srv: Flags [P.], seq 26603520:26619904, ack 1, win 66, options [nop,nop,TS val 651464844 ecr 3100753141], length 16384
 00:00:00.006602 IP6 clnt > srv: Flags [.], seq 24862720:24866816, ack 1, win 66, options [nop,nop,TS val 651471419 ecr 3100759716], length 4096
 00:00:00.013000 IP6 clnt > srv: Flags [.], seq 24862720:24866816, ack 1, win 66, options [nop,nop,TS val 651484421 ecr 3100772718], length 4096
 00:00:00.000416 IP6 srv > clnt: Flags [.], ack 26619904, win 1393, options [nop,nop,TS val 3100773185 ecr 651484421,nop,nop,sack 1 {24862720:24866816}], length 0

After analysis, it appears this is because of the cond_resched()
call from  __release_sock().

When current thread is yielding, while still holding the TCP socket lock,
it might regain the cpu after a very long time.

Other peer TLP/RTO is firing (multiple times) and packets are retransmit,
while the initial copy is waiting in the socket backlog or receive queue.

In this patch, I call cond_resched() only once every 16 packets.

Modern TCP stack now spends less time per packet in the backlog,
especially because ACK are no longer sent (commit 133c4c0
"tcp: defer regular ACK while processing socket backlog")

Before:

clnt:/# nstat -n;sleep 10;nstat|egrep "TcpOutSegs|TcpRetransSegs|TCPFastRetrans|TCPTimeouts|Probes|TCPSpuriousRTOs|DSACK"
TcpOutSegs                      19046186           0.0
TcpRetransSegs                  1471               0.0
TcpExtTCPTimeouts               1397               0.0
TcpExtTCPLossProbes             1356               0.0
TcpExtTCPDSACKRecv              1352               0.0
TcpExtTCPSpuriousRTOs           114                0.0
TcpExtTCPDSACKRecvSegs          1352               0.0

After:

clnt:/# nstat -n;sleep 10;nstat|egrep "TcpOutSegs|TcpRetransSegs|TCPFastRetrans|TCPTimeouts|Probes|TCPSpuriousRTOs|DSACK"
TcpOutSegs                      19218936           0.0

Signed-off-by: Eric Dumazet <[email protected]>
Reviewed-by: Kuniyuki Iwashima <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 170bd191fa6c18748771843e1396922865a23b8a)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 6977775 ]

When the EEPROM MAC is read by way of ADDRH, it can return all 0s the
first time. Subsequent reads succeed.

This is fully reproduceable on the Phytec PCM049 SOM.

Re-read the ADDRH when this behaviour is observed, in an attempt to
correctly apply the EEPROM MAC address.

Signed-off-by: Colin Foster <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit a5c425011c3108b496db6a5b8c04a6c753a16024)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 9be15fb ]

After a panic if SNP is enabled in the previous kernel then the kdump
kernel boots with IOMMU SNP enforcement still enabled.

IOMMU command buffers and event buffer registers remain locked and
exclusive to the previous kernel. Attempts to enable command and event
buffers in the kdump kernel will fail, as hardware ignores writes to
the locked MMIO registers as per AMD IOMMU spec Section 2.12.2.1.

Skip enabling command buffers and event buffers for kdump boot as they
are already enabled in the previous kernel.

Reviewed-by: Vasant Hegde <[email protected]>
Tested-by: Sairaj Kodilkar <[email protected]>
Signed-off-by: Ashish Kalra <[email protected]>
Link: https://lore.kernel.org/r/576445eb4f168b467b0fc789079b650ca7c5b037.1756157913.git.ashish.kalra@amd.com
Signed-off-by: Joerg Roedel <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 44a764aec64b3f3235b9cbac2525222f69685418)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ecf6508 ]

These registers exist and at least on the t602x variant the IRQ only
clears when theses are cleared.

Signed-off-by: Hector Martin <[email protected]>
Signed-off-by: Janne Grunau <[email protected]>
Reviewed-by: Sven Peter <[email protected]>
Reviewed-by: Neal Gompa <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Joerg Roedel <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit aa98b4c1f84cee4a1dc962942921aa24187b48c3)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 1e18746 ]

Add additional PCI IDs to the cyan skillfish family.

Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit b17fe7f5a2decb121fac91745f4643e3cd6f3e9e)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit 94bd7bf ]

Cyan skillfish uses different SMU firmware.

Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 65240044398eb236f96225c6750a3af9e9b6617f)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit fa819e3 ]

Some SOCs which are part of the cyan skillfish family
rely on an explicit firmware for IP discovery.  Add support
for the gpu_info firmware.

Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 3c66bc0acc08304961ca0ba98a5aee2c77def074)
Signed-off-by: Wentao Guan <[email protected]>
[ Upstream commit ed6f727 ]

Set the hid req->zero flag of ep0/in_ep to true by default,
then the UDC drivers can transfer a zero length packet at
the end if the hid transfer with size divisible to EPs max
packet size according to the USB 2.0 spec.

Signed-off-by: William Wu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit 38c179c52d22272bd5df9d0b14caa6a2e2e3d3e3)
Signed-off-by: Wentao Guan <[email protected]>
…xit of cdnsp gadget

[ Upstream commit 87c5ff5 ]

In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget
structure (pdev->gadget) was freed before its endpoints.
The endpoints are linked via the ep_list in the gadget structure.
Freeing the gadget first leaves dangling pointers in the endpoint list.
When the endpoints are subsequently freed, this results in a use-after-free.

Fix:
By separating the usb_del_gadget_udc() operation into distinct "del" and
"put" steps, cdnsp_gadget_free_endpoints() can be executed prior to the
final release of the gadget structure with usb_put_gadget().

A patch similar to bb9c74a("usb: dwc3: gadget: Free gadget structure
 only after freeing endpoints").

Signed-off-by: Chen Yufeng <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
(cherry picked from commit ea37884097a0931abb8e11e40eacfb25e9fdb5e9)
Signed-off-by: Wentao Guan <[email protected]>
@sourcery-ai
Copy link

sourcery-ai bot commented Dec 5, 2025

Reviewer's Guide

Kernel rebase to 6.6.117 (part 2) with a large set of upstream backports focused on storage (UFS Mediatek, NVMe), AMD GPU/AMDKFD, media (V4L2 tuners/codecs), DMA/IOMMU, networking (stmmac, bridge, IPv4/IPv6, NFC), USB gadget, hwmon and misc core subsystems, mainly fixing bugs, tightening validation, and improving power/error handling; local changes are mechanical backports of these upstream patches with minimal adaptation.

Sequence diagram for UFS Mediatek link setup and Auto-Hibernate/clock-gating handling

sequenceDiagram
    participant Probe as ufs_mtk_probe
    participant HBA as ufs_hba
    participant Variant as ufs_mtk_host

    Probe->>HBA: ufshcd_alloc_host()
    Probe->>HBA: ufshcd_init()
    Probe->>Variant: ufs_mtk_fixup_dev_quirks(hba)
    activate Variant
    Variant->>Variant: ufs_mtk_vreg_fix_vcc(hba)
    Variant->>Variant: ufs_mtk_vreg_fix_vccqx(hba)
    Variant->>Variant: ufs_mtk_fix_ahit(hba)
    activate Variant
    alt Auto-hibern8 supported
        Variant->>HBA: check dev_info.wmanufacturerid
        alt Samsung
            Variant->>Variant: us = 3500
        else Micron
            Variant->>Variant: us = 2000
        else Other
            Variant->>Variant: us = 1000
        end
        Variant->>Variant: ufs_mtk_us_to_ahit(us)
        Variant->>HBA: hba->ahit = encoded_timer
    end
    Variant->>Variant: ufs_mtk_setup_clk_gating(hba)
    activate Variant
    Variant->>HBA: ufshcd_is_clkgating_allowed(hba)?
    alt Clock gating allowed
        Variant->>HBA: if auto_hibern8 supported and hba->ahit != 0
        Variant->>Variant: decode ah_scale, ah_timer from hba->ahit
        Variant->>Variant: ah_ms = timer * scale / 1000
        Variant->>HBA: clk_gating.delay_ms = max(ah_ms, 10)
    end
    deactivate Variant
    deactivate Variant
    deactivate Variant

    Note over HBA,Variant: Later during power change

    HBA->>Variant: ufs_mtk_pre_pwr_change(hba, ...) 
    activate Variant
    alt FASTAUTO mode and !UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING
        Variant->>HBA: ufshcd_dme_set(PA_PWRMODEUSERDATA0..5,
        Variant->>HBA: ufshcd_dme_set(DME_LocalFC0/TC0/AFC0, default_vals)
    end
    Variant->>HBA: ufshcd_uic_change_pwr_mode(... FASTAUTO ...)
    deactivate Variant

    Note over HBA: Device reset timing change

    HBA->>Variant: ufs_mtk_device_reset(hba)
    activate Variant
    Variant->>Variant: ufs_mtk_device_reset_ctrl(0, res)
    Variant->>HBA: ufshcd_hba_stop(hba)  %% now in middle of reset
    Variant->>Variant: ufs_mtk_device_reset_ctrl(1, res)
    deactivate Variant
Loading

File-Level Changes

Change Details Files
Adjust UFS Mediatek host driver power management, auto-hibernate timer and clock-gating behaviour for better stability and vendor-specific tuning
  • Introduce ufs_mtk_fix_ahit() to program auto-hibernate idle timer (AHIT) per UFS vendor and convert microseconds to register encoding via ufs_mtk_us_to_ahit()
  • Rework ufs_mtk_setup_clk_gating() to derive clk_gating.delay_ms from AHIT under host lock instead of using ufshcd_clkgate_delay_set() directly
  • Set UniPro timeout user data registers in ufs_mtk_pre_pwr_change() unless UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING is set
  • Change device reset flow to stop the HBA after asserting the reset line rather than before, and guard vccqx LPM updates when no vccq/vccq2 regulators are present
  • Invoke the new AHIT fixup from ufs_mtk_fixup_dev_quirks()
drivers/ufs/host/ufs-mediatek.c
Improve robustness and error handling in several media and input USB drivers (imon, adv7180, amphion, ivtv, verisilicon, ir-kbd, tuners)
  • In imon, add timeout to send_packet() completion wait, capture error vs timeout in tx.status, relax early dev_present checks in RX callbacks, and treat some USB errors as terminal without resubmitting URBs
  • In adv7180, rework querystd() to avoid changing standard while streaming, simplify pad format handling, and guard suspend/resume power transitions with the state mutex
  • In amphion V4L2, ensure v4l2_fh_del/exit are called on open error and in close(), not in the generic release path
  • In ivtv, replace v4l2_fh-based stream ownership tracking with ivtv_open_id *id, adjust claim/release/read/irq paths accordingly, and avoid creating fake v4l2_fh for ALSA PCM capture
  • Disable selection ioctls (G/S_SELECTION) for the verisilicon decoder node at registration time
  • Initialize various debug variables to safe defaults in xc4000/xc5000 tuners and ir-kbd-i2c to silence uninitialized warnings
drivers/media/rc/imon.c
drivers/media/i2c/adv7180.c
drivers/media/platform/amphion/vpu_v4l2.c
drivers/media/pci/ivtv/ivtv-fileops.c
drivers/media/pci/ivtv/ivtv-irq.c
drivers/media/pci/ivtv/ivtv-driver.h
drivers/media/pci/ivtv/ivtv-alsa-pcm.c
drivers/media/platform/verisilicon/hantro_v4l2.c
drivers/media/platform/verisilicon/hantro_drv.c
drivers/media/i2c/ir-kbd-i2c.c
drivers/media/tuners/xc5000.c
drivers/media/tuners/xc4000.c
Tighten HDMI/DVI mode validation and clock handling, add support for new AMD "cyan skillfish" variants and improve AMD display/PM logic
  • Introduce amdgpu_max_hdmi_pixel_clock() and use it in amdgpu_connector_dvi_mode_valid() to enforce per-ASIC HDMI TMDS limits and correct DVI single/dual-link bandwidth checks, including EDID HDMI displays
  • Make DC commit_streams() optionally insert a minimal intermediate state if the topology transition is not seamless according to hwss
  • Compute dispclk/dppclk from max values across voltage levels in dcn301 bounding-box and vg clock manager, rather than per-state limits
  • Extend AMDGPU PCI ID tables and DC ASIC parsing with additional cyan skillfish device IDs and a cyan_skillfish_gpu_info firmware, and only enable SMU for cyan skillfish v2 APU variants
  • Use cached metrics table instead of live SMU queries for Arcturus and Aldebaran get_gpu_metrics() to avoid stalling paths
  • In JPEG PG idle work, protect power-gating with jpeg_pg_lock mutex
  • Let AMDKFD allow CRIU with no buffer objects and treat out-of-range IOCTL numbers as -ENOTTY
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
drivers/gpu/drm/amd/display/include/dal_asic_id.h
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h
drivers/gpu/drm/amd/amdkfd/kfd_svm.c
Fix various networking correctness and performance issues (IPv4/v6, TCP backlog processing, bridge, NFC, STMMAC, RDS, nexthop, PTP)
  • Refactor AH IPv6 header saving/restoring in ah6_output/ah6_output_done() using helpers to avoid field-spanning memcpy and handle MIP6 correctly
  • In __release_sock(), reduce cond_resched() frequency by only calling it every 16 backlog packets and keep processing under separate loop; always emit trace_sock_exceed_buf_limit() even for failed allocations
  • Have the bridge redirect to backup port when primary is down or administratively down (not running)
  • Increase NCI_DATA_TIMEOUT to 3000 ms in NFC core and lengthen IPv6 devconf rpl_seg_enabled sysctl with min/max validation (0..1)
  • For STMMAC, treat Rx descriptors with csum_none error as checksum-none and make resume path check stmmac_hw_setup() return value
  • Avoid unnecessary synchronize_net() when removing nexthops with empty grp_list
  • Fix RDS multipath hash to use ntohs(rs_bound_port) for correct endianness
  • In PTP clock, validate settime and offset operations using timespec64_valid_settod and reject invalid times before calling driver ops
net/ipv6/ah6.c
net/core/sock.c
net/bridge/br_forward.c
include/net/nfc/nci_core.h
net/ipv6/addrconf.c
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
net/ipv4/nexthop.c
net/rds/rds.h
drivers/ptp/ptp_clock.c
Improve DMA, IOMMU and PCI robustness (SH/MV DMA, DW eDMA, AMD/Apple IOMMU, MPI3MR, P2PDMA, MSI quirks, Thunderbolt)
  • Change shdma_ops.setup_xfer() and sh_dmae_setup_xfer() to return int and propagate errors from DMAE register programming; in shdma_tx_submit(), on failure, move queued chunks back to free list, reset PM state, and drop runtime PM reference
  • In MV XOR DMA, pair alloc_wc/free_wc by switching the free call to dma_free_wc
  • Add DW eDMA helper to populate callback_result with DMA_TRANS_NOERROR or DMA_TRANS_ABORTED plus residue when transfers complete or abort
  • Skip enabling AMD IOMMU command/event MMIO buffers when running as kdump kernel, while still resetting internal buffers, and for Apple DART T8110, clear per-stream error indicator bits on IRQ
  • In MPI3MR, after creating operational queues, check IOC status and state (READY, no RESET_HISTORY) before declaring success
  • Fix pci_p2pdma_add_resource() to devm_kfree the right pgmap object and add RDC bridge to MSI-disable quirk list; use pdev->is_pciehp instead of is_hotplug_bridge in Thunderbolt and MSI hotplug quirks
  • Extend pci_uevent_ers/pci_uevent_ers() support to s390 and use it in powerpc and s390 EEH paths to signal recovery results
drivers/dma/sh/shdma-base.c
drivers/dma/sh/shdmac.c
drivers/dma/mv_xor.c
drivers/dma/dw-edma/dw-edma-core.c
drivers/iommu/amd/init.c
drivers/iommu/apple-dart.c
drivers/scsi/mpi3mr/mpi3mr_fw.c
drivers/pci/p2pdma.c
drivers/pci/quirks.c
drivers/thunderbolt/tb.c
drivers/pci/pci-driver.c
include/linux/pci.h
arch/powerpc/kernel/eeh_driver.c
arch/s390/pci/pci_event.c
Tighten USB gadget function behaviour and MAC address handling, and improve misc and hwmon drivers
  • In f_hid and f_ncm gadget functions, set req->zero for HID writes and EP0 replies to ensure proper ZLP handling and bind the NCM MAC string at bind time to pick the configured address
  • In cdnsp gadget init/exit, use usb_del_gadget/usb_put_gadget and free endpoints reliably on init failure and shutdown; fix use-after-free by ensuring gadget lifetime is managed
  • Make asus-ec-sensors ACPI mutex timeout more conservative (800 ms) and register Dell OptiPlex 7040 in dell-smm-hwmon DMI table
  • In misc_open(), only request modules for fixed minors (< MISC_DYNAMIC_MINOR) and avoid module loading for fully dynamic minors; in misc_deregister(), reset misc->minor to MISC_DYNAMIC_MINOR after destroying the device
  • In extcon-adc-jack, disable wakeup on remove to avoid wakeup source leaks; ensure stmpe-i2c has a MODULE_LICENSE and stmpe core removes IRQ domain on removal
  • Have smsc911x read MAC ADDRH twice when zero is seen to work around possible invalid first read
drivers/usb/gadget/function/f_hid.c
drivers/usb/gadget/function/f_ncm.c
drivers/usb/cdns3/cdnsp-gadget.c
drivers/hwmon/asus-ec-sensors.c
drivers/hwmon/dell-smm-hwmon.c
drivers/char/misc.c
drivers/extcon/extcon-adc-jack.c
drivers/mfd/stmpe.c
drivers/mfd/stmpe-i2c.c
drivers/net/ethernet/smsc/smsc911x.c
Miscellaneous tooling, BPF, NVMe, vsyscall and other subsystem fixes
  • In cpupower cpuidle library, write the correct number of bytes to the sysfs disable file based on snprintf length, and in x86_energy_perf_policy, fix fopen modes and honor driver-selected HWP min/max when sysfs is used; enable HWP only if not already enabled
  • Clear XDP frag pfmemalloc flag when shrinking fragments to zero and add helper xdp_buff_clear_frag_pfmemalloc()
  • Fix riscv BPF trampoline retval_off initialization to avoid using an uninitialized offset and make MIPS/OF fixed PHY unregister paths not double-free phy_device
  • For NVMe, when reconnecting persistent discovery controllers without a KATO, set a default KATO and restart keep-alive before sending rediscover uevent
  • Relax vsyscall emulation to not rely solely on X86_PF_INSTR by comparing fault address with regs->ip and only WARN if NX is supported and X86_PF_INSTR is not set
  • In uprobes, skip emulating the original instruction if the handler changed instruction_pointer(), avoiding mis-execution after probes that divert control flow
  • Apply audio-class descriptor validation for UAC2/UAC3 effect units in usb-audio validate.c and add a MOONDROP Quark2 volume quirk in mixer.c
  • Adjust dmaengine shdma API and Hantro selection ioctls, and several small cleanups like using scnprintf in nouveau nvkm_snprintbf and initializing madera mfd_devs only when available
tools/power/cpupower/lib/cpuidle.c
tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c
include/net/xdp.h
net/core/filter.c
arch/riscv/net/bpf_jit_comp64.c
drivers/net/phy/fixed_phy.c
drivers/net/mdio/of_mdio.c
drivers/nvme/host/core.c
arch/x86/entry/vsyscall/vsyscall_64.c
kernel/events/uprobes.c
sound/usb/validate.c
sound/usb/mixer.c
drivers/gpu/drm/nouveau/nvkm/core/enum.c
drivers/mfd/madera-core.c

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

* Validates the given display mode on DVI and HDMI connectors,
* including analog signals on DVI-I.
*/
static enum drm_mode_status amdgpu_connector_dvi_mode_valid(struct drm_connector *connector,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)


/* CYAN_SKILLFISH */
{0x1002, 0x13DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},
{0x1002, 0x13F9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

#define KFD_KERNEL_QUEUE_SIZE 2048

#define KFD_UNMAP_LATENCY_MS (4000)
/* KFD_UNMAP_LATENCY_MS is the timeout CP waiting for SDMA preemption. One XCC
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

}

/*
* If not already seamless, make transition seamless by inserting intermediate minimal transition
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

uint8_t sink_status = 0;
uint8_t i;
uint32_t i;
uint8_t lttpr_count = dp_parse_lttpr_repeater_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)

@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from opsiff. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@deepin-ci-robot
Copy link

deepin pr auto review

我来帮你审查这个 git diff,从语法逻辑、代码质量、性能和安全等方面进行分析。

  1. 语法逻辑方面:
  • 大部分修改都遵循了内核代码的规范,没有明显的语法错误
  • 变量命名和函数命名符合规范
  • 错误处理逻辑完整
  1. 代码质量改进:
  • 在 arch/mips/boot/dts/lantiq/danube.dtsi 中添加了必要的设备树属性(#address-cells, #size-cells等),提高了设备树的完整性
  • 在 drivers/gpu/drm/amd/amdgpu/ 相关文件中添加了对新硬件的支持,代码结构清晰
  • 在 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c 中改进了错误处理逻辑
  1. 性能优化:
  • 在 net/core/sock.c 中优化了 __release_sock 函数,通过批量处理和条件调度提高了性能
  • 在 drivers/net/dma 相关驱动中优化了内存管理和中断处理
  1. 安全性改进:
  • 在 drivers/iio/adc/imx93_adc.c 中改进了校准失败的处理逻辑,避免系统崩溃
  • 在 drivers/usb/gadget/function/f_hid.c 中修复了 zero flag 的设置,提高了安全性
  • 在 kernel/events/uprobes.c 中增加了对指令指针的检查,提高了安全性
  1. 具体建议:
  • 在 arch/mips/boot/dts/lantiq/danube.dtsi 中,建议添加更多的注释说明新增属性的作用
  • 在 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 中,建议对新增的 GPU_INFO 固件添加版本检查
  • 在 net/core/sock.c 中,建议对批量处理的数量(15)添加宏定义,提高代码可维护性
  • 在 drivers/usb/gadget/function/f_hid.c 中,建议对 zero flag 的修改添加更详细的注释说明原因
  1. 其他改进建议:
  • 建议在修改硬件相关代码时,添加更多的调试信息,方便问题定位
  • 对于新添加的设备ID,建议添加对应的文档说明
  • 在性能相关的修改中,建议添加性能测试数据作为注释

总体来说,这个 diff 的修改质量较高,涵盖了多个子系统的改进,包括硬件支持、性能优化和安全性增强。建议在提交前进行更充分的测试,特别是新硬件支持部分。

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes and found some issues that need to be addressed.

  • In drivers/char/misc.c, the logic resetting misc->minor in misc_deregister() only triggers when minor > MISC_DYNAMIC_MINOR, which will never reset dynamically allocated minors (== MISC_DYNAMIC_MINOR); consider using >= to ensure dynamic minors are correctly reset after deregistration.
  • In f_ncm.c, ncm_bind() now hard-codes index 1 when assigning ncm_string_defs[1].s = ncm->ethaddr; it would be more robust to use the existing STRING_MAC_IDX constant (as done previously) instead of a literal index to avoid breakage if the enum layout changes.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In drivers/char/misc.c, the logic resetting misc->minor in misc_deregister() only triggers when minor > MISC_DYNAMIC_MINOR, which will never reset dynamically allocated minors (== MISC_DYNAMIC_MINOR); consider using >= to ensure dynamic minors are correctly reset after deregistration.
- In f_ncm.c, ncm_bind() now hard-codes index 1 when assigning ncm_string_defs[1].s = ncm->ethaddr; it would be more robust to use the existing STRING_MAC_IDX constant (as done previously) instead of a literal index to avoid breakage if the enum layout changes.

## Individual Comments

### Comment 1
<location> `drivers/remoteproc/wkup_m3_rproc.c:151-152` </location>
<code_context>
 	}

-	pm_runtime_enable(&pdev->dev);
+	ret = devm_pm_runtime_enable(dev);
+	if (ret < 0)
+		return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
 	ret = pm_runtime_get_sync(&pdev->dev);
</code_context>

<issue_to_address>
**issue (bug_risk):** devm_pm_runtime_enable returns void, assigning to `ret` will not compile

`devm_pm_runtime_enable()` returns `void`, so assigning it to `ret` and checking `ret < 0` is a compile error. If you need an error code, use `pm_runtime_enable()` (which returns `int`) and handle disable in error paths, or stop checking the return value and rely on the devm helper semantics.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copilot finished reviewing on behalf of Avenger-285714 December 5, 2025 06:03
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request backports 100 upstream kernel patches from v6.6.117429 to v6.6.117329 to the Deepin 6.6.y kernel branch. The changes span multiple subsystems with bug fixes, hardware support additions, and stability improvements.

Key changes:

  • Fix critical bugs in networking (IPv6 AH, RDS endianness, socket backlog, bridge forwarding), USB gadget (NCM MAC, HID zero-length packets, cdnsp teardown), and media drivers (imon timeout, ivtv fake v4l2_fh, adv7180 locking)
  • Add hardware support for Dell OptiPlex 7040, MOONDROP Quark2 USB audio, additional AMD cyan_skillfish GPU variants, and RDC PCI bridge MSI quirks
  • Improve stability in SCSI/UFS (Mediatek auto-hibernation, calibration, reset timing), AMDGPU (JPEG power-gating, KFD CRIU/IOCTL handling, display clock tables), and DMA engines (error propagation, callback results)

Reviewed changes

Copilot reviewed 100 out of 100 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/testing/selftests/net/psock_tpacket.c Remove non-portable __WORDSIZE macro, enable assertions
tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c Fix fopen mode, enhance HWP handling, prefer driver limits
tools/power/cpupower/lib/cpuidle.c Fix incorrect size calculation in cpuidle_state_disable
sound/usb/validate.c Add validation for UAC2/UAC3 effect units
sound/usb/mixer.c Add volume quirk for MOONDROP Quark2
net/rds/rds.h Fix endianness in RDS_MPATH_HASH
net/ipv6/ah6.c Fix field-spanning memcpy with helper functions
net/ipv6/addrconf.c Add sanity checks on rpl_seg_enabled sysctl
net/ipv4/nexthop.c Skip synchronize_net when grp_list is empty
net/core/sock.c Call cond_resched less often, fix trace call for memcg
net/core/filter.c Clear pfmemalloc flag when freeing XDP fragments
net/bridge/br_forward.c Check administratively down ports for backup redirection
kernel/events/uprobes.c Skip emulation when IP changed by handler
include/net/xdp.h Add xdp_buff_clear_frag_pfmemalloc helper
include/net/nfc/nci_core.h Increase NCI_DATA_TIMEOUT to 3000ms
include/linux/shdma-base.h Change setup_xfer return type to int
include/linux/pci.h Add S390 to pci_uevent_ers availability
fs/fuse/inode.c Zero initialize all inode private data
drivers/usb/gadget/function/f_ncm.c Fix MAC address assignment timing
drivers/usb/gadget/function/f_hid.c Enable zero-length packet transfers
drivers/usb/cdns3/cdnsp-gadget.c Fix use-after-free in gadget teardown
drivers/ufs/host/ufs-mediatek.c Fix auto-hibernate timer, power mode settings, reset sequence, vccqx handling
drivers/thunderbolt/tb.c Use is_pciehp instead of is_hotplug_bridge
drivers/scsi/pm8001/* Fix race condition with static variables, use int for error codes
drivers/scsi/mpi3mr/mpi3mr_fw.c Check controller state after queue creation
drivers/remoteproc/wkup_m3_rproc.c Use devm_pm_runtime_enable helper
drivers/ptp/ptp_clock.c Validate time settings for PTP clocks
drivers/pci/quirks.c Disable MSI on RDC bridges, use is_pciehp
drivers/pci/pci-driver.c Add S390 support for pci_uevent_ers
drivers/pci/p2pdma.c Fix incorrect pointer in devm_kfree
drivers/nvme/host/core.c Set non-zero KATO for persistent discovery
drivers/net/wireless/realtek/rtw88/sdio.c Use indirect IO before power-on
drivers/net/phy/fixed_phy.c Let fixed_phy_unregister free phy_device
drivers/net/mdio/of_mdio.c Remove duplicate phy_device_free call
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c Check stmmac_hw_setup result, fix Rx checksum handling
drivers/net/ethernet/smsc/smsc911x.c Re-read MAC on corruption
drivers/net/ethernet/intel/ice/* Replace %pK with %p in traces/debug
drivers/net/dsa/dsa_loop.c Remove duplicate phy_device_free
drivers/mfd/stmpe.c Remove IRQ domain on removal
drivers/mfd/stmpe-i2c.c Add missing MODULE_LICENSE
drivers/mfd/madera-core.c Fix false-positive uninitialized warning
drivers/mfd/da9063-i2c.c Split chip variant reading into two transactions
drivers/media/tuners/* Initialize variables to fix uninitialized warnings
drivers/media/rc/imon.c Add timeout to wait_for_completion, handle errors
drivers/media/platform/verisilicon/* Disable selection ioctls for decoders
drivers/media/platform/amphion/vpu_v4l2.c Delete v4l2_fh synchronously in release
drivers/media/pci/ivtv/* Replace fake v4l2_fh with ivtv_open_id
drivers/media/i2c/ir-kbd-i2c.c Initialize variables in ir_key_poll
drivers/media/i2c/adv7180.c Add locking, fix format handling, validate querystd
drivers/media/i2c/Kconfig Add HAVE_CLK dependency for camera sensors
drivers/iommu/apple-dart.c Clear stream error indicator for T8110
drivers/iommu/amd/init.c Skip buffer setup in kdump kernel
drivers/iio/adc/spear_adc.c Mask channel and avg sample bits properly
drivers/iio/adc/imx93_adc.c Load calibration even on failure
drivers/hwmon/dell-smm-hwmon.c Add Dell OptiPlex 7040 support
drivers/hwmon/asus-ec-sensors.c Increase ACPI mutex timeout
drivers/gpu/drm/tidss/* Use crtc_* timing fields
drivers/gpu/drm/nouveau/nvkm/core/enum.c Replace snprintf with scnprintf
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c Toggle buffer resync, store VCO rate
drivers/gpu/drm/bridge/display-connector.c Don't set detect for DisplayPort
drivers/gpu/drm/bridge/cadns-dsi-core.c Fix REG_WAKEUP_TIME, support burst mode
drivers/gpu/drm/amd/pm/swsmu/* Use cached metrics on aldebaran/arcturus
drivers/gpu/drm/amd/display/* Add cyan_skillfish IDs, fix clock tables, ensure seamless commits
drivers/gpu/drm/amd/amdkfd/* Fix CRIU, SVM permissions, IOCTL errors, unmap latency
drivers/gpu/drm/amd/amdgpu/* Hold pg_lock for JPEG, add cyan_skillfish support, fix HDMI/DVI limits
drivers/extcon/extcon-adc-jack.c Fix wakeup source leak
drivers/dma/sh/* Add error handling for setup_xfer
drivers/dma/mv_xor.c Match alloc_wc/free_wc calls
drivers/dma/dw-edma/dw-edma-core.c Set status for callback_result
drivers/crypto/intel/qat/qat_common/qat_uclo.c Use kcalloc for safety
drivers/char/misc.c Fix reentry for dynamic minor devices
arch/x86/entry/vsyscall/vsyscall_64.c Don't require X86_PF_INSTR for emulation
arch/s390/pci/pci_event.c Use pci_uevent_ers in recovery
arch/riscv/net/bpf_jit_comp64.c Fix uninitialized retval_off
arch/powerpc/kernel/eeh_driver.c Use error_detected result in uevent
arch/mips/* Fix Lantiq Danube device tree properties

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

struct clk_limit_table *clk_table = &bw_params->clk_table;
unsigned int i, closest_clk_lvl;
int j;
int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0;
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The variable initialization int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0; sets j = 0, but j is later initialized in line 352 to dcn3_01_soc.num_states - 1 and used in a backward loop. The initial j = 0 is unnecessary since it's overwritten before use and could be misleading.

Suggested change
int j = 0, max_dispclk_mhz = 0, max_dppclk_mhz = 0;
int j, max_dispclk_mhz = 0, max_dppclk_mhz = 0;

Copilot uses AI. Check for mistakes.
Comment on lines +146 to +149
ret = pm_runtime_put(schan->dev);

spin_unlock_irq(&schan->chan_lock);
return ret;
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error path returns the result of pm_runtime_put() instead of the original setup_xfer error code. If pm_runtime_put() succeeds (returns 0), this masks the original setup_xfer failure (which was < 0). The function should return the original setup_xfer error code, not the pm_runtime_put result. Consider: int setup_ret = ret; ret = pm_runtime_put(schan->dev); ... return setup_ret;

Suggested change
ret = pm_runtime_put(schan->dev);
spin_unlock_irq(&schan->chan_lock);
return ret;
{
int setup_ret = ret;
pm_runtime_put(schan->dev);
spin_unlock_irq(&schan->chan_lock);
return setup_ret;
}

Copilot uses AI. Check for mistakes.
* reference voltage do not meet the requirement:
* ADC reference voltage Noise < 1.8V * 1/2^ENOB
* And the resault of ADC is not that accurate.
*/
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in comment: "resault" should be "result".

Copilot uses AI. Check for mistakes.
* stale when we write to MSRs.
* then update via sysfs. The intel_pstate driver may modify (clip)
* this request, say, when HWP_CAP is outside of PLATFORM_INFO limits,
* and the driver-chosen value takes precidence.
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in comment: "precidence" should be "precedence".

Copilot uses AI. Check for mistakes.
/* Skip a special case that allocates VRAM without VA,
* VA will be invalid of 0.
*/
if (!(!args->va_addr && (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) &&
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The condition check here is inverted. The code should skip the special case when args->va_addr is 0 AND the VRAM flag is set. The current double negative !(!args->va_addr && ...) is correct but unnecessarily complex. Consider simplifying to: if ((args->va_addr || !(flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) && interval_tree_iter_first(...)) for better readability.

Suggested change
if (!(!args->va_addr && (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) &&
if ((args->va_addr || !(flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) &&

Copilot uses AI. Check for mistakes.
@opsiff opsiff merged commit 45e7a91 into linux-6.6.y Dec 8, 2025
27 of 28 checks passed
@opsiff opsiff deleted the linux-stable-update-6.6.117-p2 branch December 8, 2025 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.