• Daniel Mack's avatar
    ALSA: usbaudio: implement basic set of class v2.0 parser · 53ee98fe
    Daniel Mack authored
    This adds a number of parsers for audio class v2.0. In particular, the
    following internals are different and now handled by the code:
    
    * the number of streaming interfaces is now reported by an interface
      association descriptor. The old approach using a proprietary
      descriptor is deprecated.
    
    * The number of channels per interface is now stored in the AS_GENERAL
      descriptor (used to be part of the FORMAT_TYPE descriptor).
    
    * The list of supported sample rates is no longer stored in a variable
      length appendix of the format_type descriptor but is retrieved from
      the device using a class specific GET_RANGE command.
    
    * Supported sample formats are now reported as 32bit bitmap rather than
      a fixed value. For now, this is worked around by choosing just one of
      them.
    
    * A devices needs to have at least one CLOCK_SOURCE descriptor which
      denotes a clockID that is needed im the class request command.
    
    * Many descriptors (format_type, ...) have changed their layout. Handle
      this by casting the descriptors to the appropriate structs.
    Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    53ee98fe
usbaudio.c 115 KB