[alsa-devel] [PATCH] ALSA: dice: add stream format parameters for TC Electronic Digital Konnekt x32
Takashi Iwai
tiwai at suse.de
Mon May 21 11:34:21 CEST 2018
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.
>
> [alsa-devel] 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 at sakamocchi.jp>
Applied, thanks.
Takashi
More information about the Alsa-devel
mailing list