ALSA: dice: ensure transmission speed for transmitted packets
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 3 Jan 2017 03:44:43 +0000 (12:44 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 3 Jan 2017 10:38:39 +0000 (11:38 +0100)
commitb0e159fe34f76abf4ae23a6c799f43b8c520695b
treec6a8525e790ff76e7a757e3d2756428e1cebf7d1
parent03abd33a11e3598dffbc821b2826ffc5fb6e980f
ALSA: dice: ensure transmission speed for transmitted packets

As of kernel 4.10, ALSA dice driver is expected to be used in default
speed. In most cases, it's S400. While, IEEE 1394 specification describes
the other speed such as S800.

According to 'TCD30XX User Guide', its link layer controller supports
several transmission speed up to S800[0]. In Dice software interface,
transmission speed in output direction can be configured by asynchronous
transaction to 'TX_SPEED' offset in its address space. S800 may be
available.

This commit improves configuration of transmission unit before starting
packet streaming for this purpose. The value of 'max_speed' in 'fw_device'
data structure has available maximum speed decided in bus arbitration,
thus it's within capacity of the unit.

[0] TCD3xx User Guide - TCAT 1394 LLC, Revision 0.9.0-41360 (TC Applied Technologies, May 6 2015)
http://www.tctechnologies.tc/index.php/support/support-hardware/dice-iii-detailed-documentation

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/dice/dice-interface.h
sound/firewire/dice/dice-stream.c