<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/sound/soc/soc-core.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2026-03-19T15:14:57Z</updated>
<entry>
<title>ASoC: detect empty DMI strings</title>
<updated>2026-03-19T15:14:57Z</updated>
<author>
<name>Casey Connolly</name>
<email>casey.connolly@linaro.org</email>
</author>
<published>2026-03-06T17:47:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=39b5d1798a19ed4b7eeb3278557fbe6fe809fb67'/>
<id>urn:sha1:39b5d1798a19ed4b7eeb3278557fbe6fe809fb67</id>
<content type='text'>
[ Upstream commit a9683730e8b1d632674f81844ed03ddfbe4821c0 ]

Some bootloaders like recent versions of U-Boot may install some DMI
properties with empty values rather than not populate them. This manages
to make its way through the validator and cleanup resulting in a rogue
hyphen being appended to the card longname.

Fixes: 4e01e5dbba96 ("ASoC: improve the DMI long card code in asoc-core")
Signed-off-by: Casey Connolly &lt;casey.connolly@linaro.org&gt;
Link: https://patch.msgid.link/20260306174707.283071-2-casey.connolly@linaro.org
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: flush delayed work before removing DAIs and widgets</title>
<updated>2026-03-19T15:14:52Z</updated>
<author>
<name>matteo.cotifava</name>
<email>cotifavamatteo@gmail.com</email>
</author>
<published>2026-03-09T21:54:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c054f0607c8bb1b1aa529bc109e4149298a1cccd'/>
<id>urn:sha1:c054f0607c8bb1b1aa529bc109e4149298a1cccd</id>
<content type='text'>
[ Upstream commit 95bc5c225513fc3c4ce169563fb5e3929fbb938b ]

When a sound card is unbound while a PCM stream is open, a
use-after-free can occur in snd_soc_dapm_stream_event(), called from
the close_delayed_work workqueue handler.

During unbind, snd_soc_unbind_card() flushes delayed work and then
calls soc_cleanup_card_resources(). Inside cleanup,
snd_card_disconnect_sync() releases all PCM file descriptors, and
the resulting PCM close path can call snd_soc_dapm_stream_stop()
which schedules new delayed work with a pmdown_time timer delay.
Since this happens after the flush in snd_soc_unbind_card(), the
new work is not caught. soc_remove_link_components() then frees
DAPM widgets before this work fires, leading to the use-after-free.

The existing flush in soc_free_pcm_runtime() also cannot help as it
runs after soc_remove_link_components() has already freed the widgets.

Add a flush in soc_cleanup_card_resources() after
snd_card_disconnect_sync() (after which no new PCM closes can
schedule further delayed work) and before soc_remove_link_dais()
and soc_remove_link_components() (which tear down the structures the
delayed work accesses).

Fixes: e894efef9ac7 ("ASoC: core: add support to card rebind")
Signed-off-by: Matteo Cotifava &lt;cotifavamatteo@gmail.com&gt;
Link: https://patch.msgid.link/20260309215412.545628-3-cotifavamatteo@gmail.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: drop delayed_work_pending() check before flush</title>
<updated>2026-03-19T15:14:52Z</updated>
<author>
<name>matteo.cotifava</name>
<email>cotifavamatteo@gmail.com</email>
</author>
<published>2026-03-09T21:54:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d01282e28cccba5fb6ac0cc46e6b2c06c5f71847'/>
<id>urn:sha1:d01282e28cccba5fb6ac0cc46e6b2c06c5f71847</id>
<content type='text'>
[ Upstream commit 3c99c9f0ed60582c1c9852b685d78d5d3a50de63 ]

The delayed_work_pending() check before flush_delayed_work() in
soc_free_pcm_runtime() is unnecessary and racy. flush_delayed_work()
is safe to call unconditionally - it is a no-op when no work is
pending. Remove the check.

The original check was added by commit 9c9b65203492 ("ASoC: core:
only flush inited work during free") but delayed_work_pending()
followed by flush_delayed_work() has a time-of-check/time-of-use
window where work can become pending between the two calls.

Fixes: 9c9b65203492 ("ASoC: core: only flush inited work during free")
Signed-off-by: Matteo Cotifava &lt;cotifavamatteo@gmail.com&gt;
Link: https://patch.msgid.link/20260309215412.545628-2-cotifavamatteo@gmail.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: Pre-check zero CPU/codec DAIs, handle early rtd-&gt;dais alloc failure</title>
<updated>2025-11-19T11:29:49Z</updated>
<author>
<name>jempty.liang</name>
<email>imntjempty@163.com</email>
</author>
<published>2025-11-19T10:11:16Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e2c48498a93404743e0565dcac29450fec02e6a3'/>
<id>urn:sha1:e2c48498a93404743e0565dcac29450fec02e6a3</id>
<content type='text'>
This commit adds a pre-check in ASoC to ensure there are non-zero CPU or
codec DAIs. It also handles early failure of memory allocation for
rtd-&gt;dais by going to the cleanup path, preventing potential issues
from invalid configurations or out-of-memory situations.

Signed-off-by: jempty.liang &lt;imntjempty@163.com&gt;
Link: https://patch.msgid.link/20251119101116.78676-1-imntjempty@163.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: convert to snd_soc_dapm_xxx()</title>
<updated>2025-11-17T00:18:28Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2025-11-11T00:36:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e758b08d7170ee96e3461cec5c5b33e9aff5a75e'/>
<id>urn:sha1:e758b08d7170ee96e3461cec5c5b33e9aff5a75e</id>
<content type='text'>
This patch converts below functions.

dapm-&gt;dev					-&gt; snd_soc_dapm_to_dev()
dapm-&gt;card					-&gt; snd_soc_dapm_to_card()
dapm-&gt;component					-&gt; snd_soc_dapm_to_component()

dapm_kcontrol_get_value()			-&gt; snd_soc_dapm_kcontrol_get_value()

snd_soc_component_enable_pin()			-&gt; snd_soc_dapm_enable_pin()
snd_soc_component_enable_pin_unlocked()		-&gt; snd_soc_dapm_enable_pin_unlocked()
snd_soc_component_disable_pin()			-&gt; snd_soc_dapm_disable_pin()
snd_soc_component_disable_pin_unlocked()	-&gt; snd_soc_dapm_disable_pin_unlocked()
snd_soc_component_nc_pin()			-&gt; snd_soc_dapm_nc_pin()
snd_soc_component_nc_pin_unlocked()		-&gt; snd_soc_dapm_nc_pin_unlocked()
snd_soc_component_get_pin_status()		-&gt; snd_soc_dapm_get_pin_status()
snd_soc_component_force_enable_pin()		-&gt; snd_soc_dapm_force_enable_pin()
snd_soc_component_force_enable_pin_unlocked()	-&gt; snd_soc_dapm_force_enable_pin_unlocked()
snd_soc_component_force_bias_level()		-&gt; snd_soc_dapm_force_bias_level()
snd_soc_component_get_bias_level()		-&gt; snd_soc_dapm_get_bias_level()
snd_soc_component_init_bias_level()		-&gt; snd_soc_dapm_init_bias_level()
snd_soc_component_get_dapm()			-&gt; snd_soc_component_to_dapm()

snd_soc_dapm_kcontrol_component()		-&gt; snd_soc_dapm_kcontrol_to_component()
snd_soc_dapm_kcontrol_widget()			-&gt; snd_soc_dapm_kcontrol_to_widget()
snd_soc_dapm_kcontrol_dapm()			-&gt; snd_soc_dapm_kcontrol_to_dapm()
snd_soc_dapm_np_pin()				-&gt; snd_soc_dapm_disable_pin()

Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Reviewed-by: Charles Keepax &lt;ckeepax@opensource.cirrus.com&gt;
Link: https://patch.msgid.link/87h5v1tngm.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-dapm: tidyup idle_bias handling - step1</title>
<updated>2025-09-18T21:24:15Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2025-09-04T05:21:33Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=889dd56f8c03586e5489050e7457a405fae6a420'/>
<id>urn:sha1:889dd56f8c03586e5489050e7457a405fae6a420</id>
<content type='text'>
Current soc-dapm is using  "idle_bias_off", and its default settings
came from snd_soc_component "idle_bias_on". It is complicated/confusable.

Let's handling it as "idle_bias".

Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Link: https://patch.msgid.link/874itix06a.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: tidyup snd_soc_lookup_component_nolocked()</title>
<updated>2025-08-24T21:40:54Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2025-08-19T01:59:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b833b412a522e58b790abe79b6ec46e8ba1f312a'/>
<id>urn:sha1:b833b412a522e58b790abe79b6ec46e8ba1f312a</id>
<content type='text'>
snd_soc_lookup_component_nolocked() is very complex today.
Let's tidyup the code.

Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Message-ID: &lt;87cy8sysuy.wl-kuninori.morimoto.gx@renesas.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-core: care NULL dirver name on snd_soc_lookup_component_nolocked()</title>
<updated>2025-08-24T21:40:50Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2025-08-19T01:58:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=168873ca1799d3f23442b9e79eae55f907b9b126'/>
<id>urn:sha1:168873ca1799d3f23442b9e79eae55f907b9b126</id>
<content type='text'>
soc-generic-dmaengine-pcm.c uses same dev for both CPU and Platform.
In such case, CPU component driver might not have driver-&gt;name, then
snd_soc_lookup_component_nolocked() will be NULL pointer access error.
Care NULL driver name.

	Call trace:
	 strcmp from snd_soc_lookup_component_nolocked+0x64/0xa4
	 snd_soc_lookup_component_nolocked from snd_soc_unregister_component_by_driver+0x2c/0x44
	 snd_soc_unregister_component_by_driver from snd_dmaengine_pcm_unregister+0x28/0x64
	 snd_dmaengine_pcm_unregister from devres_release_all+0x98/0xfc
	 devres_release_all from device_unbind_cleanup+0xc/0x60
	 device_unbind_cleanup from really_probe+0x220/0x2c8
	 really_probe from __driver_probe_device+0x88/0x1a0
	 __driver_probe_device from driver_probe_device+0x30/0x110
	driver_probe_device from __driver_attach+0x90/0x178
	__driver_attach from bus_for_each_dev+0x7c/0xcc
	bus_for_each_dev from bus_add_driver+0xcc/0x1ec
	bus_add_driver from driver_register+0x80/0x11c
	driver_register from do_one_initcall+0x58/0x23c
	do_one_initcall from kernel_init_freeable+0x198/0x1f4
	kernel_init_freeable from kernel_init+0x1c/0x12c
	kernel_init from ret_from_fork+0x14/0x28

Fixes: 144d6dfc7482 ("ASoC: soc-core: merge snd_soc_unregister_component() and snd_soc_unregister_component_by_driver()")
Reported-by: J. Neuschäfer &lt;j.ne@posteo.net&gt;
Closes: https://lore.kernel.org/r/aJb311bMDc9x-dpW@probook
Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Reported-by: Ondřej Jirman &lt;megi@xff.cz&gt;
Closes: https://lore.kernel.org/r/arxpwzu6nzgjxvsndct65ww2wz4aezb5gjdzlgr24gfx7xvyih@natjg6dg2pj6
Tested-by: J. Neuschäfer &lt;j.ne@posteo.net&gt;
Message-ID: &lt;87ect8ysv8.wl-kuninori.morimoto.gx@renesas.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: soc-dapm: cleanups</title>
<updated>2025-07-07T20:02:59Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2025-07-07T20:02:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bb96a315b4d84904edd2dae17910f10022ab71d5'/>
<id>urn:sha1:bb96a315b4d84904edd2dae17910f10022ab71d5</id>
<content type='text'>
Merge series from Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;:

This is prepare to hiding snd_soc_dapm_context inside soc-dapm.c
</content>
</entry>
<entry>
<title>ASoC: soc-dapm: add prefix on soc_dapm_dev_attrs</title>
<updated>2025-07-07T15:13:09Z</updated>
<author>
<name>Kuninori Morimoto</name>
<email>kuninori.morimoto.gx@renesas.com</email>
</author>
<published>2025-07-01T00:11:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=08dc0f5cc26a203e8008c38d9b436c079e7dbb45'/>
<id>urn:sha1:08dc0f5cc26a203e8008c38d9b436c079e7dbb45</id>
<content type='text'>
soc_dapm_dev_attrs is global variable. Let's add snd_soc_ prefix.

Signed-off-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Link: https://patch.msgid.link/87ikkchis6.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
</feed>
