09 Apr, 2015

1 commit


21 Nov, 2014

10 commits


13 Nov, 2014

2 commits

  • This code contains the Scarlett mixer interface code that was originally
    written by Tobias Hoffman and Robin Gareus. Because the device doesn't
    properly implement UAC2 this code adds a mixer quirk for the device.

    Changes from the original code include removing the metering code along with
    dead code and comments. Compiler warnings were fixed. The code to initialize
    the sampling rate was causing a crash this was fixed as discussed on the
    mailing list. Error, and info messages were convered to dev_err and dev_info
    interfaces. The custom scarlett_mixer_elem_info struct was replaced with the
    more generic usb_mixer_elem_info to be able to recycle more code from mixer.c.

    This patch also makes additional modifications based on upstream comments.
    Individual control creation functions are removed and a generic
    function is no used. Macros for function calls are removed to improve
    readability. Hardcoded control initialization is removed. Save to HW
    functionality has been removed. Strings for enums are created dynamically for
    the mixer. Strings used for controls are now SNDRV_CTL_ELEM_ID_NAME_MAXLEN
    length.

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     
  • Make the functions set_cur_mix_value and get_cur_mix_value accessible by files
    that include mixer.h. In addition make usb_mixer_elem_free accessible.
    This allows reuse of these functions by mixers that may require quirks.

    The following summarizes the renamed functions:
    - set_cur_mix_value -> snd_usb_set_cur_mix_value
    - get_cur_mix_value -> snd_usb_get_cur_mix_value
    - usb_mixer_elem_free -> snd_usb_mixer_elem_free

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     

12 Nov, 2014

1 commit


11 Nov, 2014

1 commit


21 Oct, 2014

1 commit


26 Feb, 2014

1 commit

  • Convert with dev_err() and co from snd_printk(), etc.
    As there are too deep indirections (e.g. ep->chip->dev->dev),
    a few new local macros, usb_audio_err() & co, are introduced.

    Also, the device numbers in some messages are dropped, as they are
    shown in the prefix automatically.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

06 Dec, 2013

1 commit


14 Nov, 2013

1 commit


28 Jun, 2013

1 commit

  • This patch is adding extensive support (beside standard usb audio class)
    for Audio Advantage Micro II usb sound card.
    Features included:
    - Access to AES bits (so now sending the IEC61937 compliant stream is
    possible).
    - Mixer SPDIF control added to turn on/off the optical transmitter.

    Signed-off-by: Przemek Rudy
    Signed-off-by: Takashi Iwai

    Przemek Rudy
     

07 Apr, 2013

1 commit

  • The usb_control_msg() function expects __u16 types and performs
    the endianness conversions by itself.
    However, in three places, a conversion is performed before it is
    handed over to usb_control_msg(), which leads to a double conversion
    (= no conversion):
    * snd_usb_nativeinstruments_boot_quirk()
    * snd_nativeinstruments_control_get()
    * snd_nativeinstruments_control_put()

    Caught by sparse:

    sound/usb/mixer_quirks.c:512:38: warning: incorrect type in argument 6 (different base types)
    sound/usb/mixer_quirks.c:512:38: expected unsigned short [unsigned] [usertype] index
    sound/usb/mixer_quirks.c:512:38: got restricted __le16 [usertype]
    sound/usb/mixer_quirks.c:543:35: warning: incorrect type in argument 5 (different base types)
    sound/usb/mixer_quirks.c:543:35: expected unsigned short [unsigned] [usertype] value
    sound/usb/mixer_quirks.c:543:35: got restricted __le16 [usertype]
    sound/usb/mixer_quirks.c:543:56: warning: incorrect type in argument 6 (different base types)
    sound/usb/mixer_quirks.c:543:56: expected unsigned short [unsigned] [usertype] index
    sound/usb/mixer_quirks.c:543:56: got restricted __le16 [usertype]
    sound/usb/quirks.c:502:35: warning: incorrect type in argument 5 (different base types)
    sound/usb/quirks.c:502:35: expected unsigned short [unsigned] [usertype] value
    sound/usb/quirks.c:502:35: got restricted __le16 [usertype]

    Signed-off-by: Eldad Zack
    Acked-by: Daniel Mack
    Cc:
    Signed-off-by: Takashi Iwai

    Eldad Zack
     

11 Feb, 2013

1 commit

  • Adds quirks and mixer support for the M-Audio Fast Track C600 USB
    audio interface. This device is very similar to the C400 - the C600
    simply has some more inputs and outputs, so the existing C400 support
    is extended to support this device as well.

    Signed-off-by: Matt Gruskin
    Signed-off-by: Takashi Iwai

    Matt Gruskin
     

10 Jan, 2013

1 commit


12 Dec, 2012

1 commit


29 Nov, 2012

3 commits

  • Add a mixer quirks for the M-Audio Fast Track C400
    and create the following:

    * Volume controls
    * Effect Type (reusing FTU controls)
    * Effect Volume
    * Effect Send/Return
    * Effect Program
    * Effect Feedback

    Signed-off-by: Eldad Zack
    Signed-off-by: Takashi Iwai

    Eldad Zack
     
  • Adds the unit ID and the control as parameters to the creation of the
    effect unit control for the M-Audio Fast Track Ultra. This allows the
    code to be shared with other devices that use different unit ID and
    control, such as the M-Audio Fast Track C400.

    Signed-off-by: Eldad Zack
    Signed-off-by: Takashi Iwai

    Eldad Zack
     
  • Currently, channel IDs exceeding 31 (0x1f) cannot be used.
    The channel ID is derived from the cmask. Extending cmask
    to a 64-bit type would only allow it to go up to 63 (0x3f).
    Some devices have channel IDs exceeding that as well.
    To address that, add an offset to the mixer element which
    is then accounted for in the UAC set/get functions.

    Signed-off-by: Eldad Zack
    Signed-off-by: Takashi Iwai

    Eldad Zack
     

30 Oct, 2012

1 commit


11 Jun, 2012

2 commits


12 May, 2012

1 commit

  • Explained by Takashi in

    > The reason is because get_min_max*() isn't called in the place you
    > created these controls, and get_min_max() would be called only for
    > integer volumes later even if uninitialized. A short cut for booleans.

    Signed-off-by: Mark Hills
    Signed-off-by: Takashi Iwai

    Mark Hills
     

24 Apr, 2012

5 commits


15 Apr, 2012

1 commit


27 Sep, 2011

1 commit

  • There are certain devices that are reportedly so slow that they need
    more than 100 ms to handle control transfers. Therefore, increase the
    timeout in mixer(_quirks).c to 1000 ms.

    The timeout parameter of snd_usb_ctl_msg() is now constant, so we can
    drop it.

    Reported-by: Felipe Balbi
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

25 May, 2011

1 commit


18 May, 2011

1 commit