• Takashi Sakamoto's avatar
    ALSA: firewire-lib: fix wrong value for FDF field as an empty packet · 82755abf
    Takashi Sakamoto authored
    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: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Cc: Acked-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    82755abf
amdtp.c 19 KB