Skip to content
  • Takashi Sakamoto's avatar
    ALSA: firewire-motu: add an abstraction layer for three types of protocols · 59f6482c
    Takashi Sakamoto authored
    
    
    In an aspect of used protocols to communicate, models of MOTU FireWire
    units are categorized to three generations.
    
    This commit adds an abstraction layer of the protocols for features
    related to packet streaming functionality. This layer includes 5
    operations.
    
    When configuring packet streaming functionality with sampling rate and
    sampling transmission frequency, .get_clock_rate and .set_clock_rate are
    called with proper arguments. MOTU FireWire series supports up to 192.0kHz.
    
    When checking current source of sampling clock (not clock for packetization
    layer), .get_clock_source is used. Enumeration is added to represent the
    sources supported by this series. This operation can be used to expose
    available sampling rate to user space applications when the unit is
    configured to use any input signal as source of clock instead of crystal
    clock.
    
    In the protocols, the path between packet processing layer and digital
    signal processing layer can be controlled. This looks a functionality to
    'mute' the unit. For this feature, .switch_fetching_mode is added. This
    can be used to suppress noises every time packet streaming starts/stops.
    
    In a point of the size of data blocks at a certain sampling transmission
    frequency, the most units accept several modes. This is due to usage of
    optical interfaces. The size differs depending on which modes are
    configured to the interfaces; None, S/PDIF and ADAT. Additionally, format
    of packet is different depending on protocols. To cache current size of
    data blocks and its format, .cache_packet_formats is added. This is used
    by PCM functionality, packet streaming functionality and data block
    processing layer.
    
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    59f6482c