ALSA: firewire-tascam: add data block processing layer
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 1 Oct 2015 13:02:14 +0000 (22:02 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 2 Oct 2015 16:17:01 +0000 (18:17 +0200)
commit47faeea25ef3a39f2224377a1fc76581cd18c044
tree84cb01821612f287ecf3471caf15abb0f08d844d
parent96e5fbb0dd128496378dbc404c2a894e49c1ac21
ALSA: firewire-tascam: add data block processing layer

TASCAM FireWire series uses non-blocking transmission for AMDTP packet
streaming, while the format of data blocks is unique.

The CIP headers includes specific value in FMT field and no SYT
information.

In transmitted packets, the first data channel represents event counter,
and the last data channel has status and control information. The rest
has 24bit PCM samples with right padding.

In received packets, all of data channels include 16, 24, 32bit PCM
samples. There's no other kind of information.

This commit adds support for this protocol. For convenience, the size of
PCM samples in outgoing packet is limited by 16 and 24bit. The status and
control information will be supported in future commits.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/tascam/Makefile
sound/firewire/tascam/amdtp-tascam.c [new file with mode: 0644]
sound/firewire/tascam/tascam.h