On Sun, 20 May 2018 07:40:44 +0200, Takashi Sakamoto wrote: > > TC Electronic Digital Konnekt x32 is an application of WaveFront DiceII STD > and doesn't support TCAT extended application protocol. For such devices, > ALSA dice driver needs to have hard-coded parameters for stream formats. > > This commit adds stream format parameters for this model. Unfortunately, at > sampling transmission frequencies of 88.2/96.0kHz, I confirmed that current > ALSA dice driver doesn't drive the device appropriately due to detecting > packet discontinuities. > > $ journalctl > kernel: snd_dice fw1.0: Detect discontinuity of CIP: 90 80 > > At the frequencies, the device transfers 16 data blocks per packet and 16 > data channels per data block, as a result one packet includes 1032 bytes > if it's not NODATA. However, as long as I checked, the device often > postpone packet transmission and continue with truncated payload than > metadata in isochronous packet header. Below is a sample of sequence I got. > > sec cycle bytes CIP1 CIP2 > 37 3314 1032 0x01100090 0x900449E2 > 37 3315 8 0x011000A0 0x9004FFFF > 37 3316 1032 0x011000A0 0x900461E2 > 37 3317 1032 0x011000B0 0x900475E2 > 37 3318 1032 0x011000C0 0x900489E2 > 37 3319 8 0x011000D0 0x9004FFFF > 37 3320 1032 0x011000D0 0x9004A1E2 > 37 3321 1032 0x011000E0 0x9004B5E2 > 37 3322 1032 0x011000F0 0x9004C9E2 > 37 3323 8 0x01100000 0x9004FFFF > 37 3324 1032 0x01100000 0x9004E1E2 > 37 3325 1032 0x01100010 0x9004F5E2 > 37 3326 1032 0x01100020 0x900409E2 > 37 3327 8 0x01100030 0x9004FFFF > 37 3328 1032 0x01100030 0x900421E2 > 37 3329 1032 0x01100040 0x900435E2 > 37 3330 (skip) > 37 3331 (skip) > 37 3332 (skip) > 37 3333 (skip) > 37 3334 (skip) > 37 3335 (skip) > 37 3336 (skip) > 37 3337 (skip) > 37 3338 (skip) > 37 3339 (skip) > 37 3340 (skip) > 37 3341 (skip) > 37 3342 (skip) > 37 3343 (skip) > 37 3344 (skip) > 37 3345 (skip) > 37 3346 (skip) > 37 3347 (skip) > 37 3348 (skip) > 37 3349 (skip) > 37 3350 (skip) > 37 3351 (skip) > 37 3352 (skip) > 37 3353 (skip) > 37 3354 (skip) > 37 3355 (skip) > 37 3356 (skip) > 37 3357 (skip) > 37 3358 (skip) > 37 3359 (skip) > 37 3360 (skip) > 37 3361 (skip) > 37 3362 (skip) > 37 3363 (skip) > 37 3364 (skip) > 37 3365 (skip) > 37 3366 (skip) > 37 3367 1032 0x01100050 0x900461E1 > 37 3368 1032 0x01100060 0x900475E1 > 37 3369 1032 0x01100070 0x9004A1E1 > 37 3370 1032 0x01100080 0x9004A1E1 but content of payload is truncated. > 37 3371 (skip) > 37 3371 1032 0x01100080 0x9004B5E0 detect discontinuity > 37 3372 1032 0x01100090 0x9004C9E0 > 37 3373 1032 0x011000A0 0x9004E1E0 > 37 3374 1032 0x011000B0 0x9004F5E0 > 37 3375 1032 0x011000C0 0x900409E0 > 37 3376 1032 0x011000D0 0x900421E0 > 37 3377 1032 0x011000E0 0x900435E0 > 37 3378 1032 0x011000F0 0x900449DF > 37 3379 8 0x01100000 0x9004FFFF > 37 3380 1032 0x01100000 0x900461DF > 37 3381 1032 0x01100010 0x900475DF > 37 3382 1032 0x01100020 0x900489DF > 37 3383 8 0x01100030 0x9004FFFF > 37 3384 1032 0x01100030 0x9004A1DF > 37 3385 1032 0x01100040 0x9004B5DF > 37 3386 1032 0x01100050 0x9004C9DF > 37 3387 8 0x01100060 0x9004FFFF > > I cannot confirm this quirks with Windows driver. ALSA dice driver has a > cause if assumed differences between these two drivers are ways of > timestampling to RX packets from the drivers to the device. I've already > reported timestamping quirk of Dice-based devices and this might bring > this issue. > > Dice packet sequence quirk and ALSA firewire stack in Linux 4.6 > http://mailman.alsa-project.org/pipermail/alsa-devel/2016-May/107715.html > > Well, nevertheless, I enable ALSA dice driver to work at the frequencies. > This may brings inconvenience to users but I expect developers and users > to fix it. > > $ cd linux-firewire-utils/src > $ python2 crpp < /sys/bus/firewire/devices/fw1/config_rom > ROM header and bus information block > ----------------------------------------------------------------- > 400 040423bb bus_info_length 4, crc_length 4, crc 9147 > 404 31333934 bus_name "1394" > 408 e0ff8112 irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 255, > max_rec 8 (512), max_rom 1, gen 1, spd 2 (S400) > 40c 00016604 company_id 000166 | > 410 0c232c28 device_id 040c232c28 | EUI-64 000166040c232c28 > > root directory > ----------------------------------------------------------------- > 414 0006b6cb directory_length 6, crc 46795 > 418 03000166 vendor > 41c 8100000a --> descriptor leaf at 444 > 420 17000030 model > 424 8100000f --> descriptor leaf at 460 > 428 0c0087c0 node capabilities per IEEE 1394 > 42c d1000001 --> unit directory at 430 > > unit directory at 430 > ----------------------------------------------------------------- > 430 000476c2 directory_length 4, crc 30402 > 434 12000166 specifier id > 438 13000001 version > 43c 17000030 model > 440 81000010 --> descriptor leaf at 480 > > descriptor leaf at 444 > ----------------------------------------------------------------- > 444 0006c490 leaf_length 6, crc 50320 > 448 00000000 textual descriptor > 44c 00000000 minimal ASCII > 450 54432045 "TC E" > 454 6c656374 "lect" > 458 726f6e69 "roni" > 45c 63000000 "c" > > descriptor leaf at 460 > ----------------------------------------------------------------- > 460 000772b4 leaf_length 7, crc 29364 > 464 00000000 textual descriptor > 468 00000000 minimal ASCII > 46c 44696769 "Digi" > 470 74616c4b "talK" > 474 6f6e6e65 "onne" > 478 6b747833 "ktx3" > 47c 32000000 "2" > > descriptor leaf at 480 > ----------------------------------------------------------------- > 480 000772b4 leaf_length 7, crc 29364 > 484 00000000 textual descriptor > 488 00000000 minimal ASCII > 48c 44696769 "Digi" > 490 74616c4b "talK" > 494 6f6e6e65 "onne" > 498 6b747833 "ktx3" > 49c 32000000 "2" > > Signed-off-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx> Applied, thanks. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel