26 Nov, 2015

2 commits

  • commit 0ad7d3a04b2a1a43fa71eb89f754527b082213ad upstream

    When McASP is used as TX/RX synchronous (TX side generating clocks for RX
    side also) and only capture is used we need to configure the number of TX
    slots in order McASP to be able to generate the Frame sync.

    Fixes: 9273de1940d9e ("ASoC: davinci-mcasp: Add set_tdm_slots() support")
    Signed-off-by: Peter Ujfalusi
    Signed-off-by: Jyri Sarha

    Peter Ujfalusi
     
  • commit 1bdd593247ee5a74eb58828a4cf18bdc8a5f1baa upstream

    Fixes the associations between the tx_mask and rx_mask and the associated
    playback / capture streams during setting of the TDM slot. With this
    patch in place it is now possible for example to only populate tx_mask
    (leaving rx_mask as 0) for output-only codecs to control the TDM slot(s)
    the McASP serial port uses for transmit. Before that, this scenario
    would incorrectly rely on the rx_mask for this.

    Signed-off-by: Andreas Dannenberg
    Reviewed-by: Jyri Sarha
    Acked-by: Peter Ujfalusi
    Signed-off-by: Mark Brown
    Signed-off-by: Jyri Sarha

    Andreas Dannenberg
     

10 Nov, 2015

4 commits

  • …ux-stable into ti-linux-4.1.y

    This is the 4.1.13 stable release

    * tag 'v4.1.13' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (86 commits)
    Linux 4.1.13
    dts: imx6: fix sd card gpio polarity specified in device tree
    xen: fix backport of previous kexec patch
    serial: 8250_pci: Add support for 12 port Exar boards
    pinctrl: baytrail: Use raw_spinlock for locking
    pinctrl: baytrail: Serialize all register access
    thp: use is_zero_pfn() only after pte_present() check
    drm/vmwgfx: Fix up user_dmabuf refcounting
    NVMe: Fix memory leak on retried commands
    arm64: compat: fix stxr failure case in SWP emulation
    arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap
    arm64: kernel: rename __cpu_suspend to keep it aligned with arm
    cpufreq: intel_pstate: Fix divide by zero on Knights Landing (KNL)
    IB/cm: Fix rb-tree duplicate free and use-after-free
    btrfs: fix possible leak in btrfs_ioctl_balance()
    MFD/OF: document MFD devices and handle simple-mfd
    mvsas: Fix NULL pointer dereference in mvs_slot_task_free
    irqchip/tegra: Propagate IRQ type setting to parent
    EDAC, sb_edac: Fix TAD presence check for sbridge_mci_bind_devs()
    Revert "md: allow a partially recovered device to be hot-added to an array."
    ...

    Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>

    LCPD Auto Merger
     
  • commit 34198710f55b5f359f43e67d9a08fe5aadfbca1b upstream.

    SX_TLV controls are intended for situations where the register behind
    the control has some non-zero value indicating the minimum gain
    and then gains increasing from there and eventually overflowing through
    zero.

    Currently every CODEC implementing these controls specifies the minimum
    as the non-zero value for the minimum and the maximum as the number of
    gain settings available.

    This means when the info callback subtracts the minimum value from the
    maximum value to calculate the number of gain levels available it is
    actually under reporting the available levels. This patch fixes this
    issue by adding a new snd_soc_info_volsw_sx callback that does not
    subtract the minimum value.

    Fixes: 1d99f2436d0d ("ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV")
    Signed-off-by: Charles Keepax
    Acked-by: Brian Austin
    Tested-by: Brian Austin
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Charles Keepax
     
  • commit d289619a219dd01e255d7b5e30f9171b25efea48 upstream.

    The HDA codec driver issues snd_hda_codec_reset() at the error path of
    PCM build. This was needed in the earlier code base, but the recent
    rewrite to use the standard bus binding made this a deadlock:
    modprobe D 0000000000000005 0 720 716 0x00000080
    Call Trace:
    [] schedule+0x3e/0x90
    [] schedule_preempt_disabled+0x15/0x20
    [] __mutex_lock_slowpath+0xb5/0x120
    [] mutex_lock+0x1b/0x30
    [] device_release_driver+0x1b/0x30
    [] bus_remove_device+0x105/0x180
    [] device_del+0x139/0x260
    [] snd_hdac_device_unregister+0x25/0x30 [snd_hda_core]
    [] snd_hda_codec_reset+0x2a/0x70 [snd_hda_codec]
    [] snd_hda_codec_build_pcms+0x18b/0x1b0 [snd_hda_codec]
    [] hda_codec_driver_probe+0xbe/0x140 [snd_hda_codec]
    [] driver_probe_device+0x1f4/0x460
    [] __driver_attach+0x90/0xa0
    [] bus_for_each_dev+0x64/0xa0
    [] driver_attach+0x1e/0x20
    [] bus_add_driver+0x1eb/0x280
    [] driver_register+0x60/0xe0
    [] __hda_codec_driver_register+0x5a/0x60 [snd_hda_codec]
    [] realtek_driver_init+0x1e/0x1000 [snd_hda_codec_realtek]
    [] do_one_initcall+0xb3/0x200
    [] do_init_module+0x60/0x1f8
    [] load_module+0x1653/0x1bd0
    [] SYSC_finit_module+0x98/0xc0
    [] SyS_finit_module+0xe/0x10
    [] entry_SYSCALL_64_fastpath+0x16/0x75

    The simple fix is just to remove this call, since we don't need to
    think about unbinding at there any longer.

    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=948758
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit e8d65a8d985271a102f07c7456da5b86c19ffe16 upstream.

    Add the appropriate quirk to indicate the Lenovo G50-80 has a stereo
    mic input where one channel has reverse polarity.

    Alsa-info available at:
    https://launchpadlibrarian.net/220846272/AlsaInfo.txt

    BugLink: https://bugs.launchpad.net/bugs/1504778
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson
     

27 Oct, 2015

2 commits

  • …el/audio-display-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: audio-display
    TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-4.1.y

    * 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    media: i2c: ov1063x: Fix pm_runtime_enable/disable unbalanced call causing a warning
    media: ti-vpe: vip: Clean up kernel log related code in the probe/remove function
    media: ti-vpe: vip: Removed unused linked list structure.
    media: ti-vpe: vip: Cleaned up devm_* calls for easier maintenance
    media: ti-vpe: vip: Fix pm_runtime_enable/disable unbalanced call sequence
    media: ti-vpe: vip: Fix loose pointer clean up
    media: ti-vpe: vip: Fix port resource cleanup
    media: ti-vpe: vip: Fix module unload/load errors
    media: ti-vpe: cal: print resource_size_t as %pa
    ASoC: simple-card: Add system-clock-direction DT parameter to dai nodes

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • Select dir parameters for set_sysclk calls in the card init phase.

    Signed-off-by: Jyri Sarha

    Jyri Sarha
     

24 Oct, 2015

1 commit

  • …ux-stable into ti-linux-4.1.y

    This is the 4.1.11 stable release

    * tag 'v4.1.11' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (203 commits)
    Linux 4.1.11
    3w-9xxx: don't unmap bounce buffered commands
    MIPS: Fix console output for Fulong2e system
    mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)
    intel_pstate: Fix overflow in busy_scaled due to long delay
    serial: atmel: fix error path of probe function
    serial: 8250: add uart_config entry for PORT_RT2880
    drivers/tty: require read access for controlling terminal
    tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c
    staging: speakup: fix speakup-r regression
    dm cache: fix NULL pointer when switching from cleaner policy
    dm: fix AB-BA deadlock in __dm_destroy()
    namei: results of d_is_negative() should be checked after dentry revalidation
    clk: ti: fix dual-registration of uart4_ick
    nfs/filelayout: Fix NULL reference caused by double freeing of fh_array
    fix a braino in ovl_d_select_inode()
    overlayfs: Make f_path always point to the overlay and f_inode to the underlay
    overlay: Call ovl_drop_write() earlier in ovl_dentry_open()
    md/bitmap: don't pass -1 to bitmap_storage_alloc.
    genirq: Fix race in register_irq_proc()
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Conflicts:
    drivers/usb/host/xhci.c

    Dan Murphy
     

23 Oct, 2015

10 commits

  • commit e256da84a04ea31c3c215997c847609af224e8f4 upstream.

    Signed-off-by: Gianluca Renzi
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Gianluca Renzi
     
  • commit e74679b38c9417c1c524081121cdcdb36f82264d upstream.

    Commit b4508d0f95fa ("ASoC: db1200: Use static DAI format setup") switched
    the db1200 driver over to using static DAI format setup instead of a
    callback function. But the commit only added the dai_fmt field to one of
    the three DAI links in the driver. This breaks audio on db1300 and db1550.

    Add the two missing dai_fmt settings to fix the issue.

    Fixes: b4508d0f95fa ("ASoC: db1200: Use static DAI format setup")
    Reported-by: Manuel Lauss
    Tested-by: Manuel Lauss
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen
     
  • commit 4873867e5f2bd90faad861dd94865099fc3140f3 upstream.

    from Designware I2S datasheet, tx/rx XRUN irq is cleared by
    reading register TOR/ROR, rather than by writing into them.

    Signed-off-by: Yitian Bu
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Yitian Bu
     
  • commit 3c8f7710c1c44fb650bc29b6ef78ed8b60cfaa28 upstream.

    The previous fix of pxa library support, which was introduced to fix the
    library dependency, broke the previous SoC behavior, where a machine
    code binding pxa2xx-ac97 with a coded relied on :
    - sound/soc/pxa/pxa2xx-ac97.c
    - sound/soc/codecs/XXX.c

    For example, the mioa701_wm9713.c machine code is currently broken. The
    "select ARM" statement wrongly selects the soc/arm/pxa2xx-ac97 for
    compilation, as per an unfortunate fate SND_PXA2XX_AC97 is both declared
    in sound/arm/Kconfig and sound/soc/pxa/Kconfig.

    Fix this by ensuring that SND_PXA2XX_SOC correctly triggers the correct
    pxa2xx-ac97 compilation.

    Fixes: 846172dfe33c ("ASoC: fix SND_PXA2XX_LIB Kconfig warning")
    Signed-off-by: Robert Jarzmik
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Robert Jarzmik
     
  • commit 8811191fdf7ed02ee07cb8469428158572d355a2 upstream.

    PCM receive and transmit DMA requestor lines were reverted, breaking the
    PCM playback interface for PXA platforms using the sound/soc/ variant
    instead of the sound/arm variant.

    The commit below shows the inversion in the requestor lines.

    Fixes: d65a14587a9b ("ASoC: pxa: use snd_dmaengine_dai_dma_data")
    Signed-off-by: Robert Jarzmik
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Robert Jarzmik
     
  • commit c7e1008048a97148d3aecae742f66fb2f944644c upstream.

    The recent widget power saving introduced some unavoidable click
    noises on old IDT 92HD73xx chips while it still seems working on the
    compatible new chips. In the bugzilla, we tried lots of tests and
    workarounds, but they didn't help much. So, let's disable the feature
    for these specific chips as the least (but safest) fix.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104981
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit e8ff581f7ac2bc3b8886094b7ca635dcc4d1b0e9 upstream.

    The MacBookPro 12,1 has the same setup as the 11 for controlling the
    status of the optical audio light. Simply apply the existing workaround
    to the subsystem ID for the 12,1.

    [sorted the fixup entry by tiwai]

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105401
    Signed-off-by: John Flatness
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    John Flatness
     
  • commit d05ea7da0e8f6df3c62cfee75538f347cb3d89ef upstream.

    Much like all the other Lenovo laptops, add a quirk to make
    sound work with docking.

    Reported-and-tested-by: lacknerflo@gmail.com
    Signed-off-by: Laura Abbott
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Laura Abbott
     
  • commit 225db5762dc1a35b26850477ffa06e5cd0097243 upstream.

    When OSS emulation is loaded on ISA SB AWE32 chip, we get now kernel
    warnings like:
    WARNING: CPU: 0 PID: 2791 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x51/0x80()
    sysfs: cannot create duplicate filename '/devices/isa/sbawe.0/sound/card0/seq-oss-0-0'

    It's because both emux synth and opl3 drivers try to register their
    OSS device object with the same static index number 0. This hasn't
    been a big problem until the recent rewrite of device management code
    (that exposes sysfs at the same time), but it's been an obvious bug.

    This patch works around it just by using a different index number of
    emux synth object. There can be a more elegant way to fix, but it's
    enough for now, as this code won't be touched so often, in anyway.

    Reported-and-tested-by: Michael Shell
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 7f57d803ee03730d570dc59a9e3e4842b58dd5cc upstream.

    Lenovo Thinkpads with recent Realtek codecs seem suffering from click
    noises at power transition since the introduction of widget power
    saving in 4.1 kernel. Although this might be solved by some delays in
    appropriate points, as a quick workaround, just disable the
    power_save_node feature for now. The gain it gives is relatively
    small, and this makes the situation back to pre 4.1 time.

    This patch ended up with a bit more code changes than usual because
    the existing fixup for Thinkpads is highly chained. Instead of adding
    yet another chain, combine a few of them into a single fixup entry, as
    a gratis cleanup.

    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

02 Oct, 2015

6 commits

  • …el/audio-display-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: audio-display
    TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-4.1.y

    * 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    media: i2c: ov2659: Fix sensor detection to actually fail when device is not present
    clk: ti: clk-7xx: Remove hardwired ABE clock configuration
    ARM: dts: dra7x-evm: add ABE DPLL init setups
    ASoC: soc-core: Fix sparse warning in be32_to_cpup() call
    ASoC: simple-card: Add tdm slot mask support to simple-card
    ASoC: davinci-mcasp: Add set_tdm_slots() support
    ASoC: tlv320aic3x: Improve tdm support

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • commit 6c84e5917f83334f9196a50cfa31e72207b1a7f6 upstream

    Store return value of of_get_property() to a pointer of __be32 type as
    device tree has big endian type. This fixes a sparse warning couple of
    lines later when be32_to_cpup() is used to convert from big endian to
    cpu endian.

    The whole conversion is not really necessary, as we are only checking
    if the value is zero or not, but I wanted to add it to remind in the
    future that the data has to be converted before use. Compiler should
    optimize the unnecessary operations away.

    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown

    Jyri Sarha
     
  • commit 6131084a0bc966107021d8c89489f9cd1663b902 upstream

    Adds DT binding for explicitly choosing a tdm mask for DAI and uses it
    in simple-card. The API for snd_soc_of_parse_tdm_slot() has also been
    changed.

    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown

    Jyri Sarha
     
  • commit dd55ff8346a972cca1ad056c8258ee96d090633e upstream

    Implements set_tdm_slot() callback for mcasp. Channel constraints are
    updated according to the configured tdm mask and slots each time
    set_tdm_slot() is called. The special case when slot width is set to
    zero is allowed and it means that slot width is the same as the sample
    width.

    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown

    Jyri Sarha
     
  • commit 3e8f5263bd83fd0fe7dacba2de347b17ac99fc91 upstream

    Before this patch the set_tdm_slots() callback did not store the value
    of slot width anywhere. The tdm support only worked if selected slot
    width was equal to the sample width. With this patch all sample widths
    that fit into the slot width are supported. There unused bits are
    filled unnecessarily in the capture direction, but the other end of
    the i2s bus should be able to ignore them.

    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown

    Jyri Sarha
     
  • …x-stable into ti-linux-4.1.y

    This is the 4.1.9 stable release

    * tag 'v4.1.9' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (160 commits)
    Linux 4.1.9
    cxl: Don't remove AFUs/vPHBs in cxl_reset
    ipv4: off-by-one in continuation handling in /proc/net/route
    net: dsa: Do not override PHY interface if already configured
    inet: fix races with reqsk timers
    inet: fix possible request socket leak
    netlink: make sure -EBUSY won't escape from netlink_insert
    bna: fix interrupts storm caused by erroneous packets
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy
    udp: fix dst races with multicast early demux
    rds: fix an integer overflow test in rds_info_getsockopt()
    rocker: free netdevice during netdevice removal
    net: sched: fix refcount imbalance in actions
    act_bpf: fix memory leaks when replacing bpf programs
    packet: tpacket_snd(): fix signed/unsigned comparison
    packet: missing dev_put() in packet_do_bind()
    fib_trie: Drop unnecessary calls to leaf_pull_suffix
    net/mlx4_core: Fix wrong index in propagating port change event to VFs
    bridge: netlink: fix slave_changelink/br_setport race conditions
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Conflicts:
    drivers/media/platform/am437x/am437x-vpfe.c

    Dan Murphy
     

30 Sep, 2015

5 commits

  • commit 467e1436ba85f78b8c4610c4549eb255a8211c42 upstream.

    The M3800 is very minor workstation variant of the XPS 15 which has
    already been patched for this issue. I figured it's probably more
    important for this version of the laptop to be patched than the
    regular XPS as Dell sells is pre-configured with Ubuntu to be used as
    a Linux workstation. I have tested the patch on my the hardware on
    Linux 4.2.0.

    Signed-off-by: Niranjan Sivakumar
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Niranjan Sivakumar
     
  • commit 1adecc6755e1e4193b5618ddb2e107f6d6e88f4b upstream.

    Dell laptop has a series model to use the same codec but different subsystem ID.
    At the same time they happens the white noise by login screen and headphone;
    for fixing them together, I only can add these IDs to FIXUP function ALC292_FIXUP_DISABLE_AAMIX,
    then try to solve such the similar issues.

    Codec: Realtek ALC3235
    Vendor Id: 0x10ec0293
    Subsystem Id: 0x102806dd
    Subsystem Id: 0x102806df
    Subsystem Id: 0x102806e0

    BugLink: https://bugs.launchpad.net/bugs/1492132
    Signed-off-by: Woodrow Shen
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Woodrow Shen
     
  • commit a161574e200ae63a5042120e0d8c36830e81bde3 upstream.

    It turned out that the machine has a bass speaker, so take a correct
    fixup entry.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit bb148bdeb0ab16fc0ae8009799471e4d7180073b upstream.

    According to the bug report, FSC Amilo laptops with ALC880 can detect
    the headphone jack but currently the driver disables it. It's partly
    intentionally, as non-working jack detect was reported in the past.
    Let's enable now.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 6aa6925cad06159dc6e25857991bbc4960821242 upstream.

    The check of cval->cached should be zero-based (including master channel).

    Signed-off-by: Yao-Wen Mao
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Yao-Wen Mao
     

26 Sep, 2015

1 commit

  • …x-stable into ti-linux-4.1.y

    This is the 4.1.8 stable release

    * tag 'v4.1.8' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (184 commits)
    Linux 4.1.8
    ARM: rockchip: fix broken build
    fs: create and use seq_show_option for escaping
    hpfs: update ctime and mtime on directory modification
    fs: Set the size of empty dirs to 0.
    drivercore: Fix unregistration path of platform devices
    ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
    ARM: dts: rockchip: fix rk3288 watchdog irq
    ARM: rockchip: fix the CPU soft reset
    ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
    ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
    ARM: orion5x: fix legacy orion5x IRQ numbers
    of/address: Don't loop forever in of_find_matching_node_by_address().
    soc/tegra: pmc: Avoid usage of uninitialized variable
    x86/mce: Reenable CMCI banks when swiching back to interrupt mode
    regulator: pbias: Fix broken pbias disable functionality
    auxdisplay: ks0108: fix refcount
    spi/spi-xilinx: Fix mixed poll/irq mode
    spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
    Doc: ABI: testing: configfs-usb-gadget-sourcesink
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Conflicts:
    arch/arm/mm/proc-v7.S

    Dan Murphy
     

22 Sep, 2015

5 commits

  • commit 0e7659712836ca59b4735bc5cc94de38698a5e01 upstream.

    The extcon driver takes the DAPM mutex from within the interrupt thread
    in several places, which makes it possible to get into a situation where
    the interrupt thread is blocked waiting on the DAPM mutex whilst a DAPM
    sequence is running which is attempting to configure the FLL. In this
    case the FLL completion can't be completed as as the IRQ handler is
    ONE_SHOT, which cause the FLL lock to use the full time out (250mS) and
    report that the process timed out.

    It is not really practical to make the extcon driver not take the DAPM
    mutex from within the interrupt thread, at least not without extensive
    modification. So this patch fixes the issue by switching the wait for
    the FLL lock to polling. A few fast polls are done first as the FLL
    should lock quickly for a good quality reference clock, (indeed it hits
    on the first poll on my system) and it will poll every 20mS after that
    until it times out.

    Signed-off-by: Charles Keepax
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Charles Keepax
     
  • commit 1cf5a330c05ae37a0a98ac7c9800a6f50d5579ec upstream.

    The wrong register was used to set the gain of ref loop, when changing
    the FLL output on an active FLL. This patch corrects the offset of the
    gain register.

    Signed-off-by: Nikesh Oswal
    Signed-off-by: Charles Keepax
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Nikesh Oswal
     
  • commit 9d8352864907f0ad76124c5b28f65b5a382d7d7c upstream.

    Don't set .read_flag_mask for adav803, it's for adav801 only.

    Fixes: 0c2d69645628 ("ASoC: adav80x: Split SPI and I2C code into different modules")
    Signed-off-by: Axel Lin
    Acked-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Axel Lin
     
  • commit 14a500fe1396934c6b3ed8f009459a4723da7862 upstream.

    There is no use of snd_soc_unregister_card in remove function
    as devm_snd_soc_register_card in probe function automatically
    handles it. So, remove use of snd_soc_unregister_card and with
    this change remove arndale_audio_remove as it is now redundant.

    Signed-off-by: Vaishali Thakkar
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Vaishali Thakkar
     
  • commit 9b850ca4f1c5acd7fcbbd4b38a2d27132801a8d5 upstream.

    The power for line out was not turned on when line out is enabled.
    So we add "LOUT amp" widget to turn on the power for line out.

    Signed-off-by: John Lin
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    John Lin
     

14 Sep, 2015

4 commits

  • commit c7e69ae6b4ff49edf50180c0a32f3dd9d7967e31 upstream.

    After a for-loop was replaced by list_for_each_entry, see
    Commit bbbc7e8502c9 ("ALSA: hda - Allocate hda_pcm objects dynamically"),
    Commit 751e2216899c ("ALSA: hda: fix possible null dereference"),
    a possible NULL pointer dereference has been introduced; this patch adds
    the NULL check on pcm->pcm, while leaving a potentially superfluous
    check on pcm itself untouched.

    Signed-off-by: Markus Osterhoff
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Markus Osterhoff
     
  • commit c7cd0ef66aade29e37ee08821a0e195ee776c6e6 upstream.

    The widget power-saving code tries to turn up/down the power of each
    widget in the I/O paths that are modified at each jack plug/unplug.
    The recent report revealed that the power activation leaves some
    widgets unpowered after plugging. This is because
    snd_hda_activate_path() turns on path->active flag at the end of the
    function while the path power management is done before that. Then
    it's regarded as if nothing is active, and the driver turns off the
    power.

    The fix is simply to set the flag at the beginning of the function,
    before trying to power up.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 9d2b48f7304aafaefbf0794a556ab4e307929d24 upstream.

    The is_active_nid_for_any() function in the generic parser is supposed
    to check all connections from/to the given widget, but the current
    code checks only the first input connection (index = 0).

    This patch corrects the code to check all inputs by passing -1 to
    index argument.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f6b28e4ded45bb91bc4cd115d55e35badedfce5f upstream.

    On shutdown/reboot of CX20722, first shut down all EAPDs, then
    shut down the afg node to D3.

    Failure to do so can lead to spurious noises from the internal speaker
    directly after reboot (and before the codec is reinitialized again, i e
    in BIOS setup or GRUB menus).

    BugLink: https://bugs.launchpad.net/bugs/1487345
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson