summaryrefslogtreecommitdiff
path: root/sound/soc
AgeCommit message (Collapse)Author
8 daysMerge tag 'sound-7.4-rc1' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "The AI flood continues, which brought us a fairly busy development cycle again with changes spread across the subsystem, ranging from (lots of) core hardening to new platforms and codecs. Here are some highlights. ALSA core: - PCM: race fixes around channel-map controls, draining/unlink, drop sync-stop handling, and DMA buffer delay sync - Compress-offload: state and geometry validations, buffer leak fix, and stream/card lifetime management - Jack: module pinning during debugfs access, control removal race fix, and early injection exposure - Timer & sequencer: module pinning for user timers, RCU grace period wait on port deletion, UMP bounds fixes - Mark OSS sequencer emulation as deprecated - RawMIDI: proper disconnect handling and input work drain cleanup - Control: fixes for vmaster racy setups and control callback serialization, UAF fix on card disconnect ASoC core: - Continued framework refactoring, deployment of auto_selectable_formats across codecs and platform DAIs - Generic card cleanup: free jack GPIOs on card remove for simple-card and audio-graph-card variants - SDCA improvements: SimpleJack function type support, library helpers, and non-ACPI build support - Conversion of deprecated DMA API calls ASoC SOF: - Support for compressed audio playback on SOF IPC4 with Intel TGL+ - AMD ACP 7.B / 7.F SoundWire and PDM controller support, ASP carveout firmware loading - Function topology support for Intel I2S machines ASoC platforms & codecs: - Qualcomm: New QAIF driver for Shikra platform, WCD9378 SDCA codec, Nord Ride/RRD and Motorola Edge 30 boards, LPASS macro cache converted to maple tree - New codec drivers: ESS ES9039Q2M, Nuvoton NAU83G60 amplifier, Senary SN624x SoundWire SDCA codec - MediaTek / Airoha: New Airoha AN7581 AFE and WM8960 machine drivers, extensive clock and error-handling cleanups across MediaTek SoCs - NVIDIA Tegra: WM8994 machine driver and CS35L45 MDSYNC support - Realtek: RT766/RT767, RT721_U, RT718 variants, RT712 GPIO LED control - Cirrus Logic: CS35L45 MDSYNC support, CS35L56 regmap default tests - TI: TAS2573 DSP support in TAS2781, TAS2783 SoundWire fixes - Everest Semi: ES8326 standby / HPF controls, ES8389 / ES8375 resume fixes - Removal of obsolete ST-Ericsson Ux500 MOP500 machine driver HD-audio: - ACPI controller runtime PM suspend/resume support - Controller shutdown and unbind race fixes for unsol events and jack polling - HDMI: High Bit Rate (HBR) audio capability enabled, ELD proc and converter bounds checks - AW88399 side codec SSID-specific firmware naming and Lenovo Legion R9000P enablement - Realtek / Conexant / Cirrus / TI quirks for numerous laptops (Lenovo, ASUS, HP, Acer, HONOR, Minisforum, MSI, etc.) - Creative CA0132 Sound BlasterX AE-5 external RGB LED strip support USB-audio: - Dedicated mixer driver for Audient EVO4 - Native Instruments Kore controller LCD support and keymap fix - Pioneer DJ DDJ-SZ and Roland (OCTA-CAPTURE / QUAD-CAPTURE multirate, TD-11) support - UAC2/3 mixer unit matrix evaluation and bounds checking - Hardening for LINE6 and caiaq drivers against malformed packets and races - Device-specific quirks for PreSonus, TASCAM, Logitech, Mayflower, MOONDROP, Yamaha, etc. Misc: - Auto-cleanup conversion for snd_card_free() and devres migration across dozens of legacy PCI, ISA, and Sparc drivers - ALSA loopback (aloop) timer lifecycle fixes and new aloop selftest - pcmtest driver fixes and kselftest updates" * tag 'sound-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (924 commits) ALSA: hda/realtek: Add mute and mic-mute LEDs for HP ENVY 16 (103c:8be5) selftests: ALSA: pcmtest: Compare all captured bytes in ni_capture ALSA: usb-audio: Use strscpy() in append_ctl_name() ALSA: caiaq: Use strscpy() in snd_usb_caiaq_input_init() ALSA: hiface: Use scnprintf() in hiface_chip_create() selftests/alsa: Check the aloop PCM Slave controls for a matching playback ALSA: aloop: Update the PCM Slave controls for a matching playback selftests: ALSA: pcmtest: Make room for the longest fill pattern selftests: ALSA: pcmtest: Check the frame count of each transfer ALSA: hda/realtek: Fix speakers on COLORFUL L1 Plus ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P AFR10 ALSA: line6: Handle period elapsed calls outside the locks ALSA: emux: Stop voices before freeing zones in all cases ALSA: emux: Fix UAF of soundfont zones at note-on ALSA: mtpav: restore negation dropped in guard() conversion ALSA: compress: reject restarting an ACTIVE task via origin_seqno ALSA: compress: add missing OPEN-state gate to SET_METADATA ALSA: compress: reject buffer geometry change on gapless next_track ALSA: compress: fix buffer leak on failed SET_PARAMS ALSA: hda/realtek: Enable jack detection on Minisforum AI X1 ...
9 daysMerge tag 'drm-next-2026-10-21' of https://gitlab.freedesktop.org/drm/kernelLinus Torvalds
Pull drm updates from Dave Airlie: "Highlights: - core: a lot of atomic refactoring in progress, panic got split into a core/helpers model - amdgpu: enables HDMI 2.1 FRL and other good things finally, UAlink over Ethernet support - xe: has a bunch of CRI support, ras error for bad vram, memory offlining support. - msm: enables a bunch more GPUs. Otherwise it's a the usual mountain of stuff all over the place. Details: rust: - I/O tree shared with driver-core - DMA tree shared with driver-core - allow aux registration data closures to return covariant sub-fields - Implement Send and Sync for MapleTree - add pci resource flags and IORESOURCE_MEM_64 drm/rust: - add dma_fence abstraction - init DRM registrations and their data in place - drop unused flags argument to registration vgaarb: - rework API to pass a private ptr instead of pci device sound: - adapt to omapdrm changes gem: - add callback for handle count going to 0 gpusvm: - share one HMM fault and keep single mappings inline pagemap: - Prevent CPU stalls during unbounded pagemap teardown dma-fence: - fix docs vga_switcheroo: - disconnect from fbcon - update fbcon from within fbdev emulation atomic: - move DRM from state reset callbacks to atomic_create_state - remove drm_simple_encoder_init panic: - split into core and helpers buddy: - improve dirty tracking clients: - improve vmap handling - fbdev: Move helpers from drm_kms_helper.ko to drm_client_lib.ko display: - export HDMI SCDC status data via debugfs - rework SCDC for better HDMI 2.0 support - dp/mst: improve DPCD compliance edid: - parse AMD VSDB - parse ALLM/VRR capabilities - support detecting panel size log: - add drm_warn_ratelimited sched: - cleanup interface - add missing locking - fix run-queue cleanup - fix locking sysfb: - remove obsolete quirk for Lenovo D330 - fix panel orientation for non-native display modes - drop drm_class_device_register colorop: - provide DRM_COLOR_OP_FIXED_MATRIX bridge: - analogix: Support eDP lane mapping - ti-sn65dsi83: Support LVDS Channel B on SN65DSI84 - Select DRM_PANEL_BRIDGE for various drivers that require it - add chrontel ch7218a support panel: - panel-edp: Support MNE007QS3-F, TM140VDXP15, and KD116N36-30NB-A001 - samsung-s6d16d0: Use mipi_dsi_*_multi() functions - support Ilitek ILI7836A OLED plus DT bindings - support Novatek NT36532 plus DT bindings - convert several drivers to managed cleanup - fix Kconfig selections - edp: - Add support for BOE NV140FHM-T0A - Support CSOT MNE007QB1-1 - NV140WU2-M70 - ebbg-ft8719: Fix MODULE_LICENSE() string; Improve initialization - samsung: Share test-key helpers - ilitek-ili9882t: Support Ilitek IL79600A plus DT bindings - simple: Support Truly TFT320240-229-E plus DT bindings; Support BOE DV215FHM-R01 plus DT bindings - Refactor struct drm_panel to contain struct drm_bridge plus fallout in various panel drivers - Add support for BOE Novatek NT51021, Retroid Pocket 6, Raydium RM69220 DDIC panels, Sharp LQ138P1JX61 eDP, BOE NV140FHD-N43, AUO B140HAN04.0, AUO 0x0db3, panels. amdgpu: - use AMD VSDB for freesync - implement YUV-to-RGB with fixed-matrix colorop - enable FRL for HDMI - HDMI 2.1 freesync support - HDMI 2.1 ALLM support - HDMI 2.1 VRR support - UALoE (UALink over Ethernet) support - add syncobj_points to userq signal ioctl - drop unused kunit tests - NBIO/GC/MMHUB/SMU updates/fixes - GPU spatial partitioning updates - display kunit fixes - userq fixes - RGB quantization fixes - DC RMCM refactor - DP MST fixes - USB4 fixes - add new trace events - Rework display instance handling - stack frame size fixes for various compilers/configs - VCN 4/5 reset fixes - freesync updates - cursor refactor - Fix direct scanout alpha on some DRM_FORMATs - Expand Mac reserved memory workaround - Make runtime pm more fine grained amdkfd: - updates and fixes - GC 10 CU occupancy support radeon: - eDP fix for DCE3.2 iMacs xe: - add drm_ras netlink error event support - add memory page offlining support - introduce error threshold to drm_ras - fix stale GTT mappings on unmap - reject page faults for non-page fault mode scratch VM - enable CRI package and VRAM temperatures - introduce cold reset recovery - handle CRI+ power interval encoding - VF migration for multi-queue - handle exec queue teardown after hot unplug - alerts and controller enabling modifications - use IBCv3 on PTL - VRAM health check - report GT TDR and VM rebind faults using SIGID - add multi_queue_active_lrca debugfs - shrinker: Runtime PM reference for non-system memory - guc: Add simple KLV decoder helpers - debugfs: Expose per-engine idle status - Keep walking on SVM eviction failure - Nuke PTs only after unlinking contested VMAs - limit sg segment size to PAGE_SIZE on Xen PV - keep VF LMEM bar size low if no VFs - CPU binds and ULLS on migration queue - New PTL PCI ID - Enable PXP for NVL-S - Do not dma_fence_put zero fences in err_out path - Refresh TTM LRU on SVM prefetch - export device UID in sysfs i915: - rename GEN6_PCODE_DATA to match spec - fix incorrect RCU teardown order - fix potential UAF in command parsing - avoid WARN splat during RPS boosting race - use simpler min functions - Fixes to make i915 work well with PREEMPT_RT i915/display: - Enable CMRR (Content Match Refresh Rate) in fixed-RR VRR path - Switch DG2 MPLL to DPLL framework - DP-HDMI PCON DSC fixes - limit invalid joiner combinations - CDCLK related fixes and refactor around PCODE integration - Gate UHBR SST SDP splitting on sink caps - add HDMI TMDS audio bandwidth check - vswing/preemph override - enable AS SDP Skip frames - Handle negative configuration index on DP link caps for robustness - Preparation for enabling SDR plane color pipeline - An eDP quirk for HP Pavilion Plus - Introduce PME (Power Management Event) support on display hotplug - Handle VSC SDP revision 7 in unpack msm: - CI: - Dropped sc7180 trogdor lazor from the CI - Core: - Fixed msm_ioremap for resources without a name - Changed msm.separate_gpu_kms to default to auto selection - GPU: - Enable CLX (Current Limit eXtension) for gen8 to avoid exceeding limits on CX/GX rails - New GPUs: a830 (Pakala), a845 (Maili), a850 (Hawi), x2-85 (Mahua) - Fix VBIF halt mask on a306, which was preventing runpm suspend - Enable THP support for GEM buffers - Add modparam to disable waiting on fences in shrinker - Drop use of drm_prime_sg_to_page_array() - a5xx: don't read the GPMU registers on GPUs without a GPMU - a2xx/a3xx/a5xx: hangcheck progress detection - a6xx: gmuwrapper runpm fix - Calculate reported GMEM size based on active slices - Split a6xx/a7xx/a8xx catalog - DP: - Picked up some preparation patches for the MST support - Fixed reported status of the link training - DPU: - Fixed CRTC bandwidth computation - Fixed DSC programming - Fixed encoder disablement path - DSI: - Fixed VM leak in error path - Indention fix - MDP5: - Added MSM8952 configuration - Dropped incorrect cursor pipe on MSM8976/56 - HDMI: - Small fixes nouveau: - improve runtime PM on R570 GSP firmware - various fixes throughout the driver - dispnv50: support 2.147 GHz pixel clock in GB20x nova: - add initial uapi concept - add initial PRAMIN access support - add GpuMm centralized memory manager - add GPU VM and BAR1 support - add GPU interrupts and GSP events support - GSP messaging fixes tyr: - use bitfield! - zero unsupported and newly added GPU info fields - limit doorbell array to 17 entries exynos: - FIMD fixes - Fix clock leak on resume error path - Fix Sparse warnings by adding missing __iomem annotation - VIDI cleanup - Replace kmalloc() and copy_from_user() with memdup_user() amdxdna: - fix BO handling - Support AIE2 rev 9 - Fix UAF access in scheduler fences - Update workqueue interface - expose busy time via fdinfo ast: - support 256-byte EDID hyperv_drm: - remove support for pre win10 hosts komeda: - fix GLB_CORE_ID usage omap: - report HDMI hotplug events to ASoC HDMI codec panthor: - provide gpu_cache_flush tracepoint - improve dma_fence signalling latency - improve locking - export scheduling information via debugfs - Validate user-space input against firmware limits qaic: - reject BOs that exceed maximum page count - add missing include statements verisilicon: - fix hardware cursor offsets vkms: - implement YUV-to-RGB with fixed-matrix colorop gma500: - avoid unsupported ARGB formats in primary plane hibmc: - handle vblank interrupts correctly ivpu: - add DRM_IVPU_CAP_CMDQ_SET_PRIORITY - support command-queue priority ioctl - Simplify NULL-pointer handling in cleanup code arcpgu: - replace simple-display pipeline with regular atomic helpers aspeed: - replace simple-display pipeline with regular atomic helpers gm12u320: - replace simple-display pipeline with regular atomic helpers imagination: - various improvement to firmware interaction - add job to pvr_job_submit_fw trace event mali-dp: - fix runtime PM leak mcde: - replace simple-display pipeline with regular atomic helpers p111: - replace simple-display pipeline with regular atomic helpers - drop unsupported alpha formats from primary plane rcar-du: - support Renesas R-Car V4H DSC - dsi: Support larger transfers with AXI memory - Support RZ/G3L SoC repaper: - replace simple-display pipeline with regular atomic helpers rockchip: - dsi: improve PHY timings ssd130x: - support Solomon SSD1351 OLED plus DT bindings - ssd133x: upgrade color format to RGB565 - ssd132x: Set correct hardware window when clearing screen tve200: - replace simple-display pipeline with regular atomic helpers xen: - replace simple-display pipeline with regular atomic helpers v3d: - improve job handling under perfmon vc4: - reliably reset V3D - drop brcm,vc4-v3d compatible virtio: - fix damage handling - Support ARGB8888 for virtio primary planes. host1x: - Support partitioning imx: - Replace simple-display with regular atomic helpers mxsfb: - Support bus formats plus DT bindings tegra: - improve syncobj handling on submit panfrost: - add Mali-G68 support - improve GPU reset handling rockchip: - add HDMI 2.0 support to dw-hdmi-qp - improve HPD handling" * tag 'drm-next-2026-10-21' of https://gitlab.freedesktop.org/drm/kernel: (2324 commits) drm/adp: Switch to drm_atomic_helper_connector_create_state drm/malidp: Convert to atomic_create_state drm/vc4: Switch to drm_atomic_helper_connector_create_state drm/sysfb: Switch to drm_atomic_helper_connector_create_state drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state drm/hyperv: Switch to drm_atomic_helper_connector_create_state drm/bridge: megachips: Switch to drm_atomic_helper_connector_create_state drm/bridge: lontium-lt8912b: Switch to drm_atomic_helper_connector_create_state drm/arm: komeda: Switch to drm_atomic_helper_connector_create_state drm/appletbdrm: Fix incorrect error message on encoder attach failure drm/sun4i: hdmi: Convert to drmm_connector_hdmi_init() drm/rockchip: rk3066_hdmi: Advertise HDMI 1.4 capabilities drm/bridge: lontium-lt9611: Advertise HDMI 1.4 capabilities drm/bridge: ite-it66121: Advertise HDMI 1.2 capabilities drm/bridge: ite-it6263: Advertise HDMI 1.3 capabilities drm/bridge: ite-it6263: Drop redundant .mode_valid hook drm/bridge: inno-hdmi: Advertise HDMI 1.2 capabilities drm/bridge: adv7511: Advertise HDMI 1.2 capabilities drm/sched: Document entity->stopped is protected by entity->lock ...
11 daysMerge tag 'acpi-7.4-rc1' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPI support updates from Rafael Wysocki: "The most significant change here is the rework of the core ACPI device enumeration code to avoid initializing ACPI power management prematurely for devices with unmet dependencies. This essentially is a problem fix, but it requires taking PCI device enumeration ordering into account among other things, so it is far from straightforward. There was an attempt to do this in the 7.3 time frame that had to be reverted, so this time it is done much more carefully. There is also an ACPI thermal control update rearranging the code to register thermal class cooling devices under specific parents, which is visible in sysfs. This helps to figure out what is represented by those devices much more easily, but it also allows the binding of cooling devices to trip points in thermal zones to be adjusted so it need not rely on specific cooling device data usage in thermal drivers. From the number of commits perspective, the most visible part is the one replacing acpi_get_first_physical_node() with acpi_bus_get_primary_device() everywhere and dropping the former that was inherently racy and generally unsafe to use. Fortunately, the maintainers involved responded timely and all of that could be done within one development cycle. Another quite visible part is Dave Jiang's series fixing multiple issues reported by Sashiko in the ACPI APEI support code with a PCI AER improvement on top. It took several iterations of this to make Sashiko happy and the code in question should be much more robust going forward. One other thing worth mentioning separately is that the ACPI bus type is now going to be registered as a "companion" one and it will not be possible to register a driver binding directly to a struct acpi_device. All of the existing users of those drivers in the tree were converted to platform drivers in the previous cycles, so this is just a final step in a longer journey. Apart from the above, there are many fixes, mostly in drivers, with a noticeable exception of a fix in the code binding devices to their ACPI companions, new IOVT IOMMU support in ACPICA, new _Ixx object support for suspend-to-idle on x86, multiple new quirks, mostly related to unused ACPI power resources and backlight handling, and assorted cleanups. Specifics: - Make the core ACPI device enumeration code stop attempting to initialize ACPI power management for devices before they are known to be present and functional (Rafael Wysocki) - Simplify and clean up the core ACPI device enumeration code on top of the previous adjustment and reduce debug noise coming from it (Rafael Wysocki) - Fix locking in the code binding devices to their ACPI companions, prevent it from replacing a valid ACPI companion pointer with NULL incidentally, improve its messaging (including debug noise reduction), and reduce its overhead by making it skip the cases in which no ACPI companion may exist early (Rafael Wysocki) - Reduce runtime memory footprint of struct acpi_device by rearranging fields in it (Andy Shevchenko) - Update the driver core to allow bus types without drivers to be registered as "companion bus types" without driver-related sysfs attributes and register the ACPI bus type as a companion one (Rafael Wysocki) - Use strscpy() instead of strcpy() in the ACPI sysfs interface (Ruslan Vagner) - Remove __meminitdata from hmat_adist_nb declaration preserving it even when CONFIG_MEMORY_HOTPLUG is not set to prevent notifier chain corruption in some cases (Alejandro Lucero) - Prevent a NULL pointer dereference when attempting to read the table length after a mapping bookkeeping failure during an initrd override invocation with permanent table mappings enabled (Slavin Liu) - Use for_each_populated_zone() in get_node_num() in the MRRM table pareser (Sang-Heon Jeon) - Use vsnprintf() in acpi_os_vprintf() to prevent memory corruption resulting from overly long diagnostic messages that may not fit into a static buffer used by ACPICA and may be produced by a malformed ACPI table (Vlatko Kosturjak) - Ignore leading root scope prefix in string _UID match to allow AMD IOMMU matching to work as expected in some cases (Mario Limonciello) - Adjust message printing macros for ACPI objects to use dev_fmt() for more consistency with the analogous dev_*() macros (Rafael Wysocki) - Add _Ixx GPE wake indicator support to the x86 suspend-to-idle handling code (Saranya Gopal) - Clear driver_data before free in the ACPI PCI Link driver to prevent a dangling pointer from being used later (Jiale Yao) - Accumulate the queued flag across error sections of a CPER record in ghes_do_proc() to prevent it from being cleared by a later section or entry that does not queue memory-failure work (Breno Leitao) - Map a raw PCI AER Capability image field by field to prevent information loss from occurring while processing it (Dave Jiang) - Update a stale driver source reference in the ACPI APEI EINJ driver documentation (Prabhakar Pujeri) - Reject CPER records with an out-of-range error_data_length or an error status block length wrapping a u32 in the EFI CPER driver (Dave Jiang) - Address multiple assorted issues in the ACPI extlog driver (Dave Jiang) - Address two issues related to CXL in the ACPI APEI GHES driver (Dave Jiang) - Read only validated fields in cper_mem_err_pack() (Dave Jiang) - Validate memory error section length before payload access, prevent writes past array bounds from occurring and sanitize software metadata in the ACPI APEI GHES driver (Dave Jiang) - Make cxl_cper_handle_prot_err() static (Dave Jiang) - Add IOVT IOMMU support to ACPICA (Bibo Mao) - Fix PCC OperationRegion command offsets in ACPICA (Sudeep Holla) - Fix memory leak in acpi_ds_create_field() related to the handling of internal_pcc_buffer allocations (Breno Leitao) - Fix memory leak due to leftover devm_kcalloc() argument in the ACPI fan driver (Rafael Wysocki) - Fix backlight unregistration ordering in the ACPI video bus device driver (Rafael Wysocki) - Update the thermal core to allow the registration of thermal class cooling devices under specific parents and convert the ACPI fan, ACPI processor, and ACPI video bus device drivers to do so (Rafael Wysocki) - Adjust the ACPI thermal zone driver to use thermal class cooling device parent information for binding cooling devices to trip points in thermal zones (Rafael Wysocki) - Use cooling device data that is a better match for a given driver instead of a struct acpi_device pointer that had to be used for this purpose previously in the ACPI fan and processor drivers (Rafael Wysocki) - Fix acpi_thermal_guess_offset() in the ACPI thermal zone driver for thermal zone devices with a 273.0°K offset (Hans de Goede) - Define a free for ACPI objects allocated by ACPICA helpers and use it to simplify AML error handling in the ACPI fan driver (Rafael Wysocki) - Switch over the users of acpi_get_first_physical_node(), that was inherently racy and therefore not really safe to use, to use its replacement acpi_bus_get_primary_device(), and eliminate the former (Rafael Wysocki) - Add !CONFIG_ACPI stubs for acpi_find_child_device() and acpi_device_uid() (Mario Limonciello and Robin Murphy) - Fix bogus cycle count values on systems without _BIX in the ACPI battery driver (Armin Wolf) - Fix NULL pointer dereference on allocation failure and report relative state of charge as CAPACITY in the ACPI SBS driver (Itay Shem-tov and Guangshuo Li) - Add lid_init_state quirk for Razer Blade Stealth 13 (Early 2020) RZ09-0310 to the ACPI button driver (Ian Gallagher) - Add new quirks to force the native backlight on Dell OptiPlex AIO 7410 35W and Acer Nitro AN515-58 in the ACPI video bus device driver (Chitransh Mandhaniya and Dirga Yuza) - Fix the shared memory signature handling in the ACPI PCC address space handler, free the PCC mailbox channel on operation region deactivation, and avoid unnecessary repeated computations of the PCC operation region command timeout (Sudeep Holla) - Fix a log message typo in the ACPI NUMA support code (Hemanth Selam) - Zero-initialize capability query result in the ACPI Platform Firmware Runtime Update and Telemetry driver to avoid disclosure of kernel stack data to user space (Karl Mehltretter) - Replace the remaining built-in/module check for CONFIG_ACPI_WMI in a header file with IS_ENABLED() macro (Lalit Shankar Chowdhury) - Retry probing battery docks after hotplug in the ACPI docking station driver to avoid missing ACPI add notifications (Vibhor Goel) - Detach device after resource transition failure in pnp_device_probe() to avoid blocking later manual PNP configuration attempts (Myeonghun Pak)" * tag 'acpi-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (90 commits) ACPI: PM: Add Acer Aspire A515-53G to dmi_leave_unused_power_resources_on[] ACPI: video: force native backlight on Dell OptiPlex AIO 7410 35W ACPI: PM: sleep: Drop unused sleep_no_lps0 define ACPI: PM: Add unused power resource quirk for Casper Excalibur G900 ACPI: dock: Retry probing battery docks after hotplug ACPI: PCI: pci_link: clear driver_data before free ACPI: APEI: accumulate the queued flag across error sections ACPICA: actbl2.h: Add bit constants of the Flags field in the IOVT IOMMU structure ACPI: bus: Drop acpi_get_first_physical_node() efi/dev-path-parser: Switch to use acpi_bus_get_primary_device() ALSA: hda: tas2781: Switch to use acpi_bus_get_primary_device() ALSA: hda: cs35l41: Switch to use acpi_bus_get_primary_device() iommu/arm-smmu-v3: Switch to use acpi_bus_get_primary_device() PCI/AER: Map a raw AER Capability image field by field ACPI: NUMA: fix typo in log message ACPI: Add stub for acpi_find_child_device() driver core/ACPI: Introduce companion_bus_register() ACPI: PCC: Cache OpRegion command timeout ACPI: PCC: Free channel on OpRegion deactivation ACPI: PCC: Preserve shared memory signature in OpRegion handler ...
14 daysASoC: aw88399: pass firmware name as argumentMarco Giunta
Pass the ACF firmware filename as an argument to aw88399_request_firmware_file() instead of hardcoding AW88399_ACF_FILE. Both existing callers (ASoC and HDA) pass AW88399_ACF_FILE to preserve current behavior. Also add missing newlines to the log messages of the modified lines. This allows the HDA side codec driver to request per-model firmware files in the next patch. Tested-by: Xia Yun'an <imitoy@imitoy.top> Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/SN6PR19MB2303DB0BF41797A38EB04CBFFC992@SN6PR19MB2303.namprd19.prod.outlook.com
14 daysMerge tag 'asoc-v7.4' of ↵Takashi Iwai
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for v7.4 There's an awful lot of cleanup work in this pull request, lots from Bui Duc Phuc, Pengpeng Hou, HyeongJun An and Chancel Liu cleaning up detail issues in drivers in addition to Mormoto-san's ongoing framework work. This time Morimoto-san's work included enabling auto_selectable_formats so there's less manual configuration required for DAI links. There's also been a huge amount of upstreaming activity from Qualcomm, some pain there but hopefully enough has now landed for things to be smoother in future. - Use auto_selectable_formats in most drivers to reduce the amount of manual configuration required for DAI links. - Support for compressed audio on SOF IPC4 systems. - Support for AMD ACP 7.B and 7.F, AmLogic A9 and T7, Airoha AN7581, ESS Technology ES9039Q2M, Intel Cherry Trail with RT5688, Nuvoton NAU83G60, nVidia systems with WM8994, Qualcomm QAIF, Senary I2S, WCD9378 and various platforms, Realtek RT766 and RT767, Senary SN624x I also mistakenly merged some SPI changes in here then applied more patches on top before I noticed (it looks like this was b4's base selection logic picking a bad base for some ASoC work), highlights there are: - Improvements for spidev_test to cover additional use cases, plus be a bit easier to use. - Push more Tegra210 QSPI handling into interrupt context for performance improvements. - Support for Qualcomm QPIC SNAND v2 and RealTek RTD1625 NOR. - Documentation clarifications. - Fixes for some runtime PM and error handling issues. - Support for R-Car Gen5. (this should also be going in via my SPI pull request)
14 daysMerge branch 'acpi-driver'Rafael J. Wysocki
Merge changes related to ACPI support in device drivers for 7.4: - Switch over the users of acpi_get_first_physical_node(), that was inherently racy and therefore not really safe to use, to use its replacement acpi_bus_get_primary_device(), and eliminate the former (Rafael Wysocki) - Add !CONFIG_ACPI stubs for acpi_find_child_device() and acpi_device_uid() (Mario Limonciello and Robin Murphy) * acpi-driver: ACPI: bus: Drop acpi_get_first_physical_node() efi/dev-path-parser: Switch to use acpi_bus_get_primary_device() ALSA: hda: tas2781: Switch to use acpi_bus_get_primary_device() ALSA: hda: cs35l41: Switch to use acpi_bus_get_primary_device() iommu/arm-smmu-v3: Switch to use acpi_bus_get_primary_device() ACPI: Add stub for acpi_find_child_device() ACPI: bus: Provide !ACPI stub for acpi_device_uid() ALSA: hda: aw88399: Switch to use acpi_bus_get_primary_device() ASoC: loongson: Switch to use acpi_bus_get_primary_device() ASoC: intel: boards: Switch to use acpi_bus_get_primary_device() ASoC: amd: acp3x-es83xx: Switch to use acpi_bus_get_primary_device() ASoC: amd: acp-es8336: Switch to use acpi_bus_get_primary_device() thunderbolt: Switch to use acpi_bus_get_primary_device() platform/x86: apple-gmux: Switch to use acpi_bus_get_primary_device() platform/x86: x86-android-tablets: Use acpi_bus_get_primary_device() platform/x86: serdev_helpers: Switch to use acpi_bus_get_primary_device() platform/x86: yogabook: Switch to use acpi_bus_get_primary_device() ACPI: amba: Switch to use acpi_bus_get_primary_device() ACPI: bus: Use acpi/acpi_bus.h without CONFIG_ACPI
2026-10-19Merge branch 'for-next' into for-linusTakashi Iwai
Pull 7.4 merge-window stuff. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-18ASoC: codecs: Fix more control definitions that write another control's bitsMark Brown
HyeongJun An <sammiee5311@gmail.com> says: These are the last fixes found by the overlap scan from the first series [1]. In sta32x and sta350 a 4-bit field has a maximum of 16, so the control also writes the bit above it. In tlv320aic32x4 a TAS2505 control uses the wrong register. [1] https://lore.kernel.org/all/20261008130953.2446692-1-sammiee5311@gmail.com/ Link: https://patch.msgid.link/cover.1792135145.git.sammiee5311@gmail.com
2026-10-18ASoC: tlv320aic32x4: Fix definition of TAS2505 HP Driver Gain Volume controlHyeongJun An
The TAS2505 HP volume is bits 6:0 of page 1 register 22, not of register 16, which holds the HP driver mute (bit 6) and gain (bits 5:0). Fixes: 2169d6a0f072 ("ASoC: tlv320aic32x4: Fix TAS2505 volume controls") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/e50b88689e8efd353ee597a6692ab4db30aa63e7.1792135145.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-18ASoC: codecs: sta350: Fix definition of limiter threshold controlsHyeongJun An
The limiter attack and release thresholds are the two 4-bit halves of one register, so their maximum is 15, not 16. With 16 the controls on bits 3:0 also write bit 4, which belongs to the other threshold. Fixes: 2439ea1f0f8f ("ASoC: sta350: Add codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/d65a21665a1e0d63dec174dd3691bd97764b8ae0.1792135145.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-18ASoC: codecs: sta32x: Fix definition of limiter threshold controlsHyeongJun An
The limiter attack and release thresholds are the two 4-bit halves of one register, so their maximum is 15, not 16. With 16 the controls on bits 3:0 also write bit 4, which belongs to the other threshold. Fixes: c034abf6e503 ("ASoC: add STA32X codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/179118fc7680b2b872d1f917b7fd21f54a73a6d8.1792135145.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: qcom: Add Nord audio supportMark Brown
Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> says: This series adds audio support for the Qualcomm Nord Ride and RRD boards and includes the required machine driver, device tree binding updates, and codec improvements needed for the board's external audio codec configuration. Nord Ride uses a PCM1681 DAC for playback and an ADAU1979 ADC for capture. Compared to other SC8280XP based platforms, Nord Ride requires board-specific DAI format and codec clock configuration to support the external PCM1681 DAC and ADAU1979 ADC. Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-0-0c1897f21ccf@oss.qualcomm.com
2026-10-16ASoC: qcom: sc8280xp: Add Nord sound card supportMohammad Rafi Shaik
Add support for the Nord Ride and RRD sound cards by introducing the qcom,nord-sndcard compatible and associated platform-specific data.   Nord uses external codecs for its playback and capture paths and requires board-specific DAI and clock configuration. Configure the codec DAI format for DSP_A operation and enable MI2S bit clock handling for the platform.   Add a platform-specific sound card initialization callback to configure the ADAU1979 capture codec to use LRCLK as its system clock source. This configuration is done during DAI link initialization so that the codec clock source and associated rate constraints are established before the capture stream is opened. Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-7-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codec: pcm1681: Enable the PCM1681 suppliesShawn Guo
The driver assumes that the analog and digital supplies of the DAC are already up by the time it probes. That only holds when the rails are hardwired or left on by the bootloader. Boards which gate them, like the Qualcomm Nord RRD and Ride, have no way to get them enabled, and the first register access then fails. Enable the VCC1, VCC2 and VDD supplies before touching the clock or the regmap, so that the DAC is powered whenever the driver is bound. The supplies are optional as far as the regulator core is concerned, so boards which do not describe them keep working through the dummy regulator. Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-5-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codec: pcm1681: Add TDM supportMohammad Rafi Shaik
The PCM1681 selects the audio interface format using FMT[3:0] in the format register. The driver currently supports only I2S, left-justified, and right-justified formats, preventing a machine driver from selecting TDM mode.   Add support for SND_SOC_DAIFMT_DSP_A and program the PCM1681 I2S TDM format when it is selected. Also advertise DSP_A in the selectable DAI formats.   While adding TDM support, correct the reset default for the format register from 0x06 to 0x05. The current default does not match the hardware reset value. Although this has no effect while regmap caching is disabled, it could cause the TDM format write to be skipped if regmap caching is enabled in the future.   The existing I2S, left-justified, and right-justified formats remain unchanged. Assisted-by: LLM Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-3-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codec: pcm1681: Add optional SCK clock and runtime PM supportMohammad Rafi Shaik
The PCM1681 requires its SCK system clock to be running before register access. On platforms where SCK is provided by a gateable clock, register access may fail when the clock is disabled.   Add support for an optional "sck" clock and enable it before accessing the device. After enabling SCK, wait for the required 65536 system clock cycles to allow the device to complete its internal reset sequence.   Use runtime PM to manage SCK instead of keeping it enabled for the lifetime of the device. Disable the clock during runtime suspend and restore it on runtime resume. Use autosuspend to avoid unnecessary clock toggling between closely spaced accesses.   Since the device register state may be lost when SCK is disabled, enable the regmap cache. Switch regmap to cache-only mode and mark the cache dirty on runtime suspend, then synchronize the cached register state after SCK is restored on runtime resume. Mark the zero-detect status register volatile since it is updated by hardware.   Drop idle_bias_on so that the component can reach SND_SOC_BIAS_OFF and runtime suspend can gate SCK. Assisted-by: LLM Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Reviewed-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-2-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: Enable soundcard on Motorola Edge 30Mark Brown
Val Packett <val@packett.cool> says: This series enables sound support on motorola-dubai, at least the speakers.. The WCD that handles microphones and analog USB-C sound is left out because it would first need: https://lore.kernel.org/all/20260522-kodiak-elite-macros-v1-1-487661ac1270@fairphone.com/ The senary MI2S patches were previously part of: https://lore.kernel.org/all/20260506204142.659778-1-val@packett.cool/ and that series mixed up too many things and got bogged down due to the TDM stuff that's not relevant to this device.. Link: https://patch.msgid.link/20261016073157.611956-1-val@packett.cool
2026-10-16ASoC: qcom: sm8250: Add motorola-dubai soundcard compatibleVal Packett
Add a compatible for the SM7325-based Motorola Edge 30 which can use this machine driver. Signed-off-by: Val Packett <val@packett.cool> Link: https://patch.msgid.link/20261016073157.611956-5-val@packett.cool Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: qcom: sm8250: add Senary MI2S RX supportVal Packett
Add support for the SENARY_MI2S_RX DAI which is used on some devices to send audio data to speaker amplifiers. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Val Packett <val@packett.cool> Link: https://patch.msgid.link/20261016073157.611956-3-val@packett.cool Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: qcom: qdsp6: q6routing: add Senary MI2S portsVal Packett
This commit adds support for senary MI2S mixers. Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Val Packett <val@packett.cool> Link: https://patch.msgid.link/20261016073157.611956-2-val@packett.cool Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codecs: Fix control definitions that write another control's registerMark Brown
HyeongJun An <sammiee5311@gmail.com> says: These are more fixes found by the overlap scan from the first series [1]. In each driver a control writes the register of another control. [1] https://lore.kernel.org/all/20261008130953.2446692-1-sammiee5311@gmail.com/ Link: https://patch.msgid.link/cover.1792135144.git.sammiee5311@gmail.com
2026-10-16ASoC: codecs: sta350: Fix definition of Ch2 and Ch3 Volume Bypass controlsHyeongJun An
Each channel's master volume bypass (CxVBP) is in its own configuration register, C2CFG and C3CFG, not in C1CFG, which holds the channel 1 bit. Fixes: 2439ea1f0f8f ("ASoC: sta350: Add codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/1107a42a563459b26038bdff4d8f6e2423816d0a.1792135144.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codecs: sta32x: Fix definition of Ch2 and Ch3 Volume Bypass controlsHyeongJun An
Each channel's master volume bypass (CxVBP) is in its own configuration register, C2CFG and C3CFG, not in C1CFG, which holds the channel 1 bit. Fixes: c034abf6e503 ("ASoC: add STA32X codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/8576f091aa0fe172ce43f28dacd6a1bf638258c6.1792135144.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codecs: tlv320adc3xxx: Fix definition of AGC Target Level controlHyeongJun An
The right channel AGC target level is in RIGHT_CHN_AGC_1, as on the left, not in RIGHT_CHN_AGC_2, which holds the right noise threshold and hysteresis. Fixes: e9a3b57efd28 ("ASoC: codec: tlv320adc3xxx: New codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/09cad9ec9bb382e44cad079a680bdf0f6163567e.1792135144.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codecs: da732x: Fix definition of ADC2 EQ Overall Volume controlHyeongJun An
The ADC2 EQ overall volume is in DA732X_REG_ADC2_EQ5 (0x9F), not in DA732X_REG_ADC1_EQ5 (0x97), which holds the ADC1 one. Fixes: 48e278746070 ("ASoC: codecs: Add DA732x codec driver") Assisted-by: Claude:claude-opus-5-5 Signed-off-by: HyeongJun An <sammiee5311@gmail.com> Link: https://patch.msgid.link/35bae3f84cdc3ceb6ca412153f44dee3647fdbd6.1792135144.git.sammiee5311@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: Address remaining PCM constraint issuesMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: Since v1 has already been applied, this series provides incremental changes to address the remaining items from v2: - Add comments explaining why .open() and .startup() must return 0 on success to prevent the issue from being reintroduced. - Add Reviewed-by tags from Vijendar Mukunda and Chancel Liu, and Acked-by tags from Morimoto-san and Cezary. - Remove redundant integer constraints already applied by snd_dmaengine_pcm_open(). Link v1: https://lore.kernel.org/all/20261008103831.542533-1-phucduc.bui@gmail.com/ Link v2: https://lore.kernel.org/all/20261015014324.5569-1-phucduc.bui@gmail.com/ Compile-tested only. Link: https://patch.msgid.link/20261016040946.521195-1-phucduc.bui@gmail.com
2026-10-16ASoC: rockchip: Explain DAI link startup return value handlingbui duc phuc
Add comments explaining why the .startup() callbacks must return 0 on success to ensure the DAI link is correctly marked as started and prevent future changes from reintroducing the issue. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-12-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: renesas: rz-ssi: Remove redundant component open callbackbui duc phuc
In DMA mode, the generic dmaengine PCM component already applies the integer PERIODS constraint in snd_dmaengine_pcm_open(). Since rz_ssi_pcm_open_dma() only applies this constraint, remove the redundant component .open callback. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-11-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: renesas: rz-ssi: Explain component open return value handlingbui duc phuc
Add a comment explaining why .open() must return 0 on success to ensure the component is correctly marked as opened and prevent future changes from reintroducing the issue. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-10-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: renesas: msiof: Remove redundant period constraintbui duc phuc
snd_pcm_hw_constraint_integer() is already called by snd_dmaengine_pcm_open(). Calling it again in msiof_open() is unnecessary, as the constraint is already applied and the second call returns 0. Remove the redundant constraint call. Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-9-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: renesas: msiof: Explain component open return value handlingbui duc phuc
Add a comment explaining why .open() must return 0 on success to ensure the component is correctly marked as opened and prevent future changes from reintroducing the issue. Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-8-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: intel: atom: Explain DAI startup return value handlingbui duc phuc
Add a comment explaining why .startup() must return 0 on success to ensure proper rollback handling and prevent future changes from reintroducing the issue. Acked-by: Cezary Rojewski <cezary.rojewski@intel.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-7-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: imx-pcm-rpmsg: Explain component open return value handlingbui duc phuc
Add a comment explaining why .open() must return 0 on success to ensure proper rollback handling and prevent future changes from reintroducing the issue. Reviewed-by: Chancel Liu <chancel.liu@gmail.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-6-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: codecs: Explain DAI startup return value handlingbui duc phuc
Add comments explaining why the .startup() callbacks must return 0 on success to ensure the DAI is correctly marked as started and prevent future changes from reintroducing the issue. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20261016040946.521195-5-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: atmel: Explain component open return value handlingbui duc phuc
Add a comment explaining why .open() must return 0 on success to ensure proper rollback handling and prevent future changes from reintroducing the issue. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: apple: Explain DAI startup return value handlingbui duc phuc
Add a comment explaining why .startup() must return 0 on success to ensure the DAI is correctly marked as started and prevent future changes from reintroducing the issue. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: amd: Explain component open return value handlingbui duc phuc
Add comments explaining why the .open() callbacks must return 0 on success to ensure proper rollback handling and prevent future changes from reintroducing the issue. Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261016040946.521195-2-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: rt721-sdca: Fix inconsistent indenting in jack detect handlerJack Yu
Smatch warns about inconsistent indenting in rt721_sdca_jack_detect_handler(): the rt_sdca_index_read() call that samples the JD pin state, and the following mask of real_JD, are indented one level deeper than the surrounding statements, so they look like part of the preceding block although they are not. Re-indent them to match the rest of the block. No functional change. Fixes: e2eb4873b901 ("ASoC: rt721-sdca: Adjust blindwrite flow to fix type detection issue") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202610080041.JAcitVQd-lkp@intel.com/ Signed-off-by: Jack Yu <jack.yu@realtek.com> Link: https://patch.msgid.link/20261016082243.1352940-1-jack.yu@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: amd: yc: Add DMI quirk for MSI Alpha 17 C7VFZhang Heng
The DMIC does not work on the MSI Alpha 17 C7VF because the ACP6x machine driver lacks a matching DMI quirk. Add the DMI entry so the driver binds correctly and the DMIC is functional. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=222112 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261016124030.664895-1-zhangheng@kylinos.cn Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: amd: acp-config: force SoundWire probe on Dell 14S DS14265Art O Cathain
The BIOS on the Dell 14S DS14265 (ACP PCI revision 0x72) reports acp-audio-config-flag = FLAG_AMD_LEGACY_ONLY_DMIC. As a result snd_pci_ps returns early and the SoundWire links are never scanned, while the legacy snd_acp_pci driver probes the device, finds no matching machine driver ("No matching ASoC machine driver found") and no internal sound card is created. The CS42L45 headset codec on link 0 and the two CS35L63 speaker amplifiers on link 1 never enumerate. Add a DMI entry for the model to the ACP70 ACPI flag override table so the firmware-provided flag is overridden and snd_pci_ps probes instead. Match on the product name rather than the board name, as the same symptom has been reported on several boards of this model (09PVND, 0M0J65, 0C7F12). Tested on a DS14265 (board 09PVND, BIOS 1.5.3) with Debian's 7.2.6 kernel, with and without this entry. With it, snd_pci_ps binds, both SoundWire links come up, the CS42L45 and both CS35L63 enumerate, the existing CS42L45 + 2x CS35L63 machine entry matches, the amplifiers load their firmware and calibration, and the amd-soundwire card plays through both the internal speakers and the headphone jack. Also build-tested on asoc-next with W=1. Developed with AI assistance. Claude read the ACP driver source, identified the BIOS flag as the cause and the override table as the fix, wrote the DMI entry and the out-of-tree test module, and drafted this changelog. All hardware testing was done by the submitter, who has reviewed the change, understands it and takes responsibility for it. Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Art O Cathain <art.home@gmail.com> Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://patch.msgid.link/20261016-dell-14s-acp-v1-1-89b40d95720c@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix clock error handlingMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: This series improves error handling in the MT8195 ASoC driver, mainly by checking and propagating errors from clock operations. Compile-tested only. Link: https://patch.msgid.link/20261014112752.683032-1-phucduc.bui@gmail.com
2026-10-15ASoC: mediatek: mt8195: Fix clock parent error handlingbui duc phuc
mtk_audio_hires_event() ignores the return value of mt8195_afe_set_clk_parent(), so a failure to set the clock parent goes unnoticed. Return the error so that the DAPM core reports it. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-17-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix ETDM probe error handlingbui duc phuc
Use pm_runtime_resume_and_get() to properly handle runtime PM errors during ETDM probe. Propagate errors from MCLK configuration and enabling instead of ignoring them. Fixes: 1de9a54acafb ("ASoC: mediatek: mt8195: support etdm in platform driver") Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-16-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix HDMI TX startup error handlingbui duc phuc
Check and propagate errors when enabling the clock gate and MCLK during HDMI TX/DP TX startup. If MCLK enabling fails, disable the clock gate that was already enabled before returning the error. Fixes: 1de9a54acafb ("ASoC: mediatek: mt8195: support etdm in platform driver") Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-15-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix ETDM startup error handlingbui duc phuc
Check and propagate errors when enabling the ETDM MCLK and clock gates during startup. If enabling a clock fails, disable the clocks that were already enabled to keep the clock state balanced. Fixes: 1de9a54acafb ("ASoC: mediatek: mt8195: support etdm in platform driver") Reviewed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-14-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix ETDM MCLK error handlingbui duc phuc
Propagate errors from mt8195_afe_enable_clk() when enabling the ETDM MCLK instead of always returning success. This allows callers to properly handle failures when enabling the MCLK. Fixes: 1de9a54acafb ("ASoC: mediatek: mt8195: support etdm in platform driver") Reviewed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-13-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Propagate IRQ lookup errorsbui duc phuc
Propagate the error returned by platform_get_irq() instead of replacing it with -ENXIO. This preserves errors such as -EPROBE_DEFER for proper handling by the caller. Fixes: 6746cc858259 ("ASoC: mediatek: mt8195: add platform driver") Reviewed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-12-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Remove redundant error messagebui duc phuc
The errors handled here are already reported by the called functions, either directly or deeper in the call chain. Therefore, the additional dev_warn() and dev_err_probe() call is redundant and can be removed. Reviewed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-11-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Fix runtime resume error handlingbui duc phuc
Check and propagate errors when enabling the register access and main clocks during runtime resume. If regcache_sync() or main clock enable fails, restore regmap cache-only mode and disable the register access clocks before returning the error. Fixes: 6746cc858259 ("ASoC: mediatek: mt8195: add platform driver") Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-10-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: mediatek: mt8195: Check paired MEMIF clock enable in FE triggerbui duc phuc
Check the return value of mt8195_afe_paired_memif_clk_enable() on START/RESUME. On failure, stop the MEMIF and disable the channel merge before returning the error. Also skip enabling the paired clock if mtk_afe_fe_trigger() fails. Fixes: 6746cc858259 ("ASoC: mediatek: mt8195: add platform driver") Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20261014112752.683032-9-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>