Commit Graph

1412947 Commits

Author SHA1 Message Date
Mark Brown
9dc2e2b63e Add devicetree support for aw88261 amplifier driver &
Merge series from Luca Weiss <luca.weiss@fairphone.com>:

A series with a small cleanup and then a patch adding devicetree support
for the aw88261 driver.
2026-01-13 11:55:44 +00:00
Mark Brown
eb4cd1a4a9 sound: codecs: wm8962: Assorted fixes
Merge series from Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>:

Bunch of patches developed while working on Purism's Librem 5 phone.
2026-01-13 11:55:40 +00:00
Mark Brown
28e5a3de98 ASoC: SOF: Use guard()/scoped_guard() for locks when
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:

Only code refactoring, and no behavior change.

Replace most of the manual *lock/*unlock handling with guard use.
2026-01-13 11:55:35 +00:00
Mark Brown
dd808d6b15 ASoC: SOF: ipc4: Send heap/stack bytes via new
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:

Add new module init payload (this has already been partly specified in
SOF FW src/include/ipc4/module.h) and use that to pass new topology widget
properties to FW.

The original ext_init payload extension for this is already already
supported by the firmware.
2026-01-13 11:55:31 +00:00
Vijendar Mukunda
e7c30ac379 ASoC: amd: acp: soc-acpi: add is_device_rt712_vb() helper
Add a filter to skip the RT172 VB configuration if a SmartMic Function
is not found in the SDCA descriptors.

If the ACPI information is incorrect this can only be quirked further
with DMI information.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20260110064505.1485927-1-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 20:08:38 +00:00
Randy Dunlap
0bef51df7c ASoC: amd: drop unused Kconfig symbols
Remove the dangling Kconfig references to CLK_FIXED_FCH since they
are not used anywhere else in the kernel source tree.

Fixes: 281ddf62f5 ("ASoC: amd: Kconfig: Select fch clock support with machine driver")
Fixes: d4c750f2c7 ("ASoC: amd: acp: Add generic machine driver support for ACP cards")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20251228190542.2482910-1-rdunlap@infradead.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 20:08:37 +00:00
Randy Dunlap
7af9e30a0c ASoC: pxa: drop unused Kconfig symbol
Drop a bogus dangling Kconfig symbol for select SND_SOC_AC97_BUS_NEW.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=216748
Fixes: 1c8bc7b3de ("ASoC: pxa: switch to new ac97 bus support")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20251228071041.2246718-1-rdunlap@infradead.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 20:08:36 +00:00
Sebastian Krzyszkowiak
e590752119 ASoC: wm8962: Don't report a microphone if it's shorted to ground on plug
This usually means that a TRS plug with no microphone pin has been plugged
into a TRRS socket. Cases where a user is plugging in a microphone while
pressing a button will be handled via incoming interrupt after the user
releases the button, so the microphone will still be detected once it
becomes usable.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260105-wm8962-l5-fixes-v1-3-f4f4eeacf089@puri.sm
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 12:36:50 +00:00
Sebastian Krzyszkowiak
66c26346ae ASoC: wm8962: Add WM8962_ADC_MONOMIX to "3D Coefficients" mask
This bit is handled by a separate control.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260105-wm8962-l5-fixes-v1-1-f4f4eeacf089@puri.sm
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 12:36:49 +00:00
Jyri Sarha
fc6ceb7e4e ASoC: sof ipc4: Add sof_ipc4_widget_setup_msg_payload() and call it
Add of_ipc4_widget_setup_msg_payload() for adding struct
sof_ipc4_module_init_ext_init payload with associated objects. The
function allocates memory for the additional payload, sets up the
payload according to data collected from topology, and copies
pre-encoded module specific payload after the ext_init payload. The
function is called in sof_ipc4_widget_setup().

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20260112113221.4442-5-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:48:39 +00:00
Jyri Sarha
1cd8fbec6d ASoC: SOF: ipc4: sof_ipc4_module_init_ext_init structs and macros
Add structs and macros for struct sof_ipc4_module_init_ext_init,
following struct sof_ipc4_module_init_ext_object array, and
struct sof_ipc4_mod_init_ext_dp_memory_data as object payload.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20260112113221.4442-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:48:38 +00:00
Jyri Sarha
854d4389f2 ASoC: sof: Add domain_id, heap_bytes and stack_bytes to snd_sof_widget
Add dp_domain_id, dp_heap_bytes and dp_stack_bytes to struct
snd_sof_widget and fill the values from topology tuples with
SOF_TKN_COMP_DOMAIN_ID, SOF_TKN_COMP_STACK_BYTES_REQUIREMENT and
SOF_TKN_COMP_HEAP_BYTES_REQUIREMENT tokens.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20260112113221.4442-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:48:37 +00:00
Jyri Sarha
0432fe32c1 ASoC: sof: ipc4-topology: Add topology tokens domain_in stack & heap_bytes
Add topology tokens for defining user-space domain_id, required stack
and heap size byte for a component. The new topology tokens are
SOF_TKN_COMP_DOMAIN_ID, SOF_TKN_COMP_HEAP_BYTES_REQUIREMENT and
SOF_TKN_COMP_STACK_BYTES_REQUIREMENT for defining required stack and
heap size for a component.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20260112113221.4442-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:48:37 +00:00
Peter Ujfalusi
83aee46dc2 ASoC: SOF: ipc/ops: Use guard() for spinlocks
Replace the manual spinlock lock/unlock pairs with guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-8-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:29 +00:00
Peter Ujfalusi
294b9e7e8e ASoC: SOF: Intel: Use guard() for spinlocks where it makes sense
Replace the manual spinlock lock/unlock pairs with guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-7-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:28 +00:00
Peter Ujfalusi
36fabc449a ASoC: SOF: mediatek: mtk-adsp-common: Use guard() for spinlock_irqsave
Replace the manual spinlock_irqsave lock/unlock pairs with guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-6-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:27 +00:00
Peter Ujfalusi
aa234886c7 ASoC: SOF: imx: imx-common: Use guard() for spinlock_irqsafe()
Replace the manual spinlock_irqsafe lock/unlock pairs with guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-5-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:26 +00:00
Peter Ujfalusi
58a581c38b ASoC: SOF: amd: acp-ipc: Use guard() for spinlock_irq()
Replace the manual spinlock_irq lock/unlock pairs with guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:25 +00:00
Peter Ujfalusi
599a5b00a1 ASoC: SOF: Intel: Use guard()/scoped_guard() for mutex locks where it makes sense
Replace the manual mutex lock/unlock pairs with guard()/scoped_guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:24 +00:00
Peter Ujfalusi
5c19da34df ASoC: SOF: Use guard()/scoped_guard() for mutex locks where it makes sense
Replace the manual mutex lock/unlock pairs with guard()/scoped_guard().

Only code refactoring, and no behavior change.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260112101004.7648-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:21:24 +00:00
Kuninori Morimoto
77157cb45c ASoC: codecs: rt1320-sdw: convert to snd_soc_dapm_xxx()
This patch converts below functions.

snd_soc_component_get_bias_level() -> snd_soc_dapm_get_bias_level()
snd_soc_component_get_dapm()       -> snd_soc_component_to_dapm()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87344f3bko.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:20:51 +00:00
Rob Herring (Arm)
35bffbe49d ASoC: dt-bindings: Convert realtek,rt5651 to DT schema
Convert the Realtek RT5661 codec binding to DT schema format. Add
missing clocks/clock-names for MCLK which is in use already. Also add
the standard "#sound-dai-cells" property.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260108214443.1127685-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-12 11:20:50 +00:00
Luca Weiss
b9198ce5c6 ASoC: codecs: aw88261: Add devicetree support
Add the compatible "awinic,aw88261" so that module autoloading will work
based on the compatible from devicetree.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://patch.msgid.link/20260109-aw88261-dt-v1-2-45840c7632a3@fairphone.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-09 15:05:12 +00:00
Luca Weiss
e76f8c269e ASoC: codecs: aw88261: Remove AW88261_I2C_NAME macro
Replace the macro by its simple string value, to make the code less
unnecessarily complicated.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://patch.msgid.link/20260109-aw88261-dt-v1-1-45840c7632a3@fairphone.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-09 15:05:11 +00:00
Claudiu Beznea
0cd9bf6a6d ASoC: codecs: da7213: Move comma operator at the end of the line
Move the comma operator to the end of the line to comply with the
coding style.

Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://patch.msgid.link/20260108154419.3580562-1-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-08 17:31:24 +00:00
Kuninori Morimoto
22a4776a9c ASoC: codecs: es8375: remove unnecessary format check
It already have default for error case (A), no need to have
SND_SOC_DAIFMT_RIGHT_J for error (B). Remove it.

	static int es8375_set_dai_fmt(...)
		...
		switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
		case SND_SOC_DAIFMT_RIGHT_J:
(B)			return -EINVAL;
		...
		default:
(A)			return -EINVAL;
		}
		...
	}

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87eco20zn3.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-07 11:51:52 +00:00
Mark Brown
9ebc914acd ASoC: ES8389: Add some members and update
Merge series from Zhang Yi <zhangyi@everest-semi.com>:

To improve the codec's performance, add members related to power and version,
and modify the configuration.
2026-01-06 18:48:39 +00:00
Mark Brown
c7ac7499ac ASoC: rt5575: Add the codec driver for the ALC5575
Merge series from Oder Chiou <oder_chiou@realtek.com>:

This patch series adds support for the Realtek ALC5575 audio codec.
2026-01-06 18:48:35 +00:00
Mark Brown
d7e36da652 firmware: cirrus: cs_dsp: Add long-offset WMDR
Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:

Version 3 of the WMDR file format introduces a new block type that has a
32-bit address offset.

The first patch of this series adds the support to the cs_dsp driver.

The rest of the series is adding KUnit tests for this.
2026-01-06 18:48:31 +00:00
Mark Brown
49d3bd9fe2 ASoC: nau8821: Fixes and driver cleanup
Merge series from Cristian Ciocaltea <cristian.ciocaltea@collabora.com>:

This series provides several fixes and cleanup patches for the Nuvoton
NAU88L21 audio codec driver.

Testing and validation has been performed on Valve Steam Deck.
2026-01-06 18:48:26 +00:00
Marco Crivellari
04b61513df ASoC: SDCA: Replace use of system_wq with system_dfl_wq
This patch continues the effort to refactor workqueue APIs, which has begun
with the changes introducing new workqueues and a new alloc_workqueue flag:

   commit 128ea9f6cc ("workqueue: Add system_percpu_wq and system_dfl_wq")
   commit 930c2ea566 ("workqueue: Add new WQ_PERCPU flag")

The point of the refactoring is to eventually alter the default behavior of
workqueues to become unbound by default so that their workload placement is
optimized by the scheduler.

Before that to happen after a careful review and conversion of each individual
case, workqueue users must be converted to the better named new workqueues with
no intended behaviour changes:

   system_wq -> system_percpu_wq
   system_unbound_wq -> system_dfl_wq

This specific workload has no benefits being per-cpu, so system_wq
has been replaced with system_dfl_wq (the unbound workqueue).

This way the old obsolete workqueues (system_wq, system_unbound_wq) can be
removed in the future.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20251230143429.179643-1-marco.crivellari@suse.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-06 13:27:55 +00:00
Cristian Ciocaltea
9bf0bd7bde ASoC: nau8821: Sort #include directives
Make sure #include directives are ordered alphabetically.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-7-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:51 +00:00
Cristian Ciocaltea
42ca16e3ba ASoC: nau8821: Drop unneeded braces in nau8821_hw_params()
Get rid of the superfluous braces and silent checkpatch complaint:

  WARNING: braces {} are not necessary for any arm of this statement

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-6-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:50 +00:00
Cristian Ciocaltea
fd843051b8 ASoC: nau8821: Simplify conditional in nau8821_get_osr()
Get rid of the unnecessary branch to address checkpatch complaint:

  WARNING: else is not generally useful after a break or return

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-5-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:49 +00:00
Cristian Ciocaltea
2a3dc1bcc7 ASoC: nau8821: Drop superfluous return statement
Simplify error handling in nau8821_enable_jack_detect() by removing the
unnecessary return after logging the request irq message.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-4-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:48 +00:00
Cristian Ciocaltea
7786b10688 ASoC: nau8821: Cancel pending work before suspend
A jack detection work that is unscheduled or in progress while executing
the suspend handler could trigger a race condition.

Ensure state consistency by cancelling any pending work or wait for its
execution to complete before processing the suspend.  Since driver
(re)enables both insert and eject interrupts on resume, there is no risk
to miss the related jack events.  Therefore, flush_delayed_work() is not
required here.

Fixes: aab1ad11d6 ("ASoC: nau8821: new driver")
Fixes: ee70bacef1 ("ASoC: nau8821: Avoid unnecessary blocking in IRQ handler")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-3-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:47 +00:00
Cristian Ciocaltea
dbd3fd05cd ASoC: nau8821: Cancel delayed work on component remove
Attempting to unload the driver while a jack detection work is pending
would likely crash the kernel when it is eventually scheduled for
execution:

[ 1984.896308] BUG: unable to handle page fault for address: ffffffffc10c2a20
[...]
[ 1984.896388] Hardware name: Valve Jupiter/Jupiter, BIOS F7A0131 01/30/2024
[ 1984.896396] Workqueue: events nau8821_jdet_work [snd_soc_nau8821]
[ 1984.896414] RIP: 0010:__mutex_lock+0x9f/0x11d0
[...]
[ 1984.896504] Call Trace:
[ 1984.896511]  <TASK>
[ 1984.896524]  ? snd_soc_dapm_disable_pin+0x26/0x60 [snd_soc_core]
[ 1984.896572]  ? snd_soc_dapm_disable_pin+0x26/0x60 [snd_soc_core]
[ 1984.896596]  snd_soc_dapm_disable_pin+0x26/0x60 [snd_soc_core]
[ 1984.896622]  nau8821_jdet_work+0xeb/0x1e0 [snd_soc_nau8821]
[ 1984.896636]  process_one_work+0x211/0x590
[ 1984.896649]  ? srso_return_thunk+0x5/0x5f
[ 1984.896670]  worker_thread+0x1cd/0x3a0

Cancel unscheduled jdet_work or wait for its execution to finish before
the component driver gets removed.

Fixes: aab1ad11d6 ("ASoC: nau8821: new driver")
Fixes: ee70bacef1 ("ASoC: nau8821: Avoid unnecessary blocking in IRQ handler")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-2-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:47 +00:00
Cristian Ciocaltea
70237853ed ASoC: nau8821: Fixup nau8821_enable_jack_detect()
The nau8821_enable_jack_detect() function was supposed to allow enabling
or disabling jack events reporting.  However, once enabled, any
subsequent invocation would fail and the following splat is shown:

[ 3136.996771] Hardware name: Valve Jupiter/Jupiter, BIOS F7A0131 01/30/2024
[ 3136.996773] Workqueue: events_unbound deferred_probe_work_func
[ 3136.996780] Call Trace:
[ 3136.996782]  <TASK>
[ 3136.996787]  dump_stack_lvl+0x6e/0xa0
[ 3136.996796]  __setup_irq.cold+0x9c/0xce
[ 3136.996803]  ? __pfx_irq_default_primary_handler+0x10/0x10
[ 3136.996812]  ? __pfx_nau8821_interrupt+0x10/0x10 [snd_soc_nau8821]
[ 3136.996825]  request_threaded_irq+0xd9/0x160
[ 3136.996853]  devm_request_threaded_irq+0x71/0xd0
[ 3136.996859]  ? __pfx_nau8821_interrupt+0x10/0x10 [snd_soc_nau8821]
[ 3136.996882]  nau8821_enable_jack_detect+0xa5/0xc0 [snd_soc_nau8821]
[ 3136.996901]  acp5x_8821_init+0x8d/0xa0 [snd_soc_acp5x_mach]
[ 3136.996917]  snd_soc_link_init+0x25/0x50 [snd_soc_core]
[ 3136.996958]  snd_soc_bind_card+0x615/0xd00 [snd_soc_core]
[ 3136.997026]  snd_soc_register_card+0x1b2/0x1c0 [snd_soc_core]
[ 3136.997064]  devm_snd_soc_register_card+0x47/0x90 [snd_soc_core]
[ 3136.997108]  acp5x_probe+0x72/0xb0 [snd_soc_acp5x_mach]
[...]
[ 3136.997508] nau8821 i2c-NVTN2020:00: Cannot request irq 58 (-16)

Introduce jdet_active flag to driver data structure and use it to
provide one-time initialization of the jack detection work queue and
related interrupt line.

Note this is also a prerequisite for additional fixes around module
unloading and suspend handling.

Fixes: aab1ad11d6 ("ASoC: nau8821: new driver")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20251231-nau8821-cleanup-v1-1-6b0b76cbbb64@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:25:46 +00:00
Hsieh Hung-En
52ddc0106c ASoC: es8328: Remove duplicate DAPM routes
The DAPM routes for "Left Line Mux" and "Right Line Mux" are defined
twice in es8328_dapm_routes[]. The redundant entries appear after
the "Mic Bias" route and duplicate the definitions found earlier in
the array.

Remove the duplicate entries to clean up the code.

Tested on Rockchip RK3588 with ES8328 codec. Verified that removing
the duplicate routes does not alter the DAPM graph or the mixer
controls. Both 'tinymix' output and DAPM widget lists remain
identical to the baseline.

Signed-off-by: Hsieh Hung-En <hungen3108@gmail.com>
Link: https://patch.msgid.link/20251231084554.265916-1-hungen3108@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:58 +00:00
Oder Chiou
420739112e ASoC: rt5575: Add the codec driver for the ALC5575
The ALC5575 integrates an audio DSP that typically loads its firmware
from an external flash via its own SPI host interface. In certain
hardware configurations, the firmware can alternatively be loaded
through the SPI client interface. The driver provides basic mute and
volume control functions. When the SPI client interface is enabled,
firmware loading is handled by the SPI driver.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Link: https://patch.msgid.link/17c36d07af44ffb1d600977955da95852f8d60f3.1767148150.git.oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:52 +00:00
Oder Chiou
af4c0b951b ASoC: dt-bindings: realtek,rt5575: add support for ALC5575
Audio codec with I2S, I2C and SPI.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/cad38383a8f4c7235158779c270fee7f61bf6cfe.1767148150.git.oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:51 +00:00
Oder Chiou
037f8d8966 spi: change of_find_spi_controller_by_node() gating to CONFIG_OF
Currently, the helper of_find_spi_controller_by_node() is gated under
CONFIG_OF_DYNAMIC. This prevents drivers from using it in all CONFIG_OF
configurations.

This patch moves the gating to CONFIG_OF, keeping the inline fallback
returning NULL when Device Tree support is disabled.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Link: https://patch.msgid.link/6d8ae977d9f4726ea23ad5382638750593f9a2e4.1767148150.git.oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:50 +00:00
Oder Chiou
ee69f55eb1 spi: export of_find_spi_controller_by_node()
Some devices are primarily described on another bus (e.g. I2C) but also
have an additional SPI connection that serves as a transport for
firmware loading. Export of_find_spi_controller_by_node() so drivers can
obtain the SPI controller referenced by a DT phandle.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/0e572a00aa305e588357162d400ba9472ce56dd3.1767148150.git.oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:49 +00:00
Zhang Yi
4c5e6d5b31 ASoC: codecs: ES8389: Update clock configuration
To ensure better performance of the codec, different configurations
will be employed based on power supply conditions.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20260105091548.4196-6-zhangyi@everest-semi.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:43 +00:00
Zhang Yi
e5077facc7 ASoC: codecs: ES8389: Add members about the version
Execute different configurations based on version number
in order to support different versions of es8389.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20260105091548.4196-5-zhangyi@everest-semi.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:42 +00:00
Zhang Yi
b35340e997 ASoC: codecs: ES8389: Adjust wakeup configuration
Update wake-up configuration to ensure the codec works properly.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20260105091548.4196-4-zhangyi@everest-semi.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:41 +00:00
Zhang Yi
59e447ca60 ASoC: codecs: ES8389: Add members related to power supply
Added the members `avdd-supply` and `dvdd-supply` to
enable the driver to get the power supply status.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20260105091548.4196-3-zhangyi@everest-semi.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:40 +00:00
Zhang Yi
163eb876a2 ASoC: dt-bindings: ES8389: Add property about power supply
Add VDDA supply and VDDD supply

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20260105091548.4196-2-zhangyi@everest-semi.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:39 +00:00
Richard Fitzgerald
211243b695 firmware: cs_dsp: test_bin: Add tests for offsets > 0xffff
Add test cases for using the new long-offset block types to patch
memory that is >0xffff from the algorithm base.

This is just adding entries to the parameter data that have larger
offset values.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20251231172711.450024-9-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:31 +00:00
Richard Fitzgerald
7fecf0bf12 firmware: cs_dsp: test_bin: Run test cases on long-offset blocks
Run the patch block test cases using the new long-offset block type.

This adds a new set of parameterization that uses
cs_dsp_mock_bin_add_patch_off32() to create the patch blocks in the
test bin file.

The test cases for Halo Core with V3 file format include another
run of the tests with the new parameterization, so that the tests
are run on the standard blocks and the long-offset blocks.

This commit does not add any new cases for offsets > 0xffff.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20251231172711.450024-8-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-05 13:18:30 +00:00