20 Dec, 2014

1 commit

  • Pull sound fixes from Takashi Iwai:
    "Here are a few fixes that have landed after the previous pull request.
    All are driver specific fixes including:

    - error/int value fixes in OXFW,
    - Intel Skylake HD-audio HDMI codec support,
    - Additional HD-audio Realtek codecs and AD1986A codec fixes/quirks,
    - a few more DSD support and a quirk for Arcam rPAC in usb-audio,
    - a typo fix for Scarlett 6i6,
    - fixes for new ASIHPI firmware,
    - ASoC Exynos7 cleanups,
    - Intel ACPI support, and
    - a fix for PCM512 register cache sync"

    * tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
    ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
    ALSA: hda/realtek - New codec support for ALC298
    ALSA: asihpi: update to HPI version 4.14
    ALSA: asihpi: increase tuner pad cache size
    ALSA: asihpi: relax firmware version check
    ALSA: usb-audio: Fix Scarlett 6i6 initialization typo
    ALSA: hda - Add quirk for Packard Bell EasyNote MX65
    ALSA: usb-audio: add native DSD support for Matrix Audio DACs
    ALSA: hda/realtek - New codec support for ALC256
    ALSA: hda/realtek - Add new Dell desktop for ALC3234 headset mode
    ASoC: Intel: fix possible acpi enumeration panic
    ALSA: hda/hdmi - apply Haswell fix-ups to Skylake display codec
    ASoC: Intel: fix return value check in sst_acpi_probe()
    ALSA: hda - Make add_stereo_mix_input flag tristate
    ALSA: hda - Create capture source ctls when stereo mix input is added
    ALSA: hda - Fix typos in snd_hda_get_int_hint() kerneldoc comments
    ALSA: hda - add codec ID for Skylake display audio codec
    ALSA: oxfw: some signedness bugs
    ALSA: oxfw: fix detect_loud_models() return value
    ASoC: rt5677: add REGMAP_I2C and REGMAP_IRQ dependency
    ...

    Linus Torvalds
     

19 Dec, 2014

1 commit

  • The Arcam rPAC seems to have the same problem - whenever anything
    (alsamixer, udevd, 3.9+ kernel from 60af3d037eb8c, ..) attempts to
    access mixer / control interface of the card, the firmware "locks up"
    the entire device, resulting in
    SNDRV_PCM_IOCTL_HW_PARAMS failed (-5): Input/output error
    from alsa-lib.

    Other operating systems can somehow read the mixer (there seems to be
    playback volume/mute), but any manipulation is ignored by the device
    (which has hardware volume controls).

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

    Jiri Jaburek
     

18 Dec, 2014

2 commits


12 Dec, 2014

2 commits

  • Pull sound updates from Takashi Iwai:
    "This became a fairly large pull request. In addition to the usual
    driver updates / fixes, there have been a high amount of cleanups in
    ASoC area, as well as control API helpers and kernel documentations
    fixes touching through the whole tree.

    In the driver side, the biggest changes are the support for new Intel
    SoC found on new x86 machines, and the updates of FireWire dice and
    oxfw drivers.

    Some remarkable items are below:

    ALSA core:
    - PCM mmap code cleanup, removal of arch-dependent codes
    - PCM xrun injection support
    - PCM hwptr tracepoint support
    - Refactoring of snd_pcm_action(), simplification of PCM locking
    - Robustified sequecner auto-load functionality
    - New control API helpers and lots of cleanups along with them
    - Lots of kerneldoc fixes and cleanups

    USB-audio:
    - The mixer resume code was largely rewritten, and the devices with
    quirks are resumed properly.
    - New hardware support: Focusrite Scarlett, Digidesign Mbox1,
    Denon/Marantz DACs, Zoom R16/24

    FireWire:
    - DICE driver updates with better duplex and sync support, including
    MIDI support
    - New OXFW driver for Oxford Semiconductor FW970/971 chipset,
    including the previous LaCie Speakers device. Fullduplex and MIDI
    support included as well as DICE driver.

    HD-audio:
    - Refactoring the driver-caps quirk handling in snd-hda-intel
    - More consistent control names representing the topology better
    - Fixups: HP mute LED with ALC268 codec, Ideapad S210 built-in mic
    fix, ASUS Z99He laptop EAPD

    ASoC:
    - Conversion of AC'97 drivers to use regmap, bringing us closer to
    the removal of the ASoC level I/O code
    - Clean up a lot of old drivers that were open coding things that
    have subsequently been implemented in the core
    - Some DAPM performance improvements
    - Removal of the now seldom used CODEC mutex
    - Lots of updates for the newer Intel SoC support, including support
    for the DSP and some Cherrytrail and Braswell machine drivers
    - Support for Samsung boards using rt5631 as the CODEC
    - Removal of the obsolete AFEB9260 machine driver
    - Driver support for the TI TS3A227E headset driver used in some
    Chrombeooks

    Others:
    - ASIHPI driver update and cleanups
    - Lots of dev_*() printk conversions
    - Lots of trivial cleanups for the codes spotted by Coccinelle"

    * tag 'sound-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (594 commits)
    ALSA: pcxhr: NULL dereference on probe failure
    ALSA: lola: NULL dereference on probe failure
    ALSA: hda - Add "eapd" model string for AD1986A codec
    ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
    ALSA: oxfw: Add hwdep interface
    ALSA: oxfw: Add support for capture/playback MIDI messages
    ALSA: oxfw: add support for capturing PCM samples
    ALSA: oxfw: Add support AMDTP in-stream
    ALSA: oxfw: Add support for Behringer/Mackie devices
    ALSA: oxfw: Change the way to start stream
    ALSA: oxfw: Add proc interface for debugging purpose
    ALSA: oxfw: Change the way to make PCM rules/constraints
    ALSA: oxfw: Add support for AV/C stream format command to get/set supported stream formation
    ALSA: oxfw: Change the way to name card
    ALSA: dice: Add support for MIDI capture/playback
    ALSA: dice: Add support for capturing PCM samples
    ALSA: dice: Support for non SYT-Match sampling clock source mode
    ALSA: dice: Add support for duplex streams with synchronization
    ALSA: dice: Change the way to start stream
    ALSA: jack: Add dummy snd_jack_set_key() definition
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:
    - Two new dvb frontend drivers: mn88472 and mn88473
    - A new driver for some PCIe DVBSky cards
    - A new remote controller driver: meson-ir
    - One LIRC staging driver got rewritten and promoted to mainstream:
    igorplugusb
    - A new tuner driver (m88rs6000t)
    - The old omap2 media driver got removed from staging. This driver
    uses an old DMA API and it is likely broken on recent kernels.
    Nobody cared enough to fix it
    - Media bus format moved to a separate header, as DRM will also use the
    definitions there
    - mem2mem_testdev were renamed to vim2m, in order to use the same
    naming convention taken by the other virtual test driver (vivid)
    - Added a new driver for coda SoC (coda-jpeg)
    - The cx88 driver got converted to use videobuf2 core
    - Make DMABUF export buffer to work with DMA Scatter/Gather and Vmalloc
    cores
    - Lots of other fixes, improvements and cleanups on the drivers.

    * tag 'media/v3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (384 commits)
    [media] mn88473: One function call less in mn88473_init() after error
    [media] mn88473: Remove uneeded check before release_firmware()
    [media] lirc_zilog: Deletion of unnecessary checks before vfree()
    [media] MAINTAINERS: Add myself as img-ir maintainer
    [media] img-ir: Don't set driver's module owner
    [media] img-ir: Depend on METAG or MIPS or COMPILE_TEST
    [media] img-ir/hw: Drop [un]register_decoder declarations
    [media] img-ir/hw: Fix potential deadlock stopping timer
    [media] img-ir/hw: Always read data to clear buffer
    [media] redrat3: ensure dma is setup properly
    [media] ddbridge: remove unneeded check before dvb_unregister_device()
    [media] si2157: One function call less in si2157_init() after error
    [media] tuners: remove uneeded checks before release_firmware()
    [media] arm: omap2: rx51-peripherals: fix build warning
    [media] stv090x: add an extra protetion against buffer overflow
    [media] stv090x: Remove an unreachable code
    [media] stv090x: Some whitespace cleanups
    [media] em28xx: checkpatch cleanup: whitespaces/new lines cleanups
    [media] si2168: add support for firmware files in new format
    [media] si2168: debug printout for firmware version
    ...

    Linus Torvalds
     

08 Dec, 2014

1 commit


07 Dec, 2014

1 commit

  • In snd_usbmidi_error_timer(), the driver tries to resubmit MIDI input
    URBs to reactivate the MIDI stream, but this causes the error when
    some of URBs are still pending like:

    WARNING: CPU: 0 PID: 0 at ../drivers/usb/core/urb.c:339 usb_submit_urb+0x5f/0x70()
    URB ef705c40 submitted while active
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.6-2-desktop #1
    Hardware name: FOXCONN TPS01/TPS01, BIOS 080015 03/23/2010
    c0984bfa f4009ed4 c078deaf f4009ee4 c024c884 c09a135c f4009f00 00000000
    c0984bfa 00000153 c061ac4f c061ac4f 00000009 00000001 ef705c40 e854d1c0
    f4009eec c024c8d3 00000009 f4009ee4 c09a135c f4009f00 f4009f04 c061ac4f
    Call Trace:
    [] try_stack_unwind+0x156/0x170
    [] dump_trace+0x5a/0x1b0
    [] show_trace_log_lvl+0x46/0x50
    [] show_stack_log_lvl+0x51/0xe0
    [] show_stack+0x27/0x50
    [] dump_stack+0x45/0x65
    [] warn_slowpath_common+0x84/0xa0
    [] warn_slowpath_fmt+0x33/0x40
    [] usb_submit_urb+0x5f/0x70
    [] snd_usbmidi_submit_urb+0x14/0x60 [snd_usbmidi_lib]
    [] snd_usbmidi_error_timer+0x6a/0xa0 [snd_usbmidi_lib]
    [] call_timer_fn+0x30/0x130
    [] run_timer_softirq+0x1c2/0x260
    [] __do_softirq+0xc3/0x270
    [] do_softirq_own_stack+0x22/0x30
    [] irq_exit+0x8d/0xa0
    [] smp_apic_timer_interrupt+0x38/0x50
    [] apic_timer_interrupt+0x34/0x3c
    [] cpuidle_enter_state+0x3e/0xd0
    [] cpu_idle_loop+0x29d/0x3e0
    [] cpu_startup_entry+0x53/0x60
    [] start_kernel+0x415/0x41a

    For avoiding these errors, check the pending URBs and skip
    resubmitting such ones.

    Reported-and-tested-by: Stefan Seyfried
    Acked-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

02 Dec, 2014

1 commit

  • This makes the midi interface and capture work out of the box with
    R16 (and presumably R24 too but untested). Playback stream would also
    seem to function fine except for one caveat: no sound is produced,
    so it is disabled for now. Mixer descriptors are garbage and will
    require further quirks to enable functionality, also disabled here.

    Signed-off-by: Panu Matilainen
    Signed-off-by: Takashi Iwai

    Panu Matilainen
     

29 Nov, 2014

3 commits


21 Nov, 2014

13 commits


17 Nov, 2014

1 commit


16 Nov, 2014

1 commit

  • This patch adds a USB control message delay quirk for a few specific Marantz/Denon
    devices. Without the delay the DACs will not work properly and produces the
    following type of messages:

    Nov 15 10:09:21 orwell kernel: [ 91.342880] usb 3-13: clock source 41 is not valid, cannot use
    Nov 15 10:09:21 orwell kernel: [ 91.343775] usb 3-13: clock source 41 is not valid, cannot use

    There are likely other Marantz/Denon devices using the same USB module which exhibit the
    same problems. But as this cannot be verified I limited the patch to the devices
    I could test.

    The following two devices are covered by this path:
    - Marantz SA-14S1
    - Marantz HD-DAC1

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

    Jurgen Kramer
     

14 Nov, 2014

1 commit


13 Nov, 2014

4 commits

  • This code contains the Scarlett mixer interface code that was originally
    written by Tobias Hoffman and Robin Gareus. Because the device doesn't
    properly implement UAC2 this code adds a mixer quirk for the device.

    Changes from the original code include removing the metering code along with
    dead code and comments. Compiler warnings were fixed. The code to initialize
    the sampling rate was causing a crash this was fixed as discussed on the
    mailing list. Error, and info messages were convered to dev_err and dev_info
    interfaces. The custom scarlett_mixer_elem_info struct was replaced with the
    more generic usb_mixer_elem_info to be able to recycle more code from mixer.c.

    This patch also makes additional modifications based on upstream comments.
    Individual control creation functions are removed and a generic
    function is no used. Macros for function calls are removed to improve
    readability. Hardcoded control initialization is removed. Save to HW
    functionality has been removed. Strings for enums are created dynamically for
    the mixer. Strings used for controls are now SNDRV_CTL_ELEM_ID_NAME_MAXLEN
    length.

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     
  • Make the functions set_cur_mix_value and get_cur_mix_value accessible by files
    that include mixer.h. In addition make usb_mixer_elem_free accessible.
    This allows reuse of these functions by mixers that may require quirks.

    The following summarizes the renamed functions:
    - set_cur_mix_value -> snd_usb_set_cur_mix_value
    - get_cur_mix_value -> snd_usb_get_cur_mix_value
    - usb_mixer_elem_free -> snd_usb_mixer_elem_free

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     
  • Add a private_data pointer to usb_mixer_elem_info to allow other mixer
    implementations to extend the structure as necessary.

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     
  • This reverts commit 1762a59d8e8b5e99f6f4a0f292b40f3cacb108ba.

    This quirk is not needed because support for the Scarlett mixers will be added.

    Signed-off-by: Chris J Arges
    Signed-off-by: Takashi Iwai

    Chris J Arges
     

12 Nov, 2014

1 commit


11 Nov, 2014

3 commits

  • This patch provides duplex support for the Digidesign Mbox 1 sound
    card and has been a work in progress for about a year.
    Users have confirmed on my website that previous versions of this patch
    have worked on the hardware and I have been testing extensively.

    It also enables the mixer control for providing clock source
    selector based on the previous patch.
    The sample rate has been hardcoded to 48kHz because it works better with
    the S/PDIF sync mode when the sample rate is locked. This is the
    highest rate that the device supports and no loss of functionality
    is observed by restricting the sample rate apart from the inability to selec
    a lower rate.

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

    Damien Zammit
     
  • This patch provides the infrastructure for the Digidesign Mbox 1
    to have a mixer control for selecting the clock source.
    Valid options are Internal and S/PDIF external sync.
    A non-documented command is sent to the device to enable this feature
    found by reverse engineering and bus snooping.

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

    Damien Zammit
     
  • Needed due to some important regression fixes at RC core.

    * commit 'v3.18-rc4': (587 commits)
    Linux 3.18-rc4
    ARM: dts: zynq: Enable PL clocks for Parallella
    tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP
    tiny: reverse logic for DISABLE_DEV_COREDUMP
    i2c: core: Dispose OF IRQ mapping at client removal time
    i2c: at91: don't account as iowait
    i2c: remove FSF address
    USB: Update default usb-storage delay_use value in kernel-parameters.txt
    sysfs: driver core: Fix glue dir race condition by gdp_mutex
    MIPS: Fix build with binutils 2.24.51+
    xfs: track bulkstat progress by agino
    xfs: bulkstat error handling is broken
    xfs: bulkstat main loop logic is a mess
    xfs: bulkstat chunk-formatter has issues
    xfs: bulkstat chunk formatting cursor is broken
    xfs: bulkstat btree walk doesn't terminate
    mm: Fix comment before truncate_setsize()
    USB: cdc-acm: add quirk for control-line state requests
    tty: Fix pty master poll() after slave closes v2
    MIPS: R3000: Fix debug output for Virtual page number
    ...

    Conflicts:
    drivers/media/rc/rc-main.c

    Mauro Carvalho Chehab
     

10 Nov, 2014

3 commits

  • The quirk argument itself was used as iterator, so it cannot be taken
    back to the original value, obviously.

    Fixes: d4b8fc66f770 ('ALSA: usb-audio: Allow multiple entries for the same iface in composite quirk')
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Currently the composite quirk doesn't work when multiple entries are
    assigned to the same interface because it marks the interface as
    claimed then checks whether the interface has been already claimed for
    the secondary entry. But, if you look at the code, you'll notice that
    multiple entries are allowed if the entry is the current interface;
    i.e. the current behavior is anyway inconsistent, and this is an
    unintended shortcoming.

    This patch fixes the problem by marking the relevant interfaces as
    claimed after applying the all composite entries. This fix will be
    needed for the upcoming enhancements for Digidesign Mbox 1 quirks.

    Reviewed-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add a new helper function snd_pcm_stop_xrun() to the standard sequnce
    lock/snd_pcm_stop(XRUN)/unlock by a single call, and replace the
    existing open codes with this helper.

    The function checks the PCM running state to prevent setting the wrong
    state, too, for more safety.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

06 Nov, 2014

1 commit

  • The usb-audio driver detects XRUN at its complete callback, but the
    actual code to trigger PCM XRUN is commented out because it caused
    deadlock in the past. This patch revives the PCM trigger properly.
    It resulted in more than just enabling snd_pcm_stop(), but it had to
    deduce the PCM substream with proper NULL checks and holds the stream
    lock around the call.

    Signed-off-by: Takashi Iwai

    Takashi Iwai