12 Aug, 2013

4 commits


08 Aug, 2013

1 commit

  • The driver used to assume that the streaming endpoint's wMaxPacketSize
    value would be an indication of how much data the endpoint expects or
    sends, and compute the number of packets per URB using this value.

    However, the Focusrite Scarlett 2i4 declares a value of 1024 bytes,
    while only about 88 or 44 bytes are be actually used. This discrepancy
    would result in URBs with far too few packets, which would not work
    correctly on the EHCI driver.

    To get correct URBs, use wMaxPacketSize only as an upper limit on the
    packet size.

    Reported-by: James Stone
    Tested-by: James Stone
    Cc: # 2.6.35+
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

07 Aug, 2013

1 commit

  • Patch fixes 6fire not to use stack as URB transfer_buffer. URB buffers need to
    be DMA-able, which stack is not. Furthermore, transfer_buffer should not be
    allocated as part of larger device structure because DMA coherency issues and
    patch fixes this issue too.

    Cc: stable@vger.kernel.org
    Signed-off-by: Jussi Kivilinna
    Tested-by: Torsten Schenk
    Signed-off-by: Takashi Iwai

    Jussi Kivilinna
     

24 Jul, 2013

1 commit

  • Return SNDRV_PCM_POS_XRUN (snd_pcm_uframes_t) instead of
    SNDRV_PCM_STATE_XRUN (snd_pcm_state_t) from the pointer
    function of hiface, as expected by snd_pcm_update_hw_ptr0().

    Caught by sparse.

    Cc: Antonio Ospite
    Signed-off-by: Eldad Zack
    Cc:
    Signed-off-by: Takashi Iwai

    Eldad Zack
     

21 Jul, 2013

1 commit


16 Jul, 2013

3 commits


10 Jul, 2013

1 commit

  • Commit 8f898e92aea2c24c7f379ee265d178f69ebb9c07 removed the redundant
    reads of bInterfaceProtocol from the descriptors, but introduced a
    regression to devices with quirks of type QUIRK_AUDIO_FIXED_ENDPOINT,
    since fp->protocol is not set in setup process.

    As a consequence, audio streams would not get initialized, as the
    following logs show:

    [ 48.923043] setting usb interface 3:1
    [ 48.923056] Creating new capture data endpoint #81
    [ 48.923484] 4:3:1: cannot set freq 48000 to ep 0x81

    This patch sets fp->protocol in create_fixed_stream_quirk() and
    resolves the regression.

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

    Eldad Zack
     

28 Jun, 2013

9 commits

  • 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
     
  • For adding support for many Roland and Yamaha devices:
    * 'full-roland-support' of git://git.alsa-project.org/alsa-kprivate:
    ALSA: usb-audio: add quirks for Roland QUAD/OCTO-CAPTURE
    ALSA: usb-audio: claim autodetected PCM interfaces all at once
    ALSA: usb-audio: remove superfluous Roland quirks
    ALSA: usb-audio: add MIDI port names for some Roland devices
    ALSA: usb-audio: add support for many Roland/Yamaha devices
    ALSA: usb-audio: detect implicit feedback on Roland devices
    ALSA: usb-audio: store protocol version in struct audioformat

    Takashi Iwai
     
  • The Roland Quad/Octo-Capture devices use some unknown vendor-specific
    mechanism to switch sample rates (and to manage other controls). To
    prevent the driver from attempting to use any other than the default
    44.1 kHz sample rate, use quirks to hide the other alternate settings.

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • snd_card_register() registers all devices newly added since the last
    call. However, the playback/capture streams are handled as one ALSA
    device, so the second /dev device will not be registered if the PCM
    streams are added in two steps.

    QUIRK_AUTODETECT caused the probe callback to be called once for each
    interface, which triggered this problem. Work around this by handling
    this like the composite quirk, i.e., autodetecting all other interfaces
    that might be used for PCM or MIDI.

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • Remove all quirks that are no longer needed now that the generic Roland
    quirks can handle the vendor-specific descriptors correctly.

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • Add quirks to detect the various vendor-specific descriptors used by
    Roland and Yamaha in most of their recent USB audio and MIDI devices.

    Together with the previous patch, this should add audio/MIDI support for
    the following USB devices:
    - Edirol motion dive .tokyo performance package
    - Roland MC-808 Synthesizer
    - Roland BK-7m Synthesizer
    - Roland VIMA JM-5/8 Synthesizer
    - Roland SP-555 Sequencer
    - Roland V-Synth GT Synthesizer
    - Roland Music Atelier AT-75/100/300/350C/500/800/900/900C Organ
    - Edirol V-Mixer M-200i/300/380/400/480/R-1000
    - BOSS GT-10B Effects Processor
    - Roland Fantom G6/G7/G8 Keyboard
    - Cakewalk Sonar V-Studio 20/100/700 Audio Interface
    - Roland GW-8 Keyboard
    - Roland AX-Synth Keyboard
    - Roland JUNO-Di/STAGE/Gi Keyboard
    - Roland VB-99 Effects Processor
    - Cakewalk UM-2G MIDI Interface
    - Roland A-500S Keyboard
    - Roland SD-50 Synthesizer
    - Roland OCTAPAD SPD-30 Controller
    - Roland Lucina AX-09 Synthesizer
    - BOSS BR-800 Digital Recorder
    - Roland DUO/TRI-CAPTURE (EX) Audio Interface
    - BOSS RC-300 Loop Station
    - Roland JUPITER-50/80 Keyboard
    - Roland R-26 Recorder
    - Roland SPD-SX Controller
    - BOSS JS-10 Audio Player
    - Roland TD-11/15/30 Drum Module
    - Roland A-49/88 Keyboard
    - Roland INTEGRA-7 Synthesizer
    - Roland R-88 Recorder

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • All the Roland/Edirol/BOSS USB audio devices that need implicit feedback
    show this unambiguously in their descriptors, so it might be a good idea
    to let the driver detect this.

    This should make playback work correctly (at least with Jack) with the
    following devices:
    - BOSS GT-100
    - BOSS JS-8 Jam Station
    - Edirol M-16DX
    - Roland GAIA SH-01

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     
  • Instead of reading bInterfaceProtocol from the descriptor whenever it's
    needed, store this value in the audioformat structure. Besides
    simplifying some code, this will allow us to correctly handle vendor-
    specific devices where the descriptors are marked with other values.

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     

24 Jun, 2013

1 commit

  • Add driver for M2Tech hiFace USB-SPDIF interface and compatible devices.

    M2Tech hiFace and compatible devices offer a Hi-End S/PDIF Output
    Interface, see http://www.m2tech.biz/hiface.html

    The supported products are:

    * M2Tech Young
    * M2Tech hiFace
    * M2Tech North Star
    * M2Tech W4S Young
    * M2Tech Corrson
    * M2Tech AUDIA
    * M2Tech SL Audio
    * M2Tech Empirical
    * M2Tech Rockna
    * M2Tech Pathos
    * M2Tech Metronome
    * M2Tech CAD
    * M2Tech Audio Esclusive
    * M2Tech Rotel
    * M2Tech Eeaudio
    * The Chord Company CHORD
    * AVA Group A/S Vitus

    Signed-off-by: Antonio Ospite
    Signed-off-by: Takashi Iwai

    Antonio Ospite
     

21 Jun, 2013

4 commits


18 Jun, 2013

1 commit


17 Jun, 2013

3 commits

  • USB_QUEUE_BULK isn't defined any more.

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

    Dan Carpenter
     
  • Just like the previous fix for LogitechHD Webcam c270 in commit
    11e7064f35bb87da8f427d1aa4bbd8b7473a3993, c310 model also requires the
    same workaround for avoiding the kernel warning.

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

    Takashi Iwai
     
  • When the Android firmware enables the audio interfaces in accessory
    mode, it always declares in the control interface's baInterfaceNr array
    that interfaces 0 and 1 belong to the audio function. However, the
    accessory interface itself, if also enabled, already is at index 0 and
    shifts the actual audio interface numbers to 1 and 2, which prevents the
    PCM streaming interface from being seen by the host driver.

    To get the PCM interface interface to work, detect when the descriptors
    point to the (for this driver useless) accessory interface, and redirect
    to the correct one.

    Reported-by: Jeremy Rosen
    Tested-by: Jeremy Rosen
    Cc:
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

05 Jun, 2013

1 commit

  • USB audio driver spews an error message when probing Logitech HD
    webcam c270:
    ALSA mixer.c:1300 usb_audio: Warning! Unlikely big volume range (=6144), cval->res is probably wrong.
    ALSA mixer.c:1304 usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 1536/7680/1

    Obviously the device needs a fixed volume resolution (cval->res = 384)
    like other Logitech devices.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=821735

    Reported-and-tested-by: Cristian Rodríguez
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

04 Jun, 2013

1 commit


03 Jun, 2013

1 commit

  • Commit 927c9423dd5f2d1c0b93d5e694ab84b4a5559713 (ALSA: usb-audio: add
    Edirol UM-3G support) used a wrong quirk type, which would make the
    driver refuse to attach with the error message "MIDIStreaming interface
    descriptor not found".

    Cc: # 3.3 and later
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

23 May, 2013

1 commit

  • Check only the uppermost 16 bits instead of the whole 32 bits of
    the version information. Do this because all firmware version tested
    with this version information worked correctly and the strict check
    causes problems for several users.

    Signed-off-by: Torsten Schenk
    Signed-off-by: Takashi Iwai

    Torsten Schenk
     

17 May, 2013

1 commit

  • freqshift is only set for the data endpoint and syncmaxsize is only set
    for the sync endpoint. This results in a syncmaxsize of zero used in the
    proc output feedback format calculation, which gives a feedback format
    incorrectly shown as 8.16 for UAC2 devices.

    As neither the data nor the sync endpoint gives all the relevant
    content, output the two combined.

    Also remove the sync_endpoint "packet size" which is always zero
    and the sync_endpoint "momentary freq" which is constant.

    Tested with UAC2 async and UAC1 adaptive, not tested with UAC1 async.

    Reported-by: B. Zhang
    Signed-off-by: Torstein Hegge
    Signed-off-by: Takashi Iwai

    Torstein Hegge
     

30 Apr, 2013

1 commit

  • Current code does this:

    be16_to_cpu(buf[i * 2] << 8 | buf[(i * 2) + 1])

    Which is effectively (neglecting the index):

    be16_to_cpu(be16_to_cpu(*((u16 *) buf)))

    This means the int16 in the buffer is not converted at all.

    Daniel Mack confirmed that the driver works on little endian
    CPUs, leading to the conclusion that the device-side structure
    is actually little endian.
    This changes the code to use le16_to_cpu().

    Caught by sparse.

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

    Eldad Zack
     

29 Apr, 2013

2 commits

  • Add a function to handle conversion from snd_pcm_format_t
    to bitwise with proper typing.

    Change such conversions to use this function and silence sparse
    warnings.

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

    Eldad Zack
     
  • The recent changes in the USB API ("implement new semantics for
    URB_ISO_ASAP") made the former meaning of the URB_ISO_ASAP flag the
    default, and changed this flag to mean that URBs can be delayed.
    This is not the behaviour wanted by any of the audio drivers because
    it leads to discontinuous playback with very small period sizes.
    Therefore, our URBs need to be submitted without this flag.

    Reported-by: Joe Rayhawk
    Cc: # 3.8 only
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

26 Apr, 2013

1 commit


25 Apr, 2013

1 commit