Skip to content
  • Takashi Sakamoto's avatar
    ALSA: firewire-lib: continue packet processing at detecting wrong CIP headers · 2a7e1713
    Takashi Sakamoto authored
    In firewire-lib, isochronous packet streaming is stopped when detecting
    wrong value for FMT field of CIP headers. Although this is appropriate
    to IEC 61883-1 and 6, some BeBoB based devices with vendors' customization
    use invalid value to FMT field of CIP headers in the beginning of
    streaming.
    
    $ journalctl
      snd-bebob fw1.0: Detect unexpected protocol: 01000000 8000ffff
    
    I got this log with M-Audio FireWire 1814. In this line, the value of FMT
    field is 0x00, while it should be 0x10 in usual AMDTP.
    
    Except for the beginning, these devices continue to transfer packets with
    valid value for FMT field, except for the beginning. Therefore, in this
    case, firewire-lib should continue to process packets. The former
    implementation of firewire-lib performs it.
    
    This commit loosens the handling of wrong value, to continue packet
    processing in the case.
    
    Fixes: 414ba022
    
     ('ALSA: firewire-lib: add support arbitrary value for fmt/fdf fields in CIP header')
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    2a7e1713