09 Nov, 2011

2 commits

  • Logitech HD Webcam c510 provide wrong mixer resolution.
    Add it to "res = 384" quirk.

    Signed-off-by: Alexey Fisher
    Signed-off-by: Takashi Iwai

    Alexey Fisher
     
  • In the recent usb-audio driver, the initialization of volume ranges
    may be delayed when the device doesn't respond well at the probing time.
    But the volume quirks for certain devices are applied only in
    mixer_ctl_feature_info() thus only at the very first probe and will be
    missing when the volume range is initialized later.

    This patch moves the volume quirk code to be always called from the
    volume-range extraction (get_min_max()), so that the quirks are properly
    applied in the later init time.

    Reported-and-tested-by: Alexey Fisher
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Oct, 2011

1 commit

  • The audio_feature_info[] array should contain all entries for UAC2_FU_*,
    but currently a few last entries are missing. Even though, the driver
    tries to probe these entries in parse_audio_feature_unit() and may
    access the range over the array. This patch fixes the bug by limiting
    the loop size properly using ARRAY_SIZE() instead of a hard-coded
    magic number.

    Reported-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

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
     

19 Aug, 2011

2 commits

  • When the initial check of dB-range failed due to the read error, try to
    check again at the later read, too. When an invalid dB range is found,
    remove TLV flags and notify the mixer info change.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The recent fix for testing dB range at the mixer creation time seems
    to cause regressions in some devices. In such devices, reading the dB
    info at probing time gives an error, thus both dBmin and dBmax are still
    zero, and TLV flag isn't set although the later read of dB info succeeds.

    This patch adds a workaround for such a case by assuming that the later
    read will succeed. In future, a similar test should be performed in a
    case where a wrong dB range is seen even in the later read.

    Signed-off-by: Takashi Iwai
    Cc:

    Takashi Iwai
     

04 Aug, 2011

2 commits


25 May, 2011

2 commits

  • In order to allow quirks functions to hook up to the standard feature
    unit op tables, this patch exports a pointer to the struct that is used
    internally.

    That way, all the code handling the control can be kept private, and
    external code can reference the symbol to re-use it.

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

    Daniel Mack
     
  • This patch renames add_control_to_empty() to snd_usb_mixer_add_control()
    and exports it, so the quirks functions can make use of it.

    Also, as "struct mixer_build" is private to mixer.c, rewrite the
    function to take an argument of type "struct usb_mixer_interface"
    instead.

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

    Daniel Mack
     

22 May, 2011

1 commit


28 Apr, 2011

1 commit

  • Some crappy USB-audio devices give broken dB ranges, e.g. both min and max
    are 0dB. This confuses the volume control that prefers dB expression such
    as alsactl or PulseAudio. In such a case, it's much better not to expose
    the broken dB information.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

31 Mar, 2011

1 commit


11 Mar, 2011

3 commits


10 Mar, 2011

2 commits


08 Feb, 2011

1 commit


10 Jan, 2011

1 commit


17 Sep, 2010

1 commit

  • "uinfo->value.enumerated.item" is an unsigned int. If it's negative
    when we do the comparison:
    if ((int)uinfo->value.enumerated.item >= cval->max)
    then we would read past the end of the array on the next line.

    I also changed the strcpy() to strlcpy() out of paranoia.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

16 Sep, 2010

1 commit


04 Sep, 2010

1 commit

  • The Audio Class v2 support code in 2.6.35 added checks for the
    bInterfaceProtocol field. However, there are devices (usually those
    detected by vendor-specific quirks) that do not have one of the
    predefined values in this field, which made the driver reject them.

    To fix this regression, restore the old behaviour, i.e., assume that
    a device with an unknown bInterfaceProtocol field (other than
    UAC_VERSION_2) has more or less UAC-v1-compatible descriptors.

    [compile warning fixes by tiwai]

    Signed-off-by: Clemens Ladisch
    Cc: Daniel Mack
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

24 Jun, 2010

1 commit


23 Jun, 2010

4 commits


12 Jun, 2010

1 commit

  • For RANGE requests, we should only query as much bytes as we're in fact
    interested in.

    For CUR requests, we shouldn't confuse the firmware with an overlong
    request but just ask for 2 bytes.

    This might need fixing in the future as it's not entirely clear when to
    dispatch 1-byte, 2-byte and 4-byte request blocks. For now, we assume
    everything is coded in 16bit - this works for all firmware
    implementations I've seen.

    Signed-off-by: Daniel Mack
    Reported-by: Alex Lee
    Signed-off-by: Takashi Iwai

    Daniel Mack
     

01 Jun, 2010

6 commits


28 May, 2010

1 commit


20 May, 2010

1 commit


12 May, 2010

1 commit

  • For both UAC1 and UAC2, interrupt endpoint messages are now parsed with
    structs rather that with anonymous buffer array accesses.

    For UAC2, only CUR interrupt notifications are supported for now.

    snd_usb_mixer_status_complete() was renamed to
    snd_usb_mixer_interrupt().

    Fixed one indentation flaw on the way.

    Signed-off-by: Daniel Mack
    Cc: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Daniel Mack
     

08 May, 2010

1 commit

  • Commit 23caaf19b ("ALSA: usb-mixer: Add support for Audio Class v2.0")
    broke support for Class1 devices due to two faulty changes. This patch
    fixes it.

    Signed-off-by: Daniel Mack
    Reported-and-Tested-by: The Source
    Cc: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Daniel Mack
     

16 Apr, 2010

1 commit