<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/sound/pci, branch linux-7.1.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.1.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.1.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2026-05-16T13:41:58+00:00</updated>
<entry>
<title>ALSA: asihpi: Fix potential OOB array access at reading cache</title>
<updated>2026-05-16T13:41:58+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2026-05-15T08:55:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7b7d6572145c1dab2dd9bfb550b188e5f0ff3c3f'/>
<id>urn:sha1:7b7d6572145c1dab2dd9bfb550b188e5f0ff3c3f</id>
<content type='text'>
find_control() to retrieve a cached info accesses the array with the
given index blindly, which may lead to an OOB array access.
Add a sanity check for avoiding it.

Link: https://sashiko.dev/#/patchset/20260511230121.28606-1-rosenp%40gmail.com
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://patch.msgid.link/20260515085606.242284-1-tiwai@suse.de
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: als4000: Fix capture trigger chip-&gt;mode race</title>
<updated>2026-04-20T15:59:19+00:00</updated>
<author>
<name>Cássio Gabriel</name>
<email>cassiogabrielcontato@gmail.com</email>
</author>
<published>2026-04-17T20:30:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4cc3ec3d8b3536f2293a5a984c28ba2a09e8b22d'/>
<id>urn:sha1:4cc3ec3d8b3536f2293a5a984c28ba2a09e8b22d</id>
<content type='text'>
snd_als4000_capture_trigger() updates chip-&gt;mode under mixer_lock,
while snd_als4000_set_rate() and snd_als4000_playback_trigger()
serialize the same rate-lock state with reg_lock.

The PCM core serializes callbacks only per acted-on substream, or for an
explicitly linked group, so unlinked playback and capture streams can
run concurrently.

That leaves two races on ALS4000 rate-lock state:
- playback and capture trigger callbacks can concurrently update
  chip-&gt;mode and lose one of the SB_RATE_LOCK bits
- snd_als4000_set_rate() can observe chip-&gt;mode without the capture
  lock bit set and reprogram the shared sample rate while capture is
  being started

Fix this by taking reg_lock as the outer lock in
snd_als4000_capture_trigger() and nesting mixer_lock only for the CR1E
write. This keeps chip-&gt;mode serialized with the rest of the ALS4000
rate-lock users while preserving the existing CR1E programming
sequence.

Signed-off-by: Cássio Gabriel &lt;cassiogabrielcontato@gmail.com&gt;
Link: https://patch.msgid.link/20260417-als4000-capture-trigger-race-v1-1-daeffc2feb67@gmail.com
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Add fallback to default RSR for S/PDIF</title>
<updated>2026-04-06T08:46:13+00:00</updated>
<author>
<name>Harin Lee</name>
<email>me@harin.net</email>
</author>
<published>2026-04-06T07:49:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7d61662197ecdc458e33e475b6ada7f6da61d364'/>
<id>urn:sha1:7d61662197ecdc458e33e475b6ada7f6da61d364</id>
<content type='text'>
spdif_passthru_playback_get_resources() uses atc-&gt;pll_rate as the RSR
for the MSR calculation loop. However, pll_rate is only updated in
atc_pll_init() and not in hw_pll_init(), so it remains 0 after the
card init.

When spdif_passthru_playback_setup() skips atc_pll_init() for
32000 Hz, (rsr * desc.msr) always becomes 0, causing the loop to spin
indefinitely.

Add fallback to use atc-&gt;rsr when atc-&gt;pll_rate is 0. This reflects
the hardware state, since hw_card_init() already configures the PLL
to the default RSR.

Fixes: 8cc72361481f ("ALSA: SB X-Fi driver merge")
Cc: stable@vger.kernel.org
Signed-off-by: Harin Lee &lt;me@harin.net&gt;
Link: https://patch.msgid.link/20260406074913.217374-1-me@harin.net
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Limit PTP to a single page</title>
<updated>2026-04-06T08:44:47+00:00</updated>
<author>
<name>Harin Lee</name>
<email>me@harin.net</email>
</author>
<published>2026-04-06T07:48:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e9418da50d9e5c496c22fe392e4ad74c038a94eb'/>
<id>urn:sha1:e9418da50d9e5c496c22fe392e4ad74c038a94eb</id>
<content type='text'>
Commit 391e69143d0a increased CT_PTP_NUM from 1 to 4 to support 256
playback streams, but the additional pages are not used by the card
correctly. The CT20K2 hardware already has multiple VMEM_PTPAL
registers, but using them separately would require refactoring the
entire virtual memory allocation logic.

ct_vm_map() always uses PTEs in vm-&gt;ptp[0].area regardless of
CT_PTP_NUM. On AMD64 systems, a single PTP covers 512 PTEs (2M). When
aggregate memory allocations exceed this limit, ct_vm_map() tries to
access beyond the allocated space and causes a page fault:

  BUG: unable to handle page fault for address: ffffd4ae8a10a000
  Oops: Oops: 0002 [#1] SMP PTI
  RIP: 0010:ct_vm_map+0x17c/0x280 [snd_ctxfi]
  Call Trace:
  atc_pcm_playback_prepare+0x225/0x3b0
  ct_pcm_playback_prepare+0x38/0x60
  snd_pcm_do_prepare+0x2f/0x50
  snd_pcm_action_single+0x36/0x90
  snd_pcm_action_nonatomic+0xbf/0xd0
  snd_pcm_ioctl+0x28/0x40
  __x64_sys_ioctl+0x97/0xe0
  do_syscall_64+0x81/0x610
  entry_SYSCALL_64_after_hwframe+0x76/0x7e

Revert CT_PTP_NUM to 1. The 256 SRC_RESOURCE_NUM and playback_count
remain unchanged.

Fixes: 391e69143d0a ("ALSA: ctxfi: Bump playback substreams to 256")
Cc: stable@vger.kernel.org
Signed-off-by: Harin Lee &lt;me@harin.net&gt;
Link: https://patch.msgid.link/20260406074857.216034-1-me@harin.net
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Precompute SRC allocation loop bound</title>
<updated>2026-04-01T12:43:54+00:00</updated>
<author>
<name>Harin Lee</name>
<email>me@harin.net</email>
</author>
<published>2026-04-01T09:01:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=80449e1966cb9df57617a1d22bccd1e29cbc4222'/>
<id>urn:sha1:80449e1966cb9df57617a1d22bccd1e29cbc4222</id>
<content type='text'>
Replace the capability checks in the SRC and SRCIMP allocation loops
with a precomputed loop bound. Cards with a dedicated mic input
(SB1270, OK0010) allocate all NUM_ATC_SRCS entries, otherwise stop
at 4.

Signed-off-by: Harin Lee &lt;me@harin.net&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20260401090159.2404387-4-me@harin.net
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Use correct DAIO type for da_desc</title>
<updated>2026-04-01T12:43:54+00:00</updated>
<author>
<name>Harin Lee</name>
<email>me@harin.net</email>
</author>
<published>2026-04-01T09:01:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=07b116b44e52d78af40c2d39a8e1e34ef1283d0d'/>
<id>urn:sha1:07b116b44e52d78af40c2d39a8e1e34ef1283d0d</id>
<content type='text'>
Skip the unused DAIO type per model (SPDIFIO on CTSB073X, SPDIFI_BAY
on all others) and use the correct DAIO type directly as da_desc
type. This removes the mismatch and misleading between the actual
DAIO resource and the da_desc type like SPDIFI_BAY (formerly SPDIFI1).
Update related functions accordingly, and drop the unreachable
SPDIFI_BAY case from the hw20k2 daio_device_index().

Signed-off-by: Harin Lee &lt;me@harin.net&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20260401090159.2404387-3-me@harin.net
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Rename SPDIFI1 to SPDIFI_BAY</title>
<updated>2026-04-01T12:43:54+00:00</updated>
<author>
<name>Harin Lee</name>
<email>me@harin.net</email>
</author>
<published>2026-04-01T09:01:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c6cd83cceec5f2a1e2dd319d98640b1f0007d668'/>
<id>urn:sha1:c6cd83cceec5f2a1e2dd319d98640b1f0007d668</id>
<content type='text'>
Rename the SPDIFI1 enum value to SPDIFI_BAY to better reflect its
purpose as the S/PDIF input on the internal drive bay, as opposed to
the S/PDIF input via Flexijack or optical (SPDIFIO; not SPDIFI-zero).

Signed-off-by: Harin Lee &lt;me@harin.net&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20260401090159.2404387-2-me@harin.net
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' into for-next</title>
<updated>2026-04-01T12:43:00+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2026-04-01T12:42:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0542972950ef26670a5696e43c0ea2b7b6ac96d4'/>
<id>urn:sha1:0542972950ef26670a5696e43c0ea2b7b6ac96d4</id>
<content type='text'>
Pull 7.0 devel branch for further cleanups of ctxfi driver &amp; co.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Don't enumerate SPDIF1 at DAIO initialization</title>
<updated>2026-03-31T08:13:10+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2026-03-31T08:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=75dc1980cf48826287e43dc7a49e310c6691f97e'/>
<id>urn:sha1:75dc1980cf48826287e43dc7a49e310c6691f97e</id>
<content type='text'>
The recent refactoring of xfi driver changed the assignment of
atc-&gt;daios[] at atc_get_resources(); now it loops over all enum
DAIOTYP entries while it looped formerly only a part of them.
The problem is that the last entry, SPDIF1, is a special type that
is used only for hw20k1 CTSB073X model (as a replacement of SPDIFIO),
and there is no corresponding definition for hw20k2.  Due to the lack
of the info, it caused a kernel crash on hw20k2, which was already
worked around by the commit b045ab3dff97 ("ALSA: ctxfi: Fix missing
SPDIFI1 index handling").

This patch addresses the root cause of the regression above properly,
simply by skipping the incorrect SPDIF1 type in the parser loop.

For making the change clearer, the code is slightly arranged, too.

Fixes: a2dbaeb5c61e ("ALSA: ctxfi: Refactor resource alloc for sparse mappings")
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://bugzilla.suse.com/show_bug.cgi?id=1259925
Link: https://patch.msgid.link/20260331081227.216134-1-tiwai@suse.de
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: ctxfi: Check the error for index mapping</title>
<updated>2026-03-29T09:13:53+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2026-03-29T09:12:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=277c6960d4ddb94d16198afd70c92c3d4593d131'/>
<id>urn:sha1:277c6960d4ddb94d16198afd70c92c3d4593d131</id>
<content type='text'>
The ctxfi driver blindly assumed a proper value returned from
daio_device_index(), but it's not always true.  Add a proper error
check to deal with the error from the function.

Cc: &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/87cy149n6k.wl-tiwai@suse.de
Link: https://patch.msgid.link/20260329091240.420194-2-tiwai@suse.de
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
