12 Mar, 2013

1 commit

  • The NuForce UDH-100 numbers its interfaces incorrectly, which makes the
    interface associations come out wrong, which results in the driver
    erroring out with the message "Audio class v2 interfaces need an
    interface association".

    Work around this by searching for the interface association descriptor
    also in some other place where it might have ended up.

    Reported-and-tested-by: Dave Helstroom
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

18 Feb, 2013

1 commit

  • bootresponse in snd_usb_mbox2_boot_quirk is only 12 (decimal) u8's
    long, but i9s passed to snd_usb_ctl_msg as it would be 0x12 (hexa)
    long. Fix that by having proper size of the array, i.e. 0x12.

    Signed-off-by: Jiri Slaby
    Cc:
    Signed-off-by: Takashi Iwai

    Jiri Slaby
     

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
     

05 Feb, 2013

1 commit


01 Feb, 2013

2 commits


29 Jan, 2013

2 commits


27 Jan, 2013

1 commit

  • Commit 23caaf19b11e (ALSA: usb-mixer: Add support for Audio Class v2.0)
    forgot to adjust the length check for UAC 2.0 feature unit descriptors.
    This would make the code abort on encountering a feature unit without
    per-channel controls, and thus prevented the driver to work with any
    device having such a unit, such as the RME Babyface or Fireface UCX.

    Reported-by: Florian Hanisch
    Tested-by: Matthew Robbetts
    Tested-by: Michael Beer
    Cc: Daniel Mack
    Cc: 2.6.35+
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

26 Jan, 2013

1 commit

  • Because currently snd_printd() and snd_printdd() macros are expanded
    to empty when CONFIG_SND_DEBUG=n, a compile warning like below
    appears sometimes, and we had to covert it by ugly ifdefs:
    sound/pci/hda/patch_sigmatel.c: In function ‘stac92hd71bxx_fixup_hp’:
    sound/pci/hda/patch_sigmatel.c:2434:24: warning: unused variable ‘spec’ [-Wunused-variable]

    For "fixing" these issues better, this patch replaces snd_printd() and
    snd_printdd() definitions with empty inline functions instead of
    macros. This should have the same effect but shut up warnings like
    above.

    But since we had already put ifdefs, changing to inline functions
    would trigger compile errors. So, such ifdefs is removed in this
    patch.

    In addition, snd_pci_quirk name field is defined only when
    CONFIG_SND_DEBUG_VERBOSE is set, and the reference to it in
    snd_printdd() argument triggers the build errors, too. For avoiding
    these errors, introduce a new macro snd_pci_quirk_name() that is
    defined no matter how the debug option is set.

    Reported-by: Stratos Karafotis
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

23 Jan, 2013

1 commit


14 Jan, 2013

4 commits

  • Add names of the clock sources for the M-Audio Fast Track
    C400.

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

    Eldad Zack
     
  • Attain constant real-world latency by skipping 16 data packets.
    The number of packets to be skipped was found by trial and error.

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

    Eldad Zack
     
  • Taking another look at the C400 descriptors, I see now that there is
    a clock selector (0x80) for this device.
    Right now, the clock source points to the internal clock (0x81), which
    is also valid. When the external clock source (0x82) is selected in the
    mixer, and the rates mismatch (if it's free-running it is fixed to
    48KHz), xruns will occur.

    Set the clock ID to the clock selector unit (0x81), which then
    allows the validation code to function correctly.

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

    Eldad Zack
     
  • A patch in the 3.2 kernel caused regression with hotplugging the
    M-Audio Fast track pro, or sound after suspend. I don't have the
    device so I haven't done a full analysis, but it seems userspace
    (both udev and pulseaudio) got confused when a card was created,
    immediately destroyed, and then created again.

    However, at least one person in the bug report (martin djfun)
    reports that this patch resolves the issue for him. It also leaves
    a message in the log:
    "snd-usb-audio: probe of 1-1.1:1.1 failed with error -5" which is
    a bit misleading. It is better than non-working audio, but maybe
    there's a more elegant solution?

    BugLink: https://bugs.launchpad.net/bugs/1095315
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

11 Jan, 2013

1 commit

  • The commit [0d9741c0: ALSA: usb-audio: sync ep init fix for
    audioformat mismatch] introduced the correction of parameters to be
    set for sync EP. But since the new code assumes that the sync EP is
    always paired with the data EP of another direction, it triggers Oops
    when a device only with a single direction is used.

    This patch adds a proper check of sync EP type and the presence of the
    paired substream for avoiding the crash.

    Reported-and-tested-by: Jens Axboe
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

10 Jan, 2013

1 commit


04 Jan, 2013

1 commit

  • This patch is based on 3.8-rc1. It fixes two things:
    1) A kernel panic caused by incorrect allocation of a u8 variable
    "bootresponse".
    2) A noisy dmesg (urb status -32) caused by broken pipe to an
    invalid midi endpoint.

    It is also a little cleaner because there is no need for a new
    QUIRK_MIDI type as suggested by kernel developers, since the device
    follows exactly the MIDIMAN protocol.

    Signed-off-by: Damien Zammit
    Signed-off-by: Takashi Iwai

    Damien Zammit
     

03 Jan, 2013

1 commit

  • Support the Creative BT-D1 Bluetooth USB audio device. Before this
    patch, Linux had trouble finding the correct USB descriptors and bailed
    out with these messages:

    no or invalid class specific endpoint descriptor

    Now it still prints these messages on hotplug:

    snd-usb-audio: probe of ...:1.0 failed with error -5
    snd-usb-audio: probe of ...:1.2 failed with error -5
    snd-usb-audio: probe of ...:1.3 failed with error -5

    But the device works correctly, including the HID support.

    The patch is diff'ed against 3.8-rc1 but should apply to older kernels
    as well.

    Signed-off-by: Alexander Schremmer
    Signed-off-by: Takashi Iwai

    Alexander Schremmer
     

24 Dec, 2012

1 commit


20 Dec, 2012

1 commit

  • Pull sound fixes from Takashi Iwai:
    "This update contains overall only driver-specific fixes. Slightly
    large LOC are seen in usb-audio driver for a couple of new device
    quirks and cs42l71 ASoC driver for enhanced features. The others are
    a few small (regression) fixes HD-audio, and yet other small / trival
    ASoC fixes."

    * tag 'sound-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: usb-audio: Support for Digidesign Mbox 2 USB sound card:
    ALSA: HDA: Fix sound resume hang
    ALSA: hda - bug fix for invalid connection list of Haswell HDMI codec pins
    ALSA: hda - Fix the wrong pincaps set in ALC861VD dallas/hp fixup
    ALSA: hda - Set codec->single_adc_amp flag for Realtek codecs
    ASoC: atmel-ssc: change disable to disable in dts node
    ASoC: Prevent pop_wait overwrite
    ALSA: usb-audio: ignore-quirk for HP Wireless Audio
    ALSA: hda - Always turn on pins for HDMI/DP
    ALSA: hda - Fix pin configuration of HP Pavilion dv7
    ASoC: core: Fix splitting of log messages
    ASoC: cs42l73: Change VSPIN/VSPOUT to VSPINOUT
    ASoC: cs42l73: Add DAPM events for power down.
    ASoC: cs42l73: Add DMIC's as DAPM inputs.
    ASoC: sigmadsp: Fix endianness conversion issue
    ASoC: tpa6130a2: Use devm_* APIs

    Linus Torvalds
     

19 Dec, 2012

1 commit

  • This patch is the result of a lot of trial and error, since there are no specs
    available for the device.

    Full duplex support is provided, i.e. playback and recording in stereo.
    The format is hardcoded at 48000Hz @ 24 bit, which is the maximum that the
    device supports. Also, MIDI in and MIDI out both work.

    Users will notice that the S/PDIF light also flashes when playback or recording
    is active. I believe this means that S/PDIF input/output is simultaneously
    activated with the analogue i/o during use.
    But this particular functionality remains untested.

    Note that this particular version of the patch is so far untested on the
    physical hardware because I have not compiled a full kernel with the changes.
    However, extensive testing has been done by many users of the hardware
    who believe other versions of my patch have worked since circa 2009.

    [Modified to make a function static by tiwai]

    Signed-off-by: Damien Zammit
    Signed-off-by: Takashi Iwai

    Damien Zammit
     

15 Dec, 2012

1 commit

  • As Joe Cooper reported, "On most HP Envy laptops
    the snd-usb-audio module causes the system to become unresponsive and
    Gnome Shell 3 to crash.".
    See also:
    http://mailman.alsa-project.org/pipermail/alsa-devel/2012-December/057729.html

    Add a quirk to ignore this device (for now) to solve the instability
    issue and allow other USB audio devices to be used.

    Reported-by: Joe Cooper
    Tested-by: Isaac Smith
    Signed-off-by: Eldad Zack
    Signed-off-by: Takashi Iwai

    Eldad Zack
     

14 Dec, 2012

1 commit

  • Pull trivial branch from Jiri Kosina:
    "Usual stuff -- comment/printk typo fixes, documentation updates, dead
    code elimination."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    HOWTO: fix double words typo
    x86 mtrr: fix comment typo in mtrr_bp_init
    propagate name change to comments in kernel source
    doc: Update the name of profiling based on sysfs
    treewide: Fix typos in various drivers
    treewide: Fix typos in various Kconfig
    wireless: mwifiex: Fix typo in wireless/mwifiex driver
    messages: i2o: Fix typo in messages/i2o
    scripts/kernel-doc: check that non-void fcts describe their return value
    Kernel-doc: Convention: Use a "Return" section to describe return values
    radeon: Fix typo and copy/paste error in comments
    doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
    various: Fix spelling of "asynchronous" in comments.
    Fix misspellings of "whether" in comments.
    eisa: Fix spelling of "asynchronous".
    various: Fix spelling of "registered" in comments.
    doc: fix quite a few typos within Documentation
    target: iscsi: fix comment typos in target/iscsi drivers
    treewide: fix typo of "suport" in various comments and Kconfig
    treewide: fix typo of "suppport" in various comments
    ...

    Linus Torvalds
     

12 Dec, 2012

1 commit


07 Dec, 2012

3 commits

  • The patch below prevents the 6fire usb driver going into panic state
    when stopping playing. On some systems the urb in handler
    (usb6fire_pcm_in_urb_handler) is being called while urbs are being
    killed off, this causes the driver to set panic state and can result in
    the kernel warning 'URB %p submitted while active'.

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

    Jurgen Kramer
     
  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Acked-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Signed-off-by: Takashi Iwai

    Bill Pemberton
     

04 Dec, 2012

3 commits

  • Commit 947d299686aa9cc8aecf749d54e8475c6e498956 , "ALSA: snd-usb:
    properly initialize the sync endpoint", while correcting the
    initialization of the sync endpoint when opening just the data
    endpoint, prevents devices that has a sync endpoint, with a channel
    number different than that of the data endpoint, from functioning.
    Due to a different channel and period bytes count, attempting to
    initialize the sync endpoint will fail at the usb host driver.
    For example, when using xhci:

    cannot submit urb 0, error -90: internal error

    With this patch, if a sync endpoint has multiple audioformats, a
    matching audioformat is preferred. An audioformat must be found
    with at least one channel and support the requested sample rate
    and PCM format, otherwise the stream will not be opened.

    If the number of channels differ between the selected audioformat
    and the requested format, adjust the period bytes count accordingly.
    It is safe to perform the calculation on the basis of the channel
    count, since the requested PCM audio format and the rate must be
    supported by the selected audioformat.

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

    Eldad Zack
     
  • The commit [88a8516a: ALSA: usbaudio: implement USB autosuspend] added
    the support of autopm for USB MIDI output, but it didn't take the MIDI
    input into account.

    This patch adds the following for fixing the autopm:
    - Manage the URB start at the first MIDI input stream open, instead of
    the time of instance creation
    - Move autopm code to the common substream_open()
    - Make snd_usbmidi_input_start/_stop() more robust and add the running
    state check

    Reviewd-by: Clemens Ladisch
    Tested-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add a similar protection against the disconnection race and the
    invalid use of usb instance after disconnection, as well as we've done
    for the USB audio PCM.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51201

    Reviewd-by: Clemens Ladisch
    Tested-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

29 Nov, 2012

9 commits

  • A lot of headsets/headphones have a "Speaker" mixer control. This confuses
    PulseAudio to think it is a speaker instead of a headphone/headset.
    Therfore, we rename it to "Headphone".

    We determine if something is a headphone similar to how udev determines
    form factor (see 78-sound-card.rules).

    BugLink: https://bugs.launchpad.net/bugs/1082357
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • The playback endpoint uses implicit feedback mode, similar
    to the M-Audio FTU. Like with the FTU, we need to associate
    the sync pipe ourselves.

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

    Eldad Zack
     
  • 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
     
  • Add ranges for various Fast Track C400 controls, as observed
    while using the vendor's mixer control software (res values
    are an estimation).

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

    Eldad Zack
     
  • Adds a quirks table for the M-Audio Fast Track C400.
    Thanks to Clemens Ladisch for pointing out that
    the table must be sorted.

    Based on the following patch from the alsa-devel list:
    http://mailman.alsa-project.org/pipermail/alsa-devel/2012-May/051676.html

    See also:
    http://mailman.alsa-project.org/pipermail/alsa-devel/2012-April/051219.html

    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
     
  • Current code mishandles the case where the device is a UAC2
    and the bDescriptorSubtype is a UAC2 Effect Unit (0x07).
    It tries to parse it as a Processing Unit (which is similar to two
    other UAC1 units with overlapping subtypes), but since the structure
    is different (See: 4.7.2.10, 4.7.2.11 in UAC2 standard), the parsing
    is done incorrectly and prevents the device from initializing.
    For now, just ignore the unit.

    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
     
  • For implicit feedback endpoints, the number of bytes for each packet
    is matched by the corresponding synchronizing endpoint.
    The size is calculated by taking the actual size and dividing it by
    the stride - currently by the endpoint's stride, but we should use the
    synchronization source's stride.
    This is evident when the number of channels differ between the
    synchronization source and the implicitly fed-back endpoint, as with
    M-Audio Fast Track C400 - the synchronization source (capture)
    has 4 channels, while the implicit feedback mode endpoint has 6.

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

    Eldad Zack