20 May, 2015

3 commits

  • We've got reports that ALC3226 (a Dell variant of ALC292) gives click
    noises at transition from D3 to D0 when the widget power-saving is
    enabled. Further debugging session showed that avoiding it isn't
    trivial, unfortunately, since paths are basically activated
    dynamically while the pins have been already enabled.

    This patch disables the widget power-saving for such codecs.

    Reported-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The widget (node) power-saves restore the widget states at each
    transition from D3 to D0 on each node. This was added in the commit
    [d545a57c5f84:ALSA: hda - Sync node attributes at resume from widget
    power saving]. However, the test was rater false-positive; this
    wasn't needed for any codecs.

    Since the resync may take significant number of additional verbs to be
    executed, it's better to reduce it. Let's disable it for now again.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The recently added DT support for the ac97 driver is causing
    a gcc warning:

    sound/atmel/ac97c.c: In function 'atmel_ac97c_probe_dt':
    sound/atmel/ac97c.c:919:29: warning: unused variable 'match' [-Wunused-variable]
    const struct of_device_id *match;

    The variable is clearly unused, so we can remove it.

    Signed-off-by: Arnd Bergmann
    Acked-by: Alexander Stein
    Signed-off-by: Takashi Iwai

    Arnd Bergmann
     

19 May, 2015

2 commits

  • Microsoft LifeCam Studio (045e:0772) needs a similar quirk for
    suppressing the wrong sample rate inquiry.

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

    Takashi Iwai
     
  • Currently in snd_pcm_update_hw_ptr0 during interrupt,
    we consider there were double acknowledged interrupts when:
    1. HW reported pointer is smaller than expected, and
    2. Time from last update time (hdelta) is over half a buffer time.

    However, when HW reported pointer is only a few bytes smaller than
    expected, and when hdelta is just a little larger than half a buffer time
    (e.g. ping-pong buffer), it wrongly treats this IRQ as double acknowledged.

    The condition #2 uses jiffies, but jiffies is not high resolution
    since it is integer. We should consider jiffies inaccuracy.

    Signed-off-by: Koro Chen
    Signed-off-by: Takashi Iwai

    Koro Chen
     

18 May, 2015

4 commits


13 May, 2015

5 commits


11 May, 2015

1 commit


05 May, 2015

1 commit


04 May, 2015

2 commits


02 May, 2015

1 commit


01 May, 2015

3 commits


29 Apr, 2015

6 commits


28 Apr, 2015

2 commits

  • The OSS emulation in synth-emux helper has a potential AB/BA deadlock
    at the simultaneous closing and opening:

    close ->
    snd_seq_release() ->
    sne_seq_free_client() ->
    snd_seq_delete_all_ports(): takes client->ports_mutex ->
    port_delete() ->
    snd_emux_unuse(): takes emux->register_mutex

    open ->
    snd_seq_oss_open() ->
    snd_emux_open_seq_oss(): takes emux->register_mutex ->
    snd_seq_event_port_attach() ->
    snd_seq_create_port(): takes client->ports_mutex

    This patch addresses the deadlock by reducing the rance taking
    emux->register_mutex in snd_emux_open_seq_oss(). The lock is needed
    for the refcount handling, so move it locally. The calls in
    emux_seq.c are already with the mutex, thus they are replaced with the
    version without mutex lock/unlock.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Current code uses wrong mask when setting RT5645_DMIC_2_DP_GPIO12 bit,
    fix it.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     

27 Apr, 2015

6 commits

  • Reported by coverity CID 1296024.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The emux-synth driver has a possible AB/BA mutex deadlock at unloading
    the emu10k1 driver:

    snd_emux_free() ->
    snd_emux_detach_seq(): mutex_lock(&emu->register_mutex) ->
    snd_seq_delete_kernel_client() ->
    snd_seq_free_client(): mutex_lock(®ister_mutex)

    snd_seq_release() ->
    snd_seq_free_client(): mutex_lock(®ister_mutex) ->
    snd_seq_delete_all_ports() ->
    snd_emux_unuse(): mutex_lock(&emu->register_mutex)

    Basically snd_emux_detach_seq() doesn't need a protection of
    emu->register_mutex as it's already being unregistered. So, we can
    get rid of this for avoiding the deadlock.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Some models provide too long string for the shortname that has 32bytes
    including the terminator, and it results in a non-terminated string
    exposed to the user-space. This isn't too critical, though, as the
    string is stopped at the succeeding longname string.

    This patch fixes such entries by dropping "SB" prefix (it's enough to
    fit within 32 bytes, so far). Meanwhile, it also changes strcpy()
    with strlcpy() to make sure that this kind of problem won't happen in
    future, too.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This patch adds the missing flag to enable "Mute-LED Mode" mixer enum
    ctl for Thinkpads that have also the software mute-LED control.

    Reported-and-tested-by: Pali Rohár
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The mute-LED mode control has the fixed on/off states that are
    supposed to remain on/off regardless of the master switch. However,
    this doesn't work actually because the vmaster hook is called in the
    vmaster code itself.

    This patch fixes it by calling the hook indirectly after checking the
    mute LED mode.

    Reported-and-tested-by: Pali Rohár
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Dell XPS13 produces a click noise at boot up, and Gabriele spotted out
    that it's triggered by the initial pin control of the mic (NID 0x19).
    This has to be set to Hi-Z Vref while the driver initializes to Vref
    80% as a normal mic.

    This patch fixes the generic parser code not to override the target
    vref if it has been already set by the driver, and adds a proper
    initialization of the target vref for this pin in the Realtek driver
    side.

    Reported-and-tested-by: Gabriele Mazzotta
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

25 Apr, 2015

2 commits

  • Pull sound fixes from Takashi Iwai:
    "Here are a few fixes that have been pending since the previous pull
    request: a regression fix for HD-audio multiple SPDIF / HDMI devices,
    several ALC256 codec fixes, a couple of i915 HDMI audio fixes, and
    various small fixes.

    Nothing exciting, just boring, but things good to have"

    * tag 'sound-fix-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - fix headset mic detection problem for one more machine
    ALSA: hda/realtek - Fix Headphone Mic doesn't recording for ALC256
    ALSA: hda - fix "num_steps = 0" error on ALC256
    ALSA: usb-audio: Fix audio output on Roland SC-D70 sound module
    ALSA: hda - add AZX_DCAPS_I915_POWERWELL to Baytrail
    ALSA: hda - only sync BCLK to the display clock for Haswell & Broadwell
    ALSA: hda - Mute headphone pin on suspend on XPS13 9333
    sound/oss: fix deadlock in sequencer_ioctl(SNDCTL_SEQ_OUTOFBAND)
    ALSA: asound.h - use SNDRV_CTL_ELEM_ID_NAME_MAXLEN
    ALSA: hda - potential (but unlikely) uninitialized variable
    ALSA: hda - Fix regression for slave SPDIF setups
    ALSA: intel8x0: Check pci_iomap() success for DEVICE_ALI
    ALSA: hda - simplify azx_has_pm_runtime

    Linus Torvalds
     
  • Pull slave-dmaengine updates from Vinod Koul:

    - new drivers for:
    - Ingenic JZ4780 controller
    - APM X-Gene controller
    - Freescale RaidEngine device
    - Renesas USB Controller

    - remove device_alloc_chan_resources dummy handlers

    - sh driver cleanups for peri peri and related emmc and asoc patches
    as well

    - fixes and enhancements spread over the drivers

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (59 commits)
    dmaengine: dw: don't prompt for DW_DMAC_CORE
    dmaengine: shdmac: avoid unused variable warnings
    dmaengine: fix platform_no_drv_owner.cocci warnings
    dmaengine: pch_dma: fix memory leak on failure path in pch_dma_probe()
    dmaengine: at_xdmac: unlock spin lock before return
    dmaengine: xgene: devm_ioremap() returns NULL on error
    dmaengine: xgene: buffer overflow in xgene_dma_init_channels()
    dmaengine: usb-dmac: Fix dereferencing freed memory 'desc'
    dmaengine: sa11x0: report slave capabilities to upper layers
    dmaengine: vdma: Fix compilation warnings
    dmaengine: fsl_raid: statify fsl_re_chan_probe
    dmaengine: Driver support for FSL RaidEngine device.
    dmaengine: xgene_dma_init_ring_mngr() can be static
    Documentation: dma: Add documentation for the APM X-Gene SoC DMA device DTS binding
    arm64: dts: Add APM X-Gene SoC DMA device and DMA clock DTS nodes
    dmaengine: Add support for APM X-Gene SoC DMA engine driver
    dmaengine: usb-dmac: Add Renesas USB DMA Controller (USB-DMAC) driver
    dmaengine: renesas,usb-dmac: Add device tree bindings documentation
    dmaengine: edma: fixed wrongly initialized data parameter to the edma callback
    dmaengine: ste_dma40: fix implicit conversion
    ...

    Linus Torvalds
     

24 Apr, 2015

2 commits