13 Dec, 2016

1 commit


11 Sep, 2016

1 commit


29 Aug, 2016

1 commit


22 Aug, 2016

2 commits


09 Aug, 2016

2 commits


12 May, 2016

1 commit


29 Apr, 2016

1 commit


06 Apr, 2016

1 commit


04 Apr, 2016

1 commit

  • Phoenix Audio TMX320 gives the similar error when the sample rate is
    asked:
    usb 2-1.3: 2:1: cannot get freq at ep 0x85
    usb 2-1.3: 1:1: cannot get freq at ep 0x2
    ....

    Add the corresponding USB-device ID (1de7:0014) to
    snd_usb_get_sample_rate_quirk() list.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110221
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

01 Apr, 2016

1 commit

  • create_fixed_stream_quirk(), snd_usb_parse_audio_interface() and
    create_uaxx_quirk() functions allocate the audioformat object by themselves
    and free it upon error before returning. However, once the object is linked
    to a stream, it's freed again in snd_usb_audio_pcm_free(), thus it'll be
    double-freed, eventually resulting in a memory corruption.

    This patch fixes these failures in the error paths by unlinking the audioformat
    object before freeing it.

    Based on a patch by Takashi Iwai

    [Note for stable backports:
    this patch requires the commit 902eb7fd1e4a ('ALSA: usb-audio: Minor
    code cleanup in create_fixed_stream_quirk()')]

    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1283358
    Reported-by: Ralf Spenneberg
    Cc: # see the note above
    Signed-off-by: Vladis Dronov
    Signed-off-by: Takashi Iwai

    Vladis Dronov
     

20 Mar, 2016

1 commit


16 Mar, 2016

2 commits


04 Mar, 2016

1 commit


01 Mar, 2016

1 commit

  • Plantronics DA45 does not support reading the sample rate which leads
    to many lines of "cannot get freq at ep 0x4" and "cannot get freq at
    ep 0x84". This patch adds the USB ID of the DA45 to quirks.c and
    avoids those error messages.

    Signed-off-by: Dennis Kadioglu
    Cc:
    Signed-off-by: Takashi Iwai

    Dennis Kadioglu
     

08 Feb, 2016

1 commit


30 Jan, 2016

1 commit


29 Jan, 2016

3 commits

  • This patch adds native DSD support for the PS Audio NuWave DAC.

    Signed-off-by: Jurgen Kramer
    Cc:
    Signed-off-by: Takashi Iwai

    Jurgen Kramer
     
  • In my patch adding native DSD support for the Oppo HA-1, the wrong vendor ID got
    through. This patch fixes the vendor ID and aligns the comment.

    Fixes: a4eae3a506ea ('ALSA: usb: Add native DSD support for Oppo HA-1')
    Signed-off-by: Jurgen Kramer
    Cc:
    Signed-off-by: Takashi Iwai

    Jurgen Kramer
     
  • This is a preliminary patch for the later change to allow a better
    quirk ID management. In the current USB-audio code, there are a few
    places looking at usb_device idVendor and idProduct fields directly
    even though we have already a static member in snd_usb_audio.usb_id.
    This patch modifies such codes to refer to the latter field.

    For achieving this, two slightly intensive changes have been done:
    - The snd_usb_audio object is set/reset via dev_getdrv() for the given
    USB device; it's needed for minimizing the changes for some existing
    quirks that take only usb_device object.

    - __snd_usbmidi_create() is introduced to receive the pre-given usb_id
    argument. The exported snd_usbmidi_create() is unchanged by calling
    this new function internally.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

26 Jan, 2016

1 commit


11 Jan, 2016

1 commit


14 Dec, 2015

1 commit


16 Nov, 2015

1 commit

  • The CH345 USB MIDI chip has two output ports. However, they are
    multiplexed through one pin, and the number of ports cannot be reduced
    even for hardware that implements only one connector, so for those
    devices, data sent to either port ends up on the same hardware output.
    This becomes a problem when both ports are used at the same time, as
    longer MIDI commands (such as SysEx messages) are likely to be
    interrupted by messages from the other port, and thus to get lost.

    It would not be possible for the driver to detect how many ports the
    device actually has, except that in practice, _all_ devices built with
    the CH345 have only one port. So we can just ignore the device's
    descriptors, and hardcode one output port.

    Signed-off-by: Clemens Ladisch
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

09 Nov, 2015

1 commit


19 Oct, 2015

1 commit

  • The Zoom R16/24 have a nonstandard playback format where each isochronous
    packet contains a length descriptor in the first four bytes. (Curiously,
    capture data does not contain this and requires no quirk.)

    The quirk involves adding the extra length descriptor whenever outgoing
    isochronous packets are generated, both in pcm.c (outgoing audio) and
    endpoint.c (silent data).

    In order to make the quirk as unintrusive as possible, for
    pcm.c:prepare_playback_urb(), the isochronous packet descriptors are
    initially set up in the same way no matter if the quirk is enabled or not.
    Once it is time to actually copy the data into the outgoing packet buffer
    (together with the added length descriptors) the isochronous descriptors
    are adjusted in order take the increased payload length into account.

    For endpoint.c:prepare_silent_urb() it makes more sense to modify the
    actual function, partly because the function is less complex to start with
    and partly because it is not as time-critical as prepare_playback_urb()
    (whose bulk is run with interrupts disabled), so the (minute) additional
    time spent in the non-quirk case is motivated by the simplicity of having
    a single function for all cases.

    The quirk is controlled by the new tx_length_quirk member in struct
    snd_usb_substream and struct snd_usb_audio, which is conveyed to pcm.c
    and endpoint.c from quirks.c in a similar manner to the txfr_quirk member
    in the same structs.

    In contrast to txfr_quirk however, the quirk is enabled directly in
    quirks.c:create_standard_audio_quirk() by checking the USB ID in that
    function. Another option would be to introduce a new
    QUIRK_AUDIO_ZOOM_INTERFACE or somesuch, which would have made the quirk
    very plain to see in the quirk table, but it was felt that the additional
    code needed to implement it this way would just make the implementation
    more complex with no real gain.

    Tested with a Zoom R16, both by doing capture and playback separately
    using arecord and aplay (8 channel capture and 2 channel playback,
    respectively), as well as capture and playback together using Ardour, as
    well as Audacity and Qtractor together with jackd.

    The R24 is reportedly compatible with the R16 when used as an audio
    interface. Both devices share the same USB ID and have the same number of
    inputs (8) and outputs (2). Therefore "R16/24" is mentioned throughout the
    patch.

    Regression tested using an Edirol UA-5 in both class compliant (16-bit)
    and "advanced" (24 bit, forces the use of quirks) modes.

    Signed-off-by: Ricard Wanderlof
    Tested-by: Panu Matilainen
    Signed-off-by: Takashi Iwai

    Ricard Wanderlof
     

21 Aug, 2015

1 commit


08 Jun, 2015

1 commit


30 May, 2015

1 commit

  • This quirk allows us to avoid the noisy:

    current rate 0 is different from the runtime rate

    message every time playback starts. While USB DAC in the RR2150
    supports reading the sample rate, it never returns a sample rate
    other than zero in my observation with common sample rates.

    Signed-off-by: Eric Wong
    Cc: Joe Turner
    Cc:
    Signed-off-by: Takashi Iwai

    Eric Wong
     

24 May, 2015

1 commit


19 May, 2015

1 commit


13 Apr, 2015

1 commit


12 Apr, 2015

1 commit

  • Adds Microsoft LifeCam Cinema USB ID to the snd_usb_get_sample_rate_quirk list as the Lifecam Cinema does not appear to support getting the sample rate.

    Fixes the issue where the LifeCam Cinema would wait for USB timeout and log the message "cannot get freq at ep 0x82" when accessed.

    Addresses bug report https://bugzilla.kernel.org/show_bug.cgi?id=95961.

    Signed-off-by: Adam Honse
    Cc:
    Signed-off-by: Takashi Iwai

    Adam Honse
     

08 Apr, 2015

1 commit


04 Apr, 2015

1 commit

  • Adding this quirk allows us to avoid the noisy
    "cannot get freq at ep 0x1" message in dmesg output every time
    playback starts.

    This ought to affect other Benchmark DAC1 variations using the same
    "Microchip Technology, Inc." chip as well, but I have only tested
    with the "Pre" variant.

    Signed-off-by: Eric Wong
    Cc: Joe Turner
    Signed-off-by: Takashi Iwai

    Eric Wong
     

04 Mar, 2015

1 commit


18 Feb, 2015

1 commit

  • Fix problem where playback of Denon DA-300USB DAC sometimes does not
    start and leads to error messages like "clock source 41 is not valid,
    cannot use".

    Solution: Treat this device the same as other Denon/Marantz devices in
    sound/usb/quirks.c.

    Tested with both PCM and DSD formats.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=93261
    Signed-off-by: Frank C Guenther
    Cc:
    Signed-off-by: Takashi Iwai

    Frank C Guenther
     

17 Feb, 2015

1 commit

  • Adds a quirk to disable the check that the sample rate has been set correctly, as the Lifecam does not support getting the sample rate.

    This means that we don't need to wait for the USB timeout when attempting to get the sample rate. Waiting for the timeout causes problems in some applications, which give up on the device acquisition process before it has had time to complete, resulting in no sound.

    [minor tidy up by tiwai]

    Signed-off-by: Joe Turner
    Signed-off-by: Takashi Iwai

    Joe Turner