summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
22 hoursMerge branch 'togreg' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
23 hoursMerge branch 'master' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
23 hoursMerge branch 'for-mfd-next' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
23 hoursASoC: simple-card: Fix clang buildMark Brown
Jumping over the allocation of the link_info for a missing dev breaks the build: /tmp/next/build/sound/soc/generic/simple-card.c:676:3: error: cannot jump from this goto statement to its label 676 | goto end; | ^ /tmp/next/build/sound/soc/generic/simple-card.c:679:20: note: jump bypasses initialization of variable with __attribute__((cleanup)) 679 | struct link_info *li __free(kfree) = kzalloc_obj(*li); | ^ Signed-off-by: Mark Brown <broonie@kernel.org>
25 hoursMerge branch 'for-next' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
27 hoursALSA: hda: Check snd_hda_power_pm construct error before executing verbBob Song
When userspace writes 1 to /sys/bus/pci/devices/XX/remove to remove HDA PCI device, the codec device enters runtime suspended state early. The snd_hda_power_pm RAII constructor fails to wake up codec, but the original code ignores pm.err and continues to execute hda verb commands. After pci driver remove callback completes, devres automatically iounmap the BAR virtual address bus->remap_addr, resulting in access to invalid unmapped MMIO address and triggering page fault BUG. Add error check for snd_hda_power_pm constructor result: 1. Detect pm construction failure when HDA core device is suspended; 2. Print warning log with command and error code for debug; 3. Return early to skip subsequent hardware register access, avoid page fault crash. Signed-off-by: Bob Song <songxiebing@kylinos.cn> Link: https://patch.msgid.link/20260713020427.300628-1-songxiebing@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursMerge branch 'for-linus' into for-nextTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursALSA: hda/realtek: Fix speakers on Legion Pro 7 16ARX8H with codec SSID ↵Damien Laine
17aa:38a7 Some units of the Lenovo Legion Pro 7 16ARX8H (82WS) report codec subsystem ID 17aa:38a7 instead of 17aa:38a8. Since only 38a8 has a codec SSID quirk, these machines fall through to the PCI SSID match 17aa:386f (Legion Pro 7i 16IAX7) and get ALC287_FIXUP_CS35L41_I2C_2, which probes the Cirrus amplifiers of the Intel variant. The TI TAS2781 amplifier (ACPI TIAS2781:00) present on this AMD variant is never bound and the internal speakers remain silent. Add a codec SSID quirk for 17aa:38a7 pointing to ALC287_FIXUP_TAS2781_I2C, mirroring the existing 38a8 entry. Tested on a Legion Pro 7 16ARX8H (82WS, BIOS LPCN62WW): with the codec SSID overridden to 17aa:38a8 via the HDA patch loader, the TAS2781 amplifier binds and the internal speakers work. Cc: <stable@vger.kernel.org> Signed-off-by: Damien Laine <damien.laine@gmail.com> Link: https://patch.msgid.link/20260712213708.1835469-1-damien.laine@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursALSA: hda/realtek: Fix speakers on MECHREVO WUJIE SeriesChen Bowen
The internal speakers on the MECHREVO WUJIE Series are silent, while the headphone output works correctly. The BIOS reports NID 0x1b on the Realtek ALC233 codec as unconnected with pin configuration 0x411111f0. However, the pin is connected to an internal speaker. Overriding NID 0x1b with 0x90170150 makes the HDA generic parser detect both 0x14 and 0x1b as speaker outputs and restores internal speaker playback. Add a pin configuration fixup for the affected PCI SSID c011:1d05. Tested on a MECHREVO WUJIE Series laptop with board WUJIE Series-Lark4-LNL and firmware EM_LNL326_V1.0.23. Signed-off-by: Chen Bowen <hicbowen@gmail.com> Link: https://patch.msgid.link/20260710133409.16641-1-hicbowen@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursALSA: hda: cs35l56: Fail if wmfw file is missingRichard Fitzgerald
Fail cs35l56_hda_fw_load() and log an error if it didn't find a wmfw file and the BIOS didn't patch the firmware already. Also remove a section of code from cs35l56_hda_request_firmware_files() that attempted to find a .bin if a .wmfw was not found. The CS35L56 ROM can only provide default audio in SoundWire mode. A wmfw is needed to enable I2S audio. Also none of the customer-specific .bin files are compatible with the ROM firmware. So a .wmfw file is always required. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://patch.msgid.link/20260709161211.686498-1-rf@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursALSA: usb-audio: Skip DSD quirk for Musical Fidelity M6s DACTakashi Iwai
Salvador reported that the recent fix for applying the DSD quirk to Musical Fidelity devices broke for his M6s DAC model (2772:0502). Although this is basically a firmware bug, the model in question is fairly old, and no further firmware update can be expected, so it'd be better to address in the driver side. As an ad hoc workaround, skip the DSD quirk for this device by adding an empty quirk entry of 2772:0502; this essentially skips the later DSD quirk entry by the match with the vendor 2772. Fixes: da3a7efff64e ("ALSA: usb-audio: Update for native DSD support quirks") Reported-by: Salvador Blaya <tiniebla6@gmail.com> Closes: https://lore.kernel.org/CAOdyq+qFaqCh=tK_wNnA64hv5pQuA1Y09ANxQ=xK8yR-t4mf9Q@mail.gmail.com Tested-by: Salvador Blaya <tiniebla6@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260709095614.1418838-1-tiwai@suse.de
27 hoursALSA: hpi: Check transport errors during HPI6000 adapter initializationEvgenii Burenchev
create_adapter_obj() retrieves adapter information by calling hpi6000_message_response_sequence(). This function reports transport-level errors through its return value and DSP-reported errors via hr0.error. The current code only checks hr0.error, causing transport-level errors to be ignored. As a result, adapter initialization may continue with an invalid response. Check the return value of hpi6000_message_response_sequence() before examining hr0.error. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 719f82d3987a ("ALSA: Add support of AudioScience ASI boards") Signed-off-by: Evgenii Burenchev <evg28bur@yandex.ru> Link: https://patch.msgid.link/20260708141147.18253-1-evg28bur@yandex.ru Signed-off-by: Takashi Iwai <tiwai@suse.de>
27 hoursALSA: core: Clean up file_operations definitionsbui duc phuc
Align file_operations initializers with tabs to match the standard kernel coding style and improve readability. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260708140624.562403-1-phucduc.bui@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
32 hoursMerge branch into tip/master: 'timers/core'Ingo Molnar
# New commits in timers/core: f44ce7fdbdd0 ("selftests: timers: Partially revert "Remove local NSEC_PER_SEC and USEC_PER_SEC defines"") 794ddd6e15cf ("ntp: Remove tick_length_base, use tick_length directly") 34ce97c33dca ("timekeeping: Settle competing time_offset and time_adjust skew") 289d1759494f ("timekeeping: Drive time_adjust skew via per-tick ntp_error transfer") d375af589909 ("timekeeping: Drive time_offset skew via per-tick ntp_error transfer") 869a55e662a0 ("timekeeping: Account for clocksource tick quantisation via NTP") b7befd6d9120 ("timekeeping: Account for monotonicity adjustment in ntp_error") 79b8bd857bd7 ("MAINTAINERS: Add Miroslav as timekeeping reviewer") 79ced850e549 ("y2038: uapi: Use 64-bit __kernel_old_timespec::tv_nsec on x32") 79bd39c58f2c ("timekeeping: Move the vDSO update declarations into a private header") 6e435911394b ("timekeeping: Fold vdso_time_update_aux() declarations into the generic ifdeffery") faef65e45a2a ("hrtimer: Remove inclusion of hrtimer_bases.h remove from hrtimer.h") 0c31af3d23e6 ("x86/speculation: Explicitly include linux/types.h") 071993aac72e ("hrtimer: Explicitly include some necessary headers in hrtimer_rearm.h") 95cf8bbadd10 ("hrtimer: Explicitly include linux/hrtimer_bases.h") 73fcec09d162 ("tick: Explicitly include linux/hrtimer_bases.h") a116c7582d7f ("hrtimer: Move hrtimer_update_function() to hrtimer.c") d3dc7fabd4c4 ("hrtimer: Move hrtimer_callback_running() to hrtimer_bases.h") 03b5d4c27982 ("hrtimer: Rename hrtimer_defs.h to hrtimer_bases.h") c4415c993fc2 ("hrtimer: Don't take cpu_base::lock in hrtimer_get_next_event() when hres_active") 1d28a67d496f ("timer_list: Annotate print_cpu() diagnostic reads") 06aba58e5849 ("time/namespace: Validate nanosecond field in proc_timens_set_offset()") eddfded41965 ("timers/migration: Fix memory leak in tmigr_setup_groups() error path") f2eee7e31ccd ("timekeeping: Unwind aux clock sysfs children on failure") 3dee6537e728 ("clocksource: Unregister subsystem on device registration failure") b4b66151a714 ("selftests: timers: leap-a-day: Fix -w option and update usage comment") b3afded935a8 ("clocksource: Remove unused WATCHDOG_INTERVAL_NS macro") d8966ca88566 ("hrtimer: Remove unused next_timer argument from __hrtimer_reprogram()") e2904ddb14a4 ("timekeeping: Document monotonic raw timestamps in snapshots correctly") a73d7f98e41a ("posix-cpu-timers: Don't abuse lock_task_sighand() in handle_posix_cpu_timers()") 034b5779b85b ("hrtimer: Remove unused clock_base_next_timer_safe()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
4 daysMerge remote-tracking branch 'asoc/for-7.3' into asoc-nextMark Brown
4 daysASoC: codecs: lpass-{tx,rx}-macro: switch to PM clock frameworkMark Brown
Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> says: Convert the LPASS TX and RX macro codec drivers to runtime PM clock management using the PM clock framework, completing the LPASS macro PM clock migration started with the WSA/VA macros [1]. The conversion follows the same pattern established in the WSA/VA series: - PM clocks created and populated from DT via devm_pm_clk_create() + of_pm_clk_add_clks(), inlined in probe (no helper wrapper). - Runtime PM enabled via devm_pm_runtime_enable() with 100 ms autosuspend. - runtime_suspend: regcache_cache_only first, pm_clk_suspend, then regcache_mark_dirty only on success; rollback on failure. - runtime_resume: pm_clk_resume with regcache unwind, regcache_sync with full unwind on failure. - SWR clock gate prepare/unprepare routed through pm_runtime_resume_and_get / pm_runtime_put_autosuspend. - Probe error paths tightened with dev_warn on PM put failures. - Empty remove callbacks dropped (devm handles cleanup). - PM_CLK Kconfig dependency added. Patch 3 adds clk_set_rate() return value checking as suggested by Konrad. [1] https://lore.kernel.org/linux-arm-msm/20260629-xo-sd-codec-v7-b4-v7-0-fb37ce457c42@oss.qualcomm.com/ Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-0-f61b4622f97f@oss.qualcomm.com
4 daysASoC: codecs: lpass-{tx,rx}-macro: check clk_set_rate() return valueAjay Kumar Nandam
clk_set_rate() returns 0 on success or a negative errno on failure but the TX and RX macro probe functions were ignoring it. Check the return value and bail out of probe on failure. Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-3-f61b4622f97f@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: codecs: lpass-rx-macro: switch to PM clock framework for runtime PMAjay Kumar Nandam
Convert the LPASS RX macro codec driver to runtime PM clock management using the PM clock framework. Replace manual macro/dcodec/mclk/npl/fsgen clock toggling with PM clock helpers and runtime PM callbacks. Keep the SWR gate runtime PM reference from SWR clock enable until disable so autosuspend does not gate clocks while SWR is still prepared. Set autosuspend delay to 100 ms so PM-clock-managed votes are dropped soon after idle while still avoiding suspend/resume churn on short gaps. Add a PM_CLK dependency to SND_SOC_LPASS_RX_MACRO since this patch introduces PM clock APIs. Tighten error unwind by checking pm_runtime_put_sync_suspend() in probe and by restoring regcache state if pm_clk_resume()/regcache_sync() fails. Drop the now-empty rx_macro_remove() callback since all clock cleanup is handled by PM clock framework and devm. Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-2-f61b4622f97f@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: codecs: lpass-tx-macro: switch to PM clock framework for runtime PMAjay Kumar Nandam
Convert the LPASS TX macro codec driver to runtime PM clock management using the PM clock framework. Replace manual macro/dcodec/mclk/npl/fsgen clock toggling with PM clock helpers and runtime PM callbacks. Keep the SWR gate runtime PM reference from SWR clock enable until disable so autosuspend does not gate clocks while SWR is still prepared. Set autosuspend delay to 100 ms so PM-clock-managed votes are dropped soon after idle while still avoiding suspend/resume churn on short gaps. Add a PM_CLK dependency to SND_SOC_LPASS_TX_MACRO since this patch introduces PM clock APIs. Tighten error unwind by checking pm_runtime_put_sync_suspend() in probe and by restoring regcache state if pm_clk_resume()/regcache_sync() fails. Co-developed-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Link: https://patch.msgid.link/20260707-xo-sd-codec-tx-rx-v2-1-f61b4622f97f@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: codecs: es9356: Constify regmap_sdw_mbq_cfgKrzysztof Kozlowski
Static 'struct regmap_sdw_mbq_cfg' is not modified so can be changed to const for more safety. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260705172325.118926-4-krzysztof.kozlowski@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: renesas: adg: Drop redundant NULL check on clk_get and ↵Krzysztof Kozlowski
clk_register_fixed_rate devm_clk_get() and clk_register_fixed_rate() do not return NULL (only valid clock or ERR pointer), so simplify the code to drop redundant IS_ERR_OR_NULL(). Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260705172325.118926-3-krzysztof.kozlowski@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: cleanup simple-card/audio-graph-card1/2Mark Brown
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> says: Simple Card has removed platform data support. We can cleanup and more sync Simple-Card/Audio-Graph-Card/Audio-Graph-Card2. Link: https://patch.msgid.link/87ik6yxj0t.wl-kuninori.morimoto.gx@renesas.com
4 daysASoC: simple-card-utils: tidyup simple_util_clean_reference()Kuninori Morimoto
Current code makes old style / new style conversion difficult. To make future conversions easier to understand, this patch clean up the code a little. but no functional change. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/871pdmxixq.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple-card-utils: tidyup simple_util_init_aux_jacks()Kuninori Morimoto
Current code makes old style / new style conversion difficult. To make future conversions easier to understand, this patch clean up the code a little. but no functional change. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/8733y2xixy.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: audio-graph-card2: tidyup simple_util_parse_xxx() in ↵Kuninori Morimoto
audio_graph2_parse_of() audio_graph2_parse_of() calls simple_util_parse_xxx(), but are random. Let's gather them all in one place. Let's keep same style with simple-card/audio-graph-card. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/874iiixiy5.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: audio-graph-card: tidyup simple_util_parse_xxx() in audio_graph_parse_of()Kuninori Morimoto
audio_graph_parse_of() calls simple_util_parse_xxx(), but are random. Let's gather them all in one place. Let's keep same style with simple-card/audio-graph-card2. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/875x2yxiyc.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple-card: tidyup simple_util_parse_xxx() in simple_parse_of()Kuninori Morimoto
simple_parse_of() calls simple_util_parse_xxx(), but are random. Let's gather them all in one place. Let's keep same style with audio-graph-card/audio-graph-card2. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/877bnexiyj.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple_card_utils: add simple_util_parse_aux_devs()Kuninori Morimoto
We are using snd_soc_of_parse_aux_devs() directly, but can use simple_util_parse_property(). use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/878q7uxiyr.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple_card_utils: add simple_util_parse_property()Kuninori Morimoto
We have simple_util_parse_{routing/widgets/pin_switches}(). These are doing almost same things, but has each own implementation. Les't adds new simple_util_parse_property() and share the code. To be more easy cleanup later, change the required parameter from "card" to "priv". Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87bjcqxiza.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: audio-graph-card: Tidyup audio_graph_parse_of() around errorKuninori Morimoto
It is already calling dev_err_probe() in error case, no need to call graph_ret() in success case. Tidyup it. Let's keep same style with simple-card/audio-graph-card2. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87cxx6xizh.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: audio-graph-card2: Tidyup audio_graph2_parse_of() around errorKuninori Morimoto
audio_graph2_parse_of() have not been calling simple_util_clean_reference(). Call it. And it is already calling dev_err_probe() in error case, no need to call graph_ret() in success case. Tidyup it. Let's keep same style with simple-card/audio-graph-card. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87echmxizq.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple-card: merge extra method into simple_parse_of()Kuninori Morimoto
Current simple_probe() calls many code before/after simple_parse_of(). This is because it had supported platform style probe, but is no longer exist. We can merge all into simple_parse_of(), same as Audio Graph Card/Cars2. No functional change. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87fr22xizz.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: simple-card: move simple_parse_of()Kuninori Morimoto
Move simple_parse_of() position. No functional change. This is preparation for code cleanup. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87h5mixj09.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: xilinx: xlnx_i2s: Use dev_err_probe() and drop redundant error handlingMark Brown
bui duc phuc <phucduc.bui@gmail.com> says: It replaces dev_err() followed by return with dev_err_probe() where appropriate in probe paths, allowing deferred probe to be handled correctly while simplifying the code. It also removes redundant dev_err() calls after helper functions that already report failures, avoiding duplicate error messages. Link: https://patch.msgid.link/20260710102138.29347-1-phucduc.bui@gmail.com
4 daysASoC: xilinx: xlnx_spdif: Use dev_err_probe() and drop redundant error handlingbui duc phuc
Use dev_err_probe() for probe error handling where appropriate to simplify the code and properly handle deferred probe. Also remove redundant error messages when the called helper already reports failures, returning the error directly to avoid duplicate logging. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Michal Simek <michal.simek@amd.com> Link: https://patch.msgid.link/20260710102138.29347-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: xilinx: xlnx_spdif: Preserve devm_request_irq() error codesbui duc phuc
devm_request_irq() can return various error codes, such as -EINVAL, -ENOTCONN, -ENOMEM, -ENOSYS, and -EBUSY. However, the driver overwrites all of them with -ENODEV, which hides the actual cause of the failure. Also, devm_request_irq() already reports failures internally, so the additional dev_err() call is redundant. Return the original error code and remove the duplicate error message. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Michal Simek <michal.simek@amd.com> Link: https://patch.msgid.link/20260710102138.29347-3-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: xilinx: xlnx_i2s: Use dev_err_probe() and drop redundant error handlingbui duc phuc
Use dev_err_probe() for probe error handling where appropriate to simplify the code and properly handle deferred probe. Also remove redundant error messages when the called helper already reports failures, returning the error directly to avoid duplicate logging. Reviewed-by: Michal Simek <michal.simek@amd.com> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Link: https://patch.msgid.link/20260710102138.29347-2-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysASoC: xtensa: Use dev_err_probe() and drop redundant error handlingbui duc phuc
Convert error paths with messages to dev_err_probe(), which combines dev_err() and the return statement while also handling -EPROBE_DEFER for the clock path. Remove the redundant "err:" label and return errors directly. Paths such as platform_get_irq() already log failures in the callee, so they simply return the error code without printing an additional message. Inline the pm_runtime_disable() cleanup at its only call site. No functional change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Max Filippov <jcmvbkbc@gmail.com> Link: https://patch.msgid.link/20260709043740.329504-1-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
4 daysMerge tag 'asoc-fix-v7.2-rc2' of ↵Takashi Iwai
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v7.2 A fairly standard set of device specific fixes and quriks for new devices, nothing too remarkable here.
5 daysASoC: use .auto_selectable_formatsMark Brown
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> says: This is v2 to add .auto_selectable_formats to each drivers. I have posted it for all drivers in v1, but is separated into few parts in v2. [x]: already applied [o]: this patch-set [ ]: will post later [x]: convert existing .auto_selectable_formats [o]: add .auto_selectable_formats on driver (already got Reviewed-by) [ ]: add .auto_selectable_formats on driver Link: https://patch.msgid.link/87mrwmhvjd.wl-kuninori.morimoto.gx@renesas.com
5 daysASoC: spacemit: use .auto_selectable_formatsKuninori Morimoto
We can use .auto_selectable_formats. Let's adds it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Troy Mitchell <troy.mitchell@linux.spacemit.com> Link: https://patch.msgid.link/87h5muhvi6.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: meson: use .auto_selectable_formatsKuninori Morimoto
We can use .auto_selectable_formats. Let's adds it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://patch.msgid.link/87ik7ahvi9.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: pcm*: use .auto_selectable_formatsKuninori Morimoto
We can use .auto_selectable_formats. Let's adds it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Kirill Marinushkin <k.marinushkin@gmail.com> Link: https://patch.msgid.link/87jyrqhvid.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: amd: use .auto_selectable_formatsKuninori Morimoto
We can use .auto_selectable_formats. Let's adds it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://patch.msgid.link/87ldc6hvil.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: max98090: Propagate runtime regcache_sync() errorsPengpeng Hou
max98090_runtime_suspend() puts the regmap into cache-only mode. Runtime resume clears cache-only mode, resets the device, and replays cached register state with regcache_sync(), but currently ignores a failed replay. Return the sync error and restore cache-only/dirty state before failing runtime resume. This deliberately leaves the separate system-resume sync call unchanged because the source does not provide an equally strong paired system suspend/cache-only proof for that path. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040747.56587-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: max98396: Unwind supplies on resume failurePengpeng Hou
max98396_resume() enables the core, pvdd, and vbat supplies before leaving cache-only mode, resetting the device, and replaying cached register state. The function currently ignores regcache_sync() failures, and the optional pvdd/vbat enable failures return without unwinding supplies that were already enabled in this resume attempt. Rework the function to use common error labels. This propagates sync failures, restores cache-only/dirty state on failed cache replay, and disables each supply acquired by this resume path before returning the error. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040651.47558-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: rt5682-sdw: Propagate regcache_sync() errorsPengpeng Hou
rt5682_io_init() and rt5682_dev_resume() both leave cache-only mode before replaying cached register state with regcache_sync(). Both paths ignore the sync result, which can hide a failed hardware restore. Propagate regcache_sync() failures from both paths. The first hardware init path now has a dedicated sync-failure cleanup that restores cache bypass, cache-only, and dirty-cache state before balancing the runtime PM reference. The resume path restores both regmaps to cache-only mode and marks the main cache dirty before returning the error. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040530.40047-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: rt1320-sdw: Propagate regcache_sync() errorsPengpeng Hou
rt1320_dev_resume() clears cache-only mode for both regmaps and replays cached register state into the device. Both regcache_sync() calls currently ignore their return values, so resume can report success even if either replay failed. Check both sync operations and return the first error. On failure, restore both regmaps to cache-only mode and mark both caches dirty, so a later successful resume attempt starts from a coherent suspended cache state instead of a partially live pair of regmaps. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040418.28181-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: cs4349: Propagate regcache_sync() errorsPengpeng Hou
regcache_sync() can fail while replaying cached register state during runtime resume. cs4349_runtime_resume() currently ignores that failure and returns success. Propagate the error, restore cache-only/dirty state, and hold reset low again on sync failure. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040330.23616-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
5 daysASoC: codecs: wm8962: Propagate regcache_sync() errorsPengpeng Hou
regcache_sync() can fail while replaying cached register state during runtime resume. wm8962_runtime_resume() currently ignores that failure and continues programming the device. Propagate the error, restore cache-only/dirty state, and unwind the supplies and clock acquired by runtime resume. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704040220.12045-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>