]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: firewire-lib: fix wrong value for FDF field as an empty packet
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 21 Nov 2013 05:21:06 +0000 (14:21 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 22 Nov 2013 14:30:46 +0000 (15:30 +0100)
commitf8366de2d2a1cf6fb546d866c38a8a8bb6bff6c2
treebfcbee76387927254a59706bb5a26c97db670857
parent96ab243b94372e382ca5b360ee6bcc670859d724
ALSA: firewire-lib: fix wrong value for FDF field as an empty packet

This commit fix out of specification about the value of FDF field in out packet
with 'no data'. This affects blocking mode.

According to IEC 61883-6, there is two way to generate AMDTP packets include no
data in blocking mode.

Way 1. an empty packet defined in IEC 61883-1
 - Size of packet is 2 quadlets.
 - The value of FDF is sfc.
 - The packet includes only CIP headers

Way 2. a special non-empty packet defined in IEC 61883-6
 - Size of packet is following to blocking mode
 - The value of FDF is 0xff. This value is 'NO-DATA'. This means 'The receiver'
   must ignore all the data in a CIP with this FDF code'.
 - The packet includes dummy data.

But current implementation is a combination of them.
 - Size of packet is 2 (way 1)
 - FDF = 0xff (way 2)
This causes BeBoB chipset cannot sound.

This patch applies Way 1.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp.c