26 Mar, 2020

1 commit


15 Mar, 2020

1 commit


13 Jan, 2020

1 commit

  • Add delay to make sure that audio urbs are not sent too early.
    Otherwise the device hangs. Windows driver makes ~2s delay, so use
    about the same time delay value.

    snd_usb_apply_boot_quirk() is called 3 times for my MOTU M4, which
    is an overkill. Thus a quirk that is called only once is implemented.

    Also send two vendor-specific control messages before and after
    the delay. This behaviour is blindly copied from the Windows driver.

    Signed-off-by: Alexander Tsoy
    Link: https://lore.kernel.org/r/20200112102358.18085-1-alexander@tsoy.me
    Signed-off-by: Takashi Iwai

    Alexander Tsoy
     

20 Mar, 2018

1 commit


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

29 Jan, 2016

1 commit

  • 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
     

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
     

29 Nov, 2014

1 commit

  • Denon/Marantz USB DACs need a specific vendor command to switch between PCM and
    DSD mode. This patch adds a new quirk function to switch between the two modes
    using the specific USB vendor command.

    This patch applies to the following devices:
    - Marantz SA-14S1
    - Marantz HD-DAC1

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

    Jurgen Kramer
     

18 Apr, 2013

1 commit

  • Unfortunately, none of the UAC standards provides a way to identify DSD
    (Direct Stream Digital) formats. Hence, this patch adds a quirks
    handler to identify USB interfaces that are capable of handling DSD.

    That quirks handler can augment the already parsed formats bit-field,
    by any of the new SNDRV_PCM_FMTBIT_DSD_{U8_U16} and setting the dsd_dop
    flag in the audio format, if the driver should take care for the DOP
    byte stuffing.

    The only devices that are known to work with this are the ones with
    a 'Playback Designs' vendor id.

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

    Daniel Mack
     

10 Apr, 2013

1 commit


04 Sep, 2012

1 commit

  • Playback Designs' USB devices have some hardware limitations on their
    USB interface. In particular:

    - They need a 20ms delay after each class compliant request as the
    hardware ACKs the USB packets before the device is actually ready
    for the next command. Sending data immediately will result in buffer
    overflows in the hardware.
    - The devices send bogus feedback data at the start of each stream
    which confuse the feedback format auto-detection.

    This patch introduces a new quirks hook that is called after each
    control packet and which adds a delay for all devices that match
    Playback Designs' USB VID for now.

    In addition, it adds a counter to snd_usb_endpoint to drop received
    packets on the floor. Another new quirks function that is called once
    an endpoint is started initializes that counter for these devices on
    their sync endpoint.

    Signed-off-by: Daniel Mack
    Reported-and-tested-by: Andreas Koch
    Supported-by: Demian Martin
    Signed-off-by: Takashi Iwai

    Daniel Mack
     

05 Mar, 2010

1 commit

  • Clean up the usb audio driver by factoring out a lot of functions to
    separate files. Code for procfs, quirks, urbs, format parsers etc all
    got a new home now.

    Moved almost all special quirk handling to quirks.c and introduced new
    generic functions to handle them, so the exceptions do not pollute the
    whole driver.

    Renamed usbaudio.c to card.c because this is what it actually does now.
    Renamed usbmidi.c to midi.c for namespace clarity.
    Removed more things from usbaudio.h.

    The non-standard drivers were adopted accordingly.

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

    Daniel Mack