04 Mar, 2010

1 commit


02 Mar, 2010

5 commits


23 Feb, 2010

5 commits

  • Use the definitions from linux/usb/audio.h all over the ALSA USB audio
    driver and add some missing definitions there as well.

    Use the endpoint attribute macros from linux/usb/ch9 and remove the own
    things from sound/usb/usbaudio.h.

    Now things are also nicely prefixed which makes understanding the code
    easier.

    Signed-off-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Daniel Mack
     
  • This is just a quick hack that needs to be removed once the new units
    defined by the audio class v2.0 standard are supported.

    However, it allows using these devices for now, without mixer support.

    Signed-off-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Daniel Mack
     
  • 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: Daniel Mack
    Signed-off-by: Takashi Iwai

    Daniel Mack
     
  • This patch adds some definitions for audio class v2.

    Unfortunately, the UNIT types PROCESSING_UNIT and EXTENSION_UNIT have
    different numerical representations in both standards, so there is need
    for a _V1 add-on now. usbmixer.c is changed accordingly.

    Signed-off-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Daniel Mack
     
  • In preparation of support for v2.0 audio class, use the structs from
    linux/usb/audio.h and add some new ones to describe the fields that are
    actually parsed by the descriptor decoders.

    Also, factor out code from usb_create_streams(). This makes it easier to
    adopt the new iteration logic needed for v2.0.

    Signed-off-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Daniel Mack
     

22 Feb, 2010

1 commit


17 Feb, 2010

2 commits


16 Feb, 2010

7 commits


12 Feb, 2010

2 commits


18 Jan, 2010

1 commit


28 Dec, 2009

5 commits

  • Detect the HVR-950Q HVR-850 urb data alignment quirk using usbquirk.h
    rather than using a case statement in snd_usb_audio_probe.

    Signed-off-by: John S. Gruber
    Signed-off-by: Takashi Iwai

    John S. Gruber
     
  • Addressing audio quality problem.

    In sound/usb/usbaudio.c, for the Hauppage HVR-950Q and HVR-850 only, change
    retire_capture_urb to allow transfers on audio sub-slot boundaries rather
    than audio slots boundaries.

    With these devices the left and right channel samples can be split between
    two different urbs. Throwing away extra channel samples causes a sound
    quality problem for stereo streams as the left and right channels are
    swapped repeatedly, perhaps many times per second.

    Urbs unaligned on sub-slot boundaries are still truncated to the next
    lowest stride (audio slot) to retain synchronization on samples even
    though left/right channel synchronization may be lost in this case.

    Detect the quirk using a case statement in snd_usb_audio_probe.

    BugLink: https://bugs.launchpad.net/ubuntu/+bug/495745

    Signed-off-by: John S. Gruber
    Signed-off-by: Takashi Iwai

    John S. Gruber
     
  • Since there are devices that do not align the size of their data packets
    to frame boundaries, the driver needs to be able to keep track of
    partial frames. This patch prepares for support for such devices by
    changing the hwptr_done variable from a frame counter to a byte counter.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Added functionality:
    1) Extension Units support (all XU settings now available at alsamixer,
    kmix, etc):
    - "AnalogueIn soft limiter" switch;
    - "Sample rate" selector (values 0,1,2,3,4,5 corresponds to 44.1 48 ...
    192 kHz);
    - "DigitalIn CLK source" selector (internal/external) (**);
    - "DigitalOut format SPDIF/AC3" switch (**);
    (**)E-mu-0404usb only.

    2) Automatic device sample rate adjustment depending on substream
    samplerate for both capture and playback substream.

    [minor coding-style fixes by tiwai]

    Signed-off-by: Sergiy Kovalchuk
    Signed-off-by: Takashi Iwai

    Sergiy Kovalchuk
     
  • As the release of substreams may be done asynchronously from the
    disconnection, close callback needs to check the shutdown flag before
    actually accessing the usb interface.

    Reference: Novell bnc#505027
    http://bugzilla.novell.com/show_bug.cgi?id=565027

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

18 Dec, 2009

4 commits


15 Dec, 2009

1 commit


08 Dec, 2009

1 commit


01 Dec, 2009

2 commits


24 Nov, 2009

3 commits