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@xxxxxxxxxxxxx> Applied to for-next branch now. Thanks. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel