summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-11bnx2x: fix resource leaks in bnx2x_init_one() error pathsHaoxiang Li
bnx2x_init_one() falls through to the common memory cleanup path for several failures after probe has already acquired additional resources. If register_netdev() fails after bnx2x_set_int_mode(), MSI/MSI-X remains enabled. If later failures happen after bnx2x_iov_init_one(), PF SR-IOV state can be left allocated. Also, failures after bnx2x_vfpf_acquire() must release the PF resources before freeing the VF-PF mailbox allocated by bnx2x_vf_pci_alloc(). Add error labels matching the resource acquisition order so probe failure disables MSI/MSI-X, removes SR-IOV state, releases VF-PF resources, deallocates VF PCI resources, and then frees the common driver memory. Also clear PCI drvdata before freeing the netdev on probe failure. Cc: stable+noautosel@kernel.org # untested fix to unlikely error path Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20260609074610.1968721-1-lihaoxiang@isrc.iscas.ac.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-11PCI: dwc: Avoid dwc_pcie_rasdes_debugfs_deinit() NULL dereference when no ↵Shuvam Pandey
RAS DES capability dwc_pcie_rasdes_debugfs_init() returns success when the controller has no RAS DES capability, leaving pci->debugfs->rasdes_info unset. The common debugfs teardown path still calls dwc_pcie_rasdes_debugfs_deinit(), which dereferences rasdes_info unconditionally. Return early when no RAS DES state was allocated. In that case no RAS DES mutex was initialized, so there is nothing to destroy. Fixes: 4fbfa17f9a07 ("PCI: dwc: Add debugfs based Silicon Debug support for DWC") Signed-off-by: Shuvam Pandey <shuvampandey1@gmail.com> [mani: reworded subject] Signed-off-by: Manivannan Sadhasivam <mani@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://patch.msgid.link/0f97352506d8d813f70f441de4d63fcd5b7d1c3e.1779123847.git.shuvampandey1@gmail.com
2026-06-11net/sched: cls_flow: Dont expose folded kernel pointersJamal Hadi Salim
The flow classifier falls back to addr_fold() for fields that are missing from packet headers. In map mode, userspace controls mask, xor, rshift, addend and divisor, and can observe the resulting classid through class statistics. This allows a tc classifier in a user/network namespace to recover the 32-bit folded value of skb->sk, skb_dst() or skb_nfct(). Align with standard kernel practices for pointer hashing and replace the XOR folding with a keyed siphash (which is cryptographically secure) Fixes: e5dfb815181f ("[NET_SCHED]: Add flow classifier") Reported-by: Kyle Zeng <kylebot@openai.com> Tested-by: Kyle Zeng <kylebot@openai.com> Tested-by: Victor Nogueira <victor@mojatatu.com> Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260610101839.14135-1-jhs@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-11net: dsa: qca8k: fix led devicename when using external mdio busGeorge Moussalem
The qca8k dsa switch can use either an external or internal mdio bus. This depends on whether the mdio node is defined under the switch node itself. Upon registering the internal mdio bus, the internal_mdio_bus of the dsa switch is assigned to this bus. When an external mdio bus is used, the driver still uses the internal_mdio_bus id which is used to create the device names of the leds. This leads to the leds being prefixed with '(efault)' as the internal_mii_bus is null. So let's fix this by adding a null check and use the devicename of the external bus instead when an external bus is configured. Fixes: 1e264f9d2918 ("net: dsa: qca8k: add LEDs basic support") Signed-off-by: George Moussalem <george.moussalem@outlook.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20260608-qca8k-leds-fix-v3-1-a915bb2f37ae@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski
Cross-merge networking fixes after downstream PR (net-7.1-rc8). Conflicts: drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c f67aead16e85 ("net: txgbe: rework service event handling") 57d39faed4c9 ("net: txgbe: improve functions of AML 40G devices") net/rds/info.c 512db8267b73 ("rds: mark snapshot pages dirty in rds_info_getsockopt()") 6e94eeb2a2a6 ("rds: convert to getsockopt_iter") Adjacent changes: include/net/sock.h 1ee90b77b727 ("net: guard timestamp cmsgs to real error queue skbs") f0de88303d5e ("net: make is_skb_wmem() available to modules") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-11Merge tag 'dma-mapping-7.1-2026-06-11' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/mszyprowski/linux Pull dma-mapping fix from Marek Szyprowski: "Three more fixes for the DMA-mapping code, related to PCI P2PDMA, DMA debug and DMA link ranges API (Li RongQing and Jason Gunthorpe)" * tag 'dma-mapping-7.1-2026-06-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mszyprowski/linux: iommu/dma: Do not try to iommu_map a 0 length region in swiotlb dma-debug: fix physical address retrieval in debug_dma_sync_sg_for_device dma-mapping: direct: fix missing mapping for THRU_HOST_BRIDGE segments
2026-06-11Merge tag 'sunxi-dt-for-7.2-2' of ↵Arnd Bergmann
https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt Allwinner device tree changes for 7.2 - Take 2 Some changes for old chips and some for recent ones. - A83T gained the MIPI CSI-2 receiver - overlays enabled for Pine64 boards - D1s / T113 and H616 gained the high speed timer - T113s watchdog enabled (for reboot) - H616 gained proper SRAM regions - A523 family gained EL2 virtual timer interrupt and GPADC - A523 pinctrl IRQ fix * tag 'sunxi-dt-for-7.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: dts: allwinner: a523: Add missing GPIO interrupt arm64: dts: allwinner: a523: add gpadc node arm64: dts: allwinner: Add EL2 virtual timer interrupt ARM: dts: sun8i: a83t: Add MIPI CSI-2 controller node dt-bindings: media: sun6i-a31-isp: Add optional interconnect properties dt-bindings: media: sun6i-a31-csi: Add optional interconnect properties arm64: dts: allwinner: sun50i-a64: Enable DT overlays arm: dts: allwinner: t113s: enable watchdog for reboot arm64: dts: allwinner: h616: add hstimer node riscv: dts: allwinner: d1s-t113: add hstimer node arm64: dts: allwinner: sun50i-h616: Add SRAM nodes Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-11MAINTAINERS: add Onur Özkan as Rust reviewerMiguel Ojeda
Onur has been involved with the Rust for Linux project for a year now. He works on the Tyr driver for Arm Mali GPUs [1] and has been driving the `ww_mutex` series and the SRCU abstractions, as well as improving the core Rust support in several areas. In addition, he is already a reviewer of the `RUST [SYNC]` entry and has been involved with upstream Rust -- for instance, he led the bootstrap team for two years. His expertise with the language and its toolchain will be very useful to have around in the future. Thus add him to the `RUST` entry as reviewer. Link: https://rust-for-linux.com/tyr-gpu-driver [1] Acked-by: Onur Özkan <work@onurozkan.dev> Acked-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260611055538.61425-4-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-06-11MAINTAINERS: add Alexandre Courbot as Rust reviewerMiguel Ojeda
Alexandre has been involved with the Rust for Linux project for more than a year now. He is one of the main contributors to Nova [1], the Rust driver for NVIDIA GPUs, and has authored core Rust infrastructure motivated by that work, such as the `num` module with the `Bounded` integer type, the `register!` and `bitfield!` macros, as well as improvements to abstractions like DMA. He maintains the nova-core driver, as well as the `RUST [NUM]`, `RUST [BITFIELD]` and `RUST [INTEROP]` entries. In addition, he has been very active reviewing Rust code in the mailing list. He also proposed and implemented the `int_lowest_highest_one` feature in the Rust standard library [2], which we should eventually use in the kernel. His experience maintaining a major Rust GPU driver and the abstractions it needs will be very useful to have around in the future. Thus add him to the `RUST` entry as reviewer. Link: https://rust-for-linux.com/nova-gpu-driver [1] Link: https://github.com/rust-lang/rust/issues/145203 [2] Acked-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260611055538.61425-3-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-06-11MAINTAINERS: add Tamir Duberstein as Rust reviewerMiguel Ojeda
Tamir has been involved with the Rust for Linux project for more than a year and a half now. He has been working on improving the integration between the kernel and the Rust language and tooling: he led the effort to replace the kernel's own `CStr` type with the standard library's, and reworked the rust-analyzer integration, among other things. He is already the maintainer of the `RUST [RUST-ANALYZER]` and `XARRAY API [RUST]` entries. In addition, he has been active reviewing Rust code in the mailing list. He is also a long-time contributor to the upstream Rust project, including on topics that matter for the Linux kernel [1]. His expertise with the language and its tooling will be very useful to have around in the future. Thus add him to the `RUST` entry as reviewer. Link: https://github.com/rust-lang/rust/pull/139994 [1] Acked-by: Tamir Duberstein <tamird@kernel.org> Acked-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260611055538.61425-2-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-06-11MAINTAINERS: add Daniel Almeida as Rust reviewerMiguel Ojeda
Daniel has been involved with the Rust for Linux project for more than three years now. He is the lead of the Tyr driver for Arm Mali GPUs [1] and submitted many of the core abstractions that drivers need: the `irq` module, system resources, `IoMem`, the regulator API, the `bits` module, the basic USB abstractions... He is also working on the initial Rust V4L2 support [2]. He is already a maintainer and reviewer of several Rust-related entries, and he has been very active reviewing Rust code in the mailing list. His experience building Rust drivers and the APIs they require will be very useful to have around in the future. Thus add him to the `RUST` entry as reviewer. Link: https://rust-for-linux.com/tyr-gpu-driver [1] Link: https://lore.kernel.org/rust-for-linux/20250818-v4l2-v1-0-6887e772aac2@collabora.com/ [2] Acked-by: Daniel Almeida <daniel.almeida@collabora.com> Acked-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260611055538.61425-1-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-06-11Merge tag 'imx-binding-7.2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into soc/dt i.MX DT Binding for 7.2 - Add compatible string for TI SN65LVDS93. * tag 'imx-binding-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux: dt-bindings: display/lvds-codec: add ti,sn65lvds93 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-11Input: ipaq-micro-keys - add length check in micro_key_receiveDmitry Torokhov
The driver accesses the message payload (msg[0]) without checking if the length is greater than zero. The parent MFD driver can produce a payload with a length of 0, in which case msg[0] would be uninitialized or stale. Add a check to return early if len is less than 1. Reported-by: sashiko-bot@kernel.org Assisted-by: Antigravity:gemini-3.5-flash Link: https://patch.msgid.link/aintAvTyw4CVb5hG@google.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2026-06-11Input: ipaq-micro-keys - fix potential deadlockDmitry Torokhov
The driver acquires the micro->lock spinlock in process context (in micro_key_start() and micro_key_stop()) without disabling interrupts. However, this lock is also acquired in hardirq context by the MFD core rx handler (micro_rx_msg()) which is called from the serial ISR. This can lead to a lock inversion deadlock if the interrupt fires on the same CPU while the process context holds the lock. Fix this by using guard(spinlock_irq) instead of guard(spinlock) in micro_key_start() and micro_key_stop() to disable interrupts while holding the lock. Reported-by: sashiko-bot@kernel.org Assisted-by: Antigravity:gemini-3.5-flash Link: https://patch.msgid.link/aij-pfaKK-Nna7wf@google.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2026-06-11ASoC: SOF: topology: fix memory leak in snd_sof_load_topologyZhao Dongdong
When the topology filename contains "dummy" and tplg_cnt is 0, the function returns -EINVAL directly without freeing the tplg_files allocated by kcalloc() at line 2497. This leaks memory on every such topology load attempt. Fix this by setting ret = -EINVAL and jumping to the out: label, which already handles the kfree(tplg_files) cleanup. Fixes: 99c159279c6d ("ASoC: SOF: don't check the existence of dummy topology") Cc: stable@vger.kernel.org Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn> Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/tencent_3EED6D778DC52C3703A2D1EE8119372E8E08@qq.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11MAINTAINERS: Add Axiado reviewer and MaintainersPrasad Bolisetty
Adding 3 new maintainers Prasad,Tzu-Hao, and Karthikeyan Removed previous maintainer as the previous maintainer moved from project Signed-off-by: Prasad Bolisetty <pbolisetty@axiado.com> Acked-by: Harshit Shah <hshah@axiado.com> Signed-off-by: Tzu-Hao Wei <twei@axiado.com> Signed-off-by: Karthikeyan Mitran <kmitran@axiado.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-11ASoC: mediatek: Use guard() for mutex & spin locksMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: This series converts mutex and spinlock handling in Mediatek ASoC drivers to use guard() helpers. Most patches are straightforward conversions to guard() helpers with no functional change intended. One exception is mt8192-afe-gpio, where the mutex release point moves from immediately before dev_warn() to scope exit. However, the affected path only emits a warning and immediately returns -EINVAL, without any further processing. Compile-tested only. Link: https://patch.msgid.link/20260610102021.83273-1-phucduc.bui@gmail.com
2026-06-11ASoC: mediatek: mt8195: mt8365-dai-i2s: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-11-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8195: mt8365-dai-adda: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-10-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8195: mt8365-afe-clk: Use guard() for mutex & spin locksbui duc phuc
Clean up the code using guard() for mutex & spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-9-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8195: mt8195-dai-etdm: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-8-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8195: mt8195-afe-clk: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-7-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8192: mt8192-afe-gpio: Use guard() for mutex locksbui duc phuc
Convert the explicit mutex_lock()/mutex_unlock() pair to guard(mutex) to simplify the locking logic and automatically release the mutex on all exit paths. This changes the mutex release point from immediately before dev_warn() to automatic cleanup at scope exit. However, the affected path only emits a warning and immediately returns -EINVAL, without any further processing. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-6-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8188: mt8188-afe-clk: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-5-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: mt8186: mt8186-afe-gpio: Use guard() for mutex locksbui duc phuc
Clean up the code using guard() for mutex locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: common: mtk-btcvsd: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: mediatek: common: mtk-afe-fe-dai: Use guard() for mutex locksbui duc phuc
Clean up the code using guard() for mutex locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260610102021.83273-2-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11lib/crypto: gf128hash: mark clmul32() as noinline_for_stackArnd Bergmann
During randconfig testing, I came across a lot of warnings for the newly added carryless multiplication function triggering excessive stack usage from spilling temporary variables to the stack: lib/crypto/gf128hash.c:166:1: error: stack frame size (1192) exceeds limit (1024) in 'polyval_mul_generic' [-Werror,-Wframe-larger-than] In addition to the possible risk of overflowing the kernel stack, the generated object code surely performs very poorly. This only happens on architectures that don't provide uint128_t (which should be all 32-bit architectures on modern compilers), but though I tested random x86 and arm configs, I only saw this with arm's CONFIG_THUMB2_KERNEL, which adds more pressure to the register allocator. The testing was done using clang-22, I don't know if gcc has the same problem. Marking clmul32() as noinline_for_stack experimentally shows all of the affected builds to completely solve the problem, reducing the stack usage to a few bytes as expected. Since u64 arithmetic frequently leads to compilers badly optimizing 32-bit targets, keeping clmul32 out of line is likely to help on other 32-bit configurations as well when they run into this problem, though it may also result in a small performance degradation in configurations that would benefit from inlining. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20260611125952.3387258-1-arnd@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2026-06-11ASoC: rockchip: Use guard() for spin locksMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: This series converts spinlock handling in the Rockchip sound drivers to use guard() helpers. The changes are code cleanup only and should have no functional impact. Link: https://patch.msgid.link/20260604033554.96996-1-phucduc.bui@gmail.com
2026-06-11ASoC: rockchip: rockchip_sai: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260604033554.96996-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: i2s-tdm: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260604033554.96996-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: rockchip_i2s: Use guard() for spin locksbui duc phuc
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260604033554.96996-2-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: Reorder clock enable sequenceMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: This series reorders the runtime resume clock enable sequence in the Rockchip SPDIF and PDM drivers to enable the bus clock before the functional controller clock. It also updates the SPDIF DT binding clock descriptions to match the actual clock usage in the driver. Additionally, this v2 adds two new patches addressing issues reported by the Sashiko AI Review tool regarding regcache sync failure handling and runtime PM resume status validation. Testing: - Patch 1: Verified (dt_binding_check passed). - Patches 2 to 5: Compile tested only. Please help test if you have the relevant Rockchip hardware. Link: https://patch.msgid.link/20260602101608.45137-1-phucduc.bui@gmail.com
2026-06-11ASoC: rockchip: rockchip_pdm: Handle runtime PM resume failures in set_fmtbui duc phuc
rockchip_pdm_set_fmt() calls pm_runtime_get_sync() before accessing hardware registers, but ignores its return value. If the runtime resume fails, the function continues to perform register accesses while the device state is undefined. Replace pm_runtime_get_sync() with pm_runtime_resume_and_get() and return early on failure to avoid unpowered register accesses. Reported-by: Sashiko AI Review <sashiko-bot@kernel.org> Closes: https://lore.kernel.org/all/20260522110302.349421F000E9@smtp.kernel.org/ Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260602101608.45137-6-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: spdif: Restore regcache cache-only mode on sync failurebui duc phuc
If regcache_sync() fails during runtime resume, the driver disables the clocks and returns an error. However, the regmap cache-only mode is left disabled. Restore cache-only mode in the error path so subsequent register accesses continue to use the cache while the device is inactive. Reported-by: Sashiko AI Review <sashiko-bot@kernel.org> Closes: https://lore.kernel.org/all/20260522103713.6C09D1F000E9@smtp.kernel.org/ Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260602101608.45137-5-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: rockchip_pdm: Reorder clock enable sequencebui duc phuc
Enable the 'hclk' bus clock before the 'clk' controller clock during runtime resume. The bus clock provides the register access interface, so enable it before the controller clock. This also makes the resume sequence the reverse of the suspend sequence, which keeps the clock ordering consistent. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260602101608.45137-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rockchip: spdif: Reorder clock enable sequencebui duc phuc
Enable the 'hclk' bus clock before the 'mclk' controller clock during runtime resume. The bus clock provides the register access interface, so enable it before the controller clock. This also makes the resume sequence the reverse of the suspend sequence, which keeps the clock ordering consistent. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260602101608.45137-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: dt-bindings: rockchip-spdif: Correct SPDIF clock descriptionsbui duc phuc
Update the binding descriptions to match the actual clock usage, where 'mclk' is the controller clock and 'hclk' is the bus clock. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260602101608.45137-2-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: ti: davinci-mcasp: Add audio-graph-card2 and DPCM supportSen Wang
Extend the McASP driver to support audio-graph-card2 of-graph topology, while maintaining backwards compatibility for existing simple-audio-card phandles and machine drivers, which now uses the default MCASP_GRAPH_NONE code path. Signed-off-by: Sen Wang <sen@ti.com> Link: https://patch.msgid.link/20260603211835.635184-1-sen@ti.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: topology: Check PCM and DAI name strings before useCássio Gabriel
Topology objects store several PCM and DAI names in fixed-size UAPI arrays. Other topology parser paths validate these fields with bounded strnlen() checks before using them as C strings, but the PCM and DAI paths still pass some fixed-size arrays directly to strlen(), devm_kstrdup(), DAI lookup, and diagnostic prints. A malformed topology blob with a non-NUL-terminated PCM, DAI, or stream capability name can therefore make the parser read past the end of the fixed-size field. Reject unterminated PCM and DAI name fields before consuming them as C strings. Fixes: 64527e8a3529 ("ASoC: topology: Add FE DAIs dynamically") Fixes: acfc7d46cddc ("ASoC: topology: Add FE DAI links dynamically") Fixes: 0038be9a84dc ("ASoC: topology: Add support for configuring existing BE DAIs") Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com> Link: https://patch.msgid.link/20260604-asoc-topology-check-pcm-dai-names-v1-1-e1b0f6f7c2ce@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: cs35l56: Remove unnecessary conditionals waiting for enumerationCharles Keepax
Commit [1] updated the core to use complete_all() which means that the wait_for_completion() will now simply return if the device is already attached, so skipping the completion isn't required anymore. Update the code to simply call sdw_slave_wait_for_init() unconditionally. [1] c40d6b3249b1 ("soundwire: fix enumeration completion") Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Link: https://patch.msgid.link/20260608102714.2503120-11-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: SDCA: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Link: https://patch.msgid.link/20260608102714.2503120-10-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: wcd939x: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-9-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: wcd938x: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-8-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: wcd937x: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-7-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: pm4125: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-6-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: rt5682: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it is safe to use from probe time. Update the driver to use the new core helper. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Link: https://patch.msgid.link/20260608102714.2503120-5-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: wsa881x: Use new SoundWire enumeration helperCharles Keepax
Now the new wait for SoundWire enumeration helper no longer depends on unattach_request it can be used for code that also doesn't check this flag. Update the driver to use the new core helper. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-3-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11soundwire: Always wait for initialisation of unattached devicesCharles Keepax
Currently in sdw_slave_wait_for_init() the waiting can be skipped if unattach_request is not set. Doing so was added in [1] likely because the core used to do a complete() on the completion so waiting in the case an unattach hadn't actually happened would block for the full timeout. However patch [2] updated the core to use complete_all() which means that the wait_for_completion() will now simply return if the device is already attached skipping the completion doesn't add much. Additionally, unattach_request is only set if the host initiates a bus reset. However, the host doing a bus reset is not the only reason a device may be unattached from the bus. Other options could include the driver probing before the device enumerates, a sync-loss, or the device itself powering down. Removing the skip using unattached_request, doesn't cost much in terms of efficiency and allows the sdw_slave_wait_for_init() helper to be used outside of runtime resume. [1] b2bd75f806c4 ("soundwire: sdw_slave: track unattach_request to handle all init sequences") [2] c40d6b3249b1 ("soundwire: fix enumeration completion") Acked-by: Vinod Koul <vkoul@kernel.org> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260608102714.2503120-2-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-11ASoC: Validate written enum values in custom controlsMark Brown
HyeongJun An <sammiee5311@gmail.com> says: Some custom ASoC kcontrol put() handlers use the written enum value (ucontrol->value.enumerated.item[0]) to index a table or compute a bit shift before validating that the value is within the control's enum range. An out-of-range value written from userspace is therefore consumed before it is rejected. This is the same class addressed for the Meson codecs in commit 1e001206804b ("ASoC: meson: g12a-tohdmitx: Validate written enum values") and commit 3150b70e944e ("ASoC: meson: g12a-toacodec: Validate written enum values"). Fix four more instances: - hdac_hdmi reads e->texts[item] before validation. - aiu converts the item before validating it. - fsl_audmix converts the item and uses the result before validation. - tegra210_ahub reads e->values[item] before validation. Link: https://patch.msgid.link/20260609124317.38046-1-sammiee5311@gmail.com