Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/4] firewire: core: handle TASCAM FW-1884/FW-1804/FW-1082 quirk
@ 2025-10-18  3:55 Takashi Sakamoto
  2025-10-18  3:55 ` [PATCH 1/4] firewire: core: code refactoring to compute transaction speed Takashi Sakamoto
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Takashi Sakamoto @ 2025-10-18  3:55 UTC (permalink / raw)
  To: linux1394-devel; +Cc: linux-kernel, linux-sound

Hi,

In 2003, TEAC Corporation had released FW-1884/FW-1804/FW-1082 in its
TASCAM brand. These devices are already supported by a driver in ALSA
firewire stack, but they have an interoperability issue related to
the speed of asynchronous transactions and isochronous transmissions.
When operating at the speed described in configuration ROM, they are
too lazy to respond, and eventually frozen.

The most likely cause of this issue is a mismatch in the gap count
between the initiators and receivers. Theoretically, this can be
resolved by transmitting phy configuration packets to optimize gap count.
Nevertheless, this approach has proven ineffective, suggesting that the
device firmware may contain a bug causing the issue.

From my experience, these devices operate more reliably at lower
transaction and transmission speeds, which provides a practical
mitigation.

This patch series addresses the interoperability issue. The core function
of Linux FireWire subsystem is changed to read the entire configuration
ROM at the lowest speed (S100), and to identify these devices based on its
contents. Once identified, their maximum speed is limited to S200. The
ALSA driver then performs asynchronous requests and isochronous
transmission at that speed to prevent device freezes.

Takashi Sakamoto (4):
  firewire: core: code refactoring to compute transaction speed
  firewire: core: determine transaction speed after detecting quirks
  firewire: core: handle device quirk of TASCAM FW-1884/FW-1804/FW-1082
  ALSA: firewire-tascam: reserve resources for transferred isochronous
    packets at S400

 drivers/firewire/core-device.c        | 86 +++++++++++++++------------
 include/linux/firewire.h              |  3 +
 sound/firewire/tascam/tascam-stream.c | 21 +++----
 3 files changed, 63 insertions(+), 47 deletions(-)


base-commit: 15f9610fc96ac6fd2844e63f7bf5a0b08e1c31c8
-- 
2.51.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-10-20  0:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-18  3:55 [PATCH 0/4] firewire: core: handle TASCAM FW-1884/FW-1804/FW-1082 quirk Takashi Sakamoto
2025-10-18  3:55 ` [PATCH 1/4] firewire: core: code refactoring to compute transaction speed Takashi Sakamoto
2025-10-18  3:55 ` [PATCH 2/4] firewire: core: determine transaction speed after detecting quirks Takashi Sakamoto
2025-10-18  3:55 ` [PATCH 3/4] firewire: core: handle device quirk of TASCAM FW-1884/FW-1804/FW-1082 Takashi Sakamoto
2025-10-18  3:55 ` [PATCH 4/4] ALSA: firewire-tascam: reserve resources for transferred isochronous packets at S400 Takashi Sakamoto
2025-10-20  0:19 ` [PATCH 0/4] firewire: core: handle TASCAM FW-1884/FW-1804/FW-1082 quirk Takashi Sakamoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox