[alsa-devel] [PATCH] ALSA: firewire-motu: add support MOTU 8pre FireWire
Takashi Iwai
tiwai at suse.de
Mon Mar 18 14:52:01 CET 2019
On Sun, 17 Mar 2019 08:50:24 +0100,
Takashi Sakamoto wrote:
>
> This commit adds support for MOTU 8pre FireWire, which was shipped 2007
> and nowadays already discontinued. Userspace applications can transmit
> and receive PCM frames and MIDI messages for this model via ALSA PCM
> interface and RawMidi/Sequencer interfaces.
>
> Like the other models of MOTU FireWire series, this model has many
> quirks in its CIP.
>
> At first, data channels for two pairs of optical interfaces. At lower
> sampling transmission frequency, i.e. 44.1 and 48.0 kHz, one pair is
> available for ADAT data, thus 8 data chunks are transferred by CIP.
> At middle sampling transmission frequency, i.e. 88.2 and 96.0 kHz,
> two pairs are available to keep 8 chunks for ADAT data, thus CIP
> still includes 8 data chunks.
>
> Apart from data chunks for optical interface, CIP includes fixed number
> of data chunks. In tx stream, two chunks for status message, eight
> chunks for samples from analog 1-8 input, two chunks for mix-return.
> In rx stream, two chunks for control message, two chunks for main 1-2
> output, two chunks for phone 1-2 output, two chunks for dummy 1-2.
>
> CIP header in tx stream includes quirks for its dbs and dbc fields.
> The value of dbs field is fixed to 0x13, against its actual size.
> The value of dbc field is firstly updated to 0x07 from zero, then
> it's incremented continuously according to actual number of data h
> blocks.
>
> Finally, the model has own bits to disable frame fetch.
>
> This commit uses several options to absorb the above quirks.
>
> $ python2 crpp < /sys/bus/firewire/devices/fw1/config_rom
> ROM header and bus information block
> -----------------------------------------------------------------
> 400 0410b57d bus_info_length 4, crc_length 16, crc 46461
> 404 31333934 bus_name "1394"
> 408 20001000 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 1 (4)
> 40c 0001f200 company_id 0001f2 |
> 410 00083dfb device_id 0000083dfb | EUI-64 0001f20000083dfb
>
> root directory
> -----------------------------------------------------------------
> 414 0004c65c directory_length 4, crc 50780
> 418 030001f2 vendor
> 41c 0c0083c0 node capabilities per IEEE 1394
> 420 8d000006 --> eui-64 leaf at 438
> 424 d1000001 --> unit directory at 428
>
> unit directory at 428
> -----------------------------------------------------------------
> 428 0003991c directory_length 3, crc 39196
> 42c 120001f2 specifier id
> 430 1300000f version
> 434 17103800 model
>
> eui-64 leaf at 438
> -----------------------------------------------------------------
> 438 00022681 leaf_length 2, crc 9857
> 43c 0001f200 company_id 0001f2 |
> 440 00083dfb device_id 0000083dfb | EUI-64 0001f20000083dfb
>
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
Applied to for-next branch now. Thanks.
Takashi
More information about the Alsa-devel
mailing list