Skip to content
  • Takashi Sakamoto's avatar
    dfacca39
    ALSA: fireface: perform sequence replay for media clock recovery · dfacca39
    Takashi Sakamoto authored
    
    
    This commit takes ALSA fireface driver to perform sequence replay for
    media clock recovery.
    
    The protocol specific to RME Fireface series is not compliant to
    IEC 61883-1/6 since it has no CIP header, therefore presentation time
    is not used for media clock recovery. The sequence of the number of data
    blocks per packet is important.
    
    I note that the device skips an isochronous cycle corresponding to an
    empty packet or a NODATA packet in blocking transmission method of
    IEC 61883-1/6. For sequence replay, the cycle is handled as receiving an
    empty packet. Furthermore, it doesn't start packet transmission till
    receiving any packet.
    
    The sequence replay is tested with below models:
    
    * Fireface 400
    * Fireface 800
    * Fireface 802
    
    I note that it is better to initialize Fireface 400 in advance by
    initialization transaction implemented in snd-fireface-ctl-service of
    snd-firewire-ctl-services project. You can see whether initialized or
    not by HOST LED on the device. Unless, the device often stops packet
    transmission even if session starts.
    
    I guess the sequence replay also works well with below models:
    
    * Fireface UFX
    * Fireface UCX
    
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210531025103.17880-7-o-takashi@sakamocchi.jp
    
    
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    dfacca39
    ALSA: fireface: perform sequence replay for media clock recovery
    Takashi Sakamoto authored
    
    
    This commit takes ALSA fireface driver to perform sequence replay for
    media clock recovery.
    
    The protocol specific to RME Fireface series is not compliant to
    IEC 61883-1/6 since it has no CIP header, therefore presentation time
    is not used for media clock recovery. The sequence of the number of data
    blocks per packet is important.
    
    I note that the device skips an isochronous cycle corresponding to an
    empty packet or a NODATA packet in blocking transmission method of
    IEC 61883-1/6. For sequence replay, the cycle is handled as receiving an
    empty packet. Furthermore, it doesn't start packet transmission till
    receiving any packet.
    
    The sequence replay is tested with below models:
    
    * Fireface 400
    * Fireface 800
    * Fireface 802
    
    I note that it is better to initialize Fireface 400 in advance by
    initialization transaction implemented in snd-fireface-ctl-service of
    snd-firewire-ctl-services project. You can see whether initialized or
    not by HOST LED on the device. Unless, the device often stops packet
    transmission even if session starts.
    
    I guess the sequence replay also works well with below models:
    
    * Fireface UFX
    * Fireface UCX
    
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210531025103.17880-7-o-takashi@sakamocchi.jp
    
    
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Loading