[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251018035532.287124-1-o-takashi@sakamocchi.jp>
Date: Sat, 18 Oct 2025 12:55:28 +0900
From: Takashi Sakamoto <o-takashi@...amocchi.jp>
To: linux1394-devel@...ts.sourceforge.net
Cc: linux-kernel@...r.kernel.org,
linux-sound@...r.kernel.org
Subject: [PATCH 0/4] firewire: core: handle TASCAM FW-1884/FW-1804/FW-1082 quirk
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
Powered by blists - more mailing lists