<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/firewire/tascam, branch master</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=master</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-10-18T03:58:56Z</updated>
<entry>
<title>ALSA: firewire-tascam: reserve resources for transferred isochronous packets at S400</title>
<updated>2025-10-18T03:58:56Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2025-10-18T03:55:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbd0cf204fe6ba7ba226153d1d90369019b90164'/>
<id>urn:sha1:dbd0cf204fe6ba7ba226153d1d90369019b90164</id>
<content type='text'>
TASCAM FW-1884/FW-1804/FW-1082 have a quirk that they often freeze when
receiving isochronous packets at S400. This behaviour is suppressed by a
new quirk flag added in Linux FireWire core to restrict maximum speed.
Consequently both of the asynchronous transactions and isochronous
transmissions are done at S200. However, the device still transfers
isochronous packet at S400, and the way to indicate the transmission
speed is not cleared yet.

This commit correctly reserves isochronous resources for the transferred
packet stream at S400. As a beneficial side effect, the pair of
isochronous transmissions for FW-1884 fits within the bandwidth capacity
of the bus.

Link: https://lore.kernel.org/r/20251018035532.287124-5-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: tascam: Use guard() for spin locks</title>
<updated>2025-08-30T08:02:27Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2025-08-28T13:27:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8885ab5f215cc99918b4b711c2d8578004ae5481'/>
<id>urn:sha1:8885ab5f215cc99918b4b711c2d8578004ae5481</id>
<content type='text'>
Clean up the code using guard() for spin locks.

Merely code refactoring, and no behavior change.

Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20250828132802.9032-19-tiwai@suse.de
</content>
</entry>
<entry>
<title>ALSA: firewire: tascam: Use guard() for mutex locks</title>
<updated>2025-08-30T08:02:21Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2025-08-28T13:27:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=61a5f22fb15129a90d3be6a32ce8131cb84db002'/>
<id>urn:sha1:61a5f22fb15129a90d3be6a32ce8131cb84db002</id>
<content type='text'>
Replace the manual mutex lock/unlock pairs with guard() for code
simplification.

Only code refactoring, and no behavior change.

Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20250828132802.9032-8-tiwai@suse.de
</content>
</entry>
<entry>
<title>ALSA: firewire: tascam: Use safer strscpy() instead of strcpy()</title>
<updated>2025-07-11T07:53:08Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2025-07-10T10:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c03ebbdfddc1a8ae5a50a77819069688f0cffbe3'/>
<id>urn:sha1:c03ebbdfddc1a8ae5a50a77819069688f0cffbe3</id>
<content type='text'>
Use a safer function strscpy() instead of strcpy() for copying to
arrays.

Only idiomatic code replacement, and no functional changes.

Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Link: https://patch.msgid.link/20250710100727.22653-22-tiwai@suse.de
</content>
</entry>
<entry>
<title>ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init()</title>
<updated>2024-11-04T10:25:16Z</updated>
<author>
<name>Murad Masimov</name>
</author>
<published>2024-11-01T18:55:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8abbf1f01d6a2ef9f911f793e30f7382154b5a3a'/>
<id>urn:sha1:8abbf1f01d6a2ef9f911f793e30f7382154b5a3a</id>
<content type='text'>
If amdtp_stream_init() fails in amdtp_tscm_init(), the latter returns zero,
though it's supposed to return error code, which is checked inside
init_stream() in file tascam-stream.c.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 47faeea25ef3 ("ALSA: firewire-tascam: add data block processing layer")
Signed-off-by: Murad Masimov &lt;m.masimov@maxima.ru&gt;
Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://patch.msgid.link/20241101185517.1819-1-m.masimov@maxima.ru
</content>
</entry>
<entry>
<title>ALSA: firewire: use nonatomic PCM operation</title>
<updated>2024-09-04T12:51:54Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2024-09-04T12:51:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c49cc0ed405cadb60d8c4484f95ffdaf7c6ec5c'/>
<id>urn:sha1:5c49cc0ed405cadb60d8c4484f95ffdaf7c6ec5c</id>
<content type='text'>
In the former commits, the callback of isochronous context runs on usual
work process. In the case, ALSA PCM device has a flag, nonatomic, to
acquire mutex lock instead of spin lock for PCM substream group.

This commit uses the flag. It has an advantage in the case that ALSA PCM
application uses the large size of intermediate buffer, since it takes
too long time even in tasklet softIRQ to process many of isochronous
packets, then result in the delay of system event due to disabled IRQ so
long. It is avertible to switch to nonatomic operation.

Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Tested-by: Edmund Raile &lt;edmund.raile@protonmail.com&gt;
Link: https://lore.kernel.org/r/20240904125155.461886-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: Use *-y instead of *-objs in Makefile</title>
<updated>2024-05-08T16:18:03Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2024-05-07T13:55:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fdd51b3e73e906aac056f2c337710185607d43d1'/>
<id>urn:sha1:fdd51b3e73e906aac056f2c337710185607d43d1</id>
<content type='text'>
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).

Let's correct the old usages of *-objs in Makefiles.

Cc: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Reviewed-by: Jaroslav Kysela &lt;perex@perex.cz&gt;
Link: https://lore.kernel.org/r/20240507135513.14919-8-tiwai@suse.de
</content>
</entry>
<entry>
<title>ALSA: firewire: Fix -Wformat-truncation warning for MIDI stream names</title>
<updated>2023-09-15T11:22:06Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2023-09-15T08:28:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ea77850e98410987525eb392c229949c87779835'/>
<id>urn:sha1:ea77850e98410987525eb392c229949c87779835</id>
<content type='text'>
The compile warnings at filling MIDI stream name strings are all
false-positive; the number of streams can't go so high.

For suppressing the warning, replace snprintf() with scnprintf().
As stated in the above, truncation doesn't matter.

Link: https://lore.kernel.org/r/20230915082802.28684-12-tiwai@suse.de
Reviewed-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Tested-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: use 'GPL' string for module license contributed by Takashi Sakamoto</title>
<updated>2023-06-12T12:38:58Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2023-06-11T14:44:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81c29435073355b8194986a2193d3e7b9d449225'/>
<id>urn:sha1:81c29435073355b8194986a2193d3e7b9d449225</id>
<content type='text'>
In MODULE_LICENSE macro, "GPL" string obsoletes "GPL v2" string by a
commit bf7fbeeae6db ("module: Cure the MODULE_LICENSE "GPL" vs. "GPL v2"
bogosity").

This commit uses the preferable expression.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Link: https://lore.kernel.org/r/20230611144445.221529-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: add missing unwind goto in snd_tscm_stream_start_duplex()</title>
<updated>2023-04-06T14:45:03Z</updated>
<author>
<name>Xu Biang</name>
</author>
<published>2023-04-06T13:28:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fb4a624f88f658c7b7ae124452bd42eaa8ac7168'/>
<id>urn:sha1:fb4a624f88f658c7b7ae124452bd42eaa8ac7168</id>
<content type='text'>
Smatch Warns:
sound/firewire/tascam/tascam-stream.c:493 snd_tscm_stream_start_duplex()
warn: missing unwind goto?

The direct return will cause the stream list of "&amp;tscm-&gt;domain" unemptied
and the session in "tscm" unfinished if amdtp_domain_start() returns with
an error.

Fix this by changing the direct return to a goto which will empty the
stream list of "&amp;tscm-&gt;domain" and finish the session in "tscm".

The snd_tscm_stream_start_duplex() function is called in the prepare
callback of PCM. According to "ALSA Kernel API Documentation", the prepare
callback of PCM will be called many times at each setup. So, if the
"&amp;d-&gt;streams" list is not emptied, when the prepare callback is called
next time, snd_tscm_stream_start_duplex() will receive -EBUSY from
amdtp_domain_add_stream() that tries to add an existing stream to the
domain. The error handling code after the "error" label will be executed
in this case, and the "&amp;d-&gt;streams" list will be emptied. So not emptying
the "&amp;d-&gt;streams" list will not cause an issue. But it is more efficient
and readable to empty it on the first error by changing the direct return
to a goto statement.

The session in "tscm" has been begun before amdtp_domain_start(), so it
needs to be finished when amdtp_domain_start() fails.

Fixes: c281d46a51e3 ("ALSA: firewire-tascam: support AMDTP domain")
Signed-off-by: Xu Biang &lt;xubiang@hust.edu.cn&gt;
Reviewed-by: Dan Carpenter &lt;error27@gmail.com&gt;
Acked-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20230406132801.105108-1-xubiang@hust.edu.cn
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
