20 Nov, 2020

2 commits

  • Add set_sysclk function to select preferred master input
    clock on pcm512x codec, support multiple input system clocks
    on SCLK master mode.

    Signed-off-by: Adrian Alonso
    Reviewed-by: Shengjiu Wang
    (cherry picked from commit 5ca64840578f9dad359d5c2e6821805df68a1608)

    Adrian Alonso
     
  • ASoC machine sound driver for IQAudio PiDAC plus/pro
    Rev3 for iMX SoC, high resolution codec supporting
    upto 384khz sample rate on SAI; Include support for
    Hifiberry audio hats that uses external oscillators for
    dac system clock.

    Signed-off-by: Adrian Alonso
    Reviewed-by: Shengjiu Wang
    (cherry picked from commit b52d3587cba2b3db60cf316430478969918fed7a)

    Adrian Alonso
     

16 Nov, 2020

2 commits


13 Nov, 2020

2 commits


11 Nov, 2020

1 commit


05 Nov, 2020

1 commit


03 Nov, 2020

1 commit


29 Oct, 2020

1 commit


28 Oct, 2020

1 commit


27 Oct, 2020

4 commits


26 Oct, 2020

1 commit


20 Oct, 2020

1 commit


15 Oct, 2020

1 commit


09 Oct, 2020

1 commit


08 Oct, 2020

1 commit

  • * tag 'v5.4.70': (3051 commits)
    Linux 5.4.70
    netfilter: ctnetlink: add a range check for l3/l4 protonum
    ep_create_wakeup_source(): dentry name can change under you...
    ...

    Conflicts:
    arch/arm/mach-imx/pm-imx6.c
    arch/arm64/boot/dts/freescale/imx8mm-evk.dts
    arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
    drivers/crypto/caam/caamalg.c
    drivers/gpu/drm/imx/dw_hdmi-imx.c
    drivers/gpu/drm/imx/imx-ldb.c
    drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
    drivers/mmc/host/sdhci-esdhc-imx.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/net/ethernet/freescale/enetc/enetc.c
    drivers/net/ethernet/freescale/enetc/enetc_pf.c
    drivers/thermal/imx_thermal.c
    drivers/usb/cdns3/ep0.c
    drivers/xen/swiotlb-xen.c
    sound/soc/fsl/fsl_esai.c
    sound/soc/fsl/fsl_sai.c

    Signed-off-by: Jason Liu

    Jason Liu
     

07 Oct, 2020

3 commits


06 Oct, 2020

2 commits


01 Oct, 2020

15 commits

  • commit f73bbf639b32acb6b409e188fdde5644b301978f upstream.

    On Lenovo P520, the front panel headset LED isn't lit up right now.

    Realtek states that the LED needs to be enabled by ALC233's GPIO2, so
    let's do it accordingly to light the LED up.

    Signed-off-by: Kai-Heng Feng
    Acked-by: Hui Wang
    Cc:
    Link: https://lore.kernel.org/r/20200914070231.13192-1-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kai-Heng Feng
     
  • commit 3f74249057827c5f6676c41c18f6be12ce1469ce upstream.

    We found a Mic detection issue on many Lenovo laptops, those laptops
    belong to differnt models and they have different audio design like
    internal mic connects to the codec or PCH, they all have this problem,
    the problem is if plugging a headset before powerup/reboot the
    machine, after booting up, the headphone could be detected but Mic
    couldn't. If we plug out and plug in the headset, both headphone and
    Mic could be detected then.

    Through debugging we found the codec on those laptops are same, it is
    alc257, and if we don't disable the 3k pulldown in alc256_shutup(),
    the issue will be fixed. So far there is no pop noise or power
    consumption regression on those laptops after this change.

    Cc: Kailang Yang
    Cc:
    Signed-off-by: Hui Wang
    Link: https://lore.kernel.org/r/20200914065118.19238-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Hui Wang
     
  • commit 315c7ad7a701baba28c628c4c5426b3d9617ceed upstream.

    Needs the same delay as H650e

    Signed-off-by: Joakim Tjernlund
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200910085328.19188-1-joakim.tjernlund@infinera.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Joakim Tjernlund
     
  • [ Upstream commit 472eb39103e885f302fd8fd6eff104fcf5503f1b ]

    clang static analysis flags this problem
    hpioctl.c:513:7: warning: Branch condition evaluates to
    a garbage value
    if (pci.ap_mem_base[idx]) {
    ^~~~~~~~~~~~~~~~~~~~

    If there is a failure in the middle of the memory space loop,
    only some of the memory spaces need to be cleaned up.

    At the error handler, idx holds the number of successful
    memory spaces mapped. So rework the handler loop to use the
    old idx.

    There is a second problem, the memory space loop conditionally
    iomaps()/sets the mem_base so it is necessay to initize pci.

    Fixes: 719f82d3987a ("ALSA: Add support of AudioScience ASI boards")
    Signed-off-by: Tom Rix
    Link: https://lore.kernel.org/r/20200913165230.17166-1-trix@redhat.com
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Tom Rix
     
  • [ Upstream commit 6a0137101f47301fff2da6ba4b9048383d569909 ]

    The MPMAN Converter9 2-in-1 almost fully works with out default settings.
    The only problem is that it has only 1 speaker so any sounds only playing
    on the right channel get lost.

    Add a quirk for this model using the default settings + MONO_SPEAKER.

    Signed-off-by: Hans de Goede
    Acked-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200901080623.4987-1-hdegoede@redhat.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Hans de Goede
     
  • [ Upstream commit f5a2cda4f1db89776b64c4f0f2c2ac609527ac70 ]

    When the wm8958_mic_detect, wm8994_mic_detect functions get called from
    the machine driver, e.g. from the card's late_probe() callback, the CODEC
    device may be PM runtime suspended and any regmap writes have no effect.
    Add PM runtime calls to these functions to ensure the device registers
    are updated as expected.
    This suppresses an error during boot
    "wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec"
    caused by the regmap access error due to the cache_only flag being set.

    Signed-off-by: Sylwester Nawrocki
    Acked-by: Krzysztof Kozlowski
    Acked-by: Charles Keepax
    Link: https://lore.kernel.org/r/20200827173357.31891-2-s.nawrocki@samsung.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Sylwester Nawrocki
     
  • [ Upstream commit 811c5494436789e7149487c06e0602b507ce274b ]

    The WM8994_MICBIAS register is not available in the WM1811 CODEC so skip
    initialization of that register for that device.
    This suppresses an error during boot:
    "wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec"

    Signed-off-by: Sylwester Nawrocki
    Acked-by: Krzysztof Kozlowski
    Acked-by: Charles Keepax
    Link: https://lore.kernel.org/r/20200827173357.31891-1-s.nawrocki@samsung.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Sylwester Nawrocki
     
  • [ Upstream commit 7ad26d6671db758c959d7e1d100b138a38483612 ]

    Some sound card try to set 0 Hz as reset, but it is impossible.
    This patch ignores it to avoid error return.

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87a6yjy5sy.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Kuninori Morimoto
     
  • [ Upstream commit a6630529aecb5a3e84370c376ed658e892e6261e ]

    We've received a regression report on Intel HD-audio controller that
    wakes up immediately after S3 suspend. The bisection leads to the
    commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
    needed"). This commit replaces the system-suspend to use
    pm_runtime_force_suspend() instead of the direct call of
    __azx_runtime_suspend(). However, by some really mysterious reason,
    pm_runtime_force_suspend() causes a spurious wakeup (although it calls
    the same __azx_runtime_suspend() internally).

    As an ugly workaround for now, revert the behavior to call
    __azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
    platforms that may exhibit such a problem, while keeping the new
    standard pm_runtime_force_suspend() and pm_runtime_force_resume()
    pair for the remaining chips.

    Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
    Cc:
    Link: https://lore.kernel.org/r/20200727164443.4233-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit 8d6762af302d69f76fa788a277a56a9d9cd275d5 ]

    HD-audio codec driver applies a tricky procedure to forcibly perform
    the runtime resume by mimicking the usage count even if the device has
    been runtime-suspended beforehand. This was needed to assure to
    trigger the jack detection update after the system resume.

    And recently we also applied the similar logic to the HD-audio
    controller side. However this seems leading to some inconsistency,
    and eventually PCI controller gets screwed up.

    This patch is an attempt to fix and clean up those behavior: instead
    of the tricky runtime resume procedure, the existing jackpoll work is
    scheduled when such a forced codec resume is required. The jackpoll
    work will power up the codec, and this alone should suffice for the
    jack status update in usual cases. If the extra polling is requested
    (by checking codec->jackpoll_interval), the manual update is invoked
    after that, and the codec is powered down again.

    Also, we filter the spurious wake up of the codec from the controller
    runtime resume by checking codec->relaxed_resume flag. If this flag
    is set, basically we don't need to wake up explicitly, but it's
    supposed to be done via the audio component notifier.

    Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
    Link: https://lore.kernel.org/r/20200422203744.26299-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit 65bd91dd6957390c42a0491b9622cf31a2cdb140 ]

    pm_runtime_get_sync() increments the runtime PM usage counter even
    the call returns an error code. Thus a pairing decrement is needed
    on the error handling path to keep the counter balanced.

    Signed-off-by: Dinghao Liu
    Link: https://lore.kernel.org/r/20200529012230.5863-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Dinghao Liu
     
  • [ Upstream commit c637fa151259c0f74665fde7cba5b7eac1417ae5 ]

    The unsol event handling code has a loop retrieving the read/write
    indices and the arrays without locking while the append to the array
    may happen concurrently. This may lead to some inconsistency.
    Although there hasn't been any proof of this bad results, it's still
    safer to protect the racy accesses.

    This patch adds the spinlock protection around the unsol handling loop
    for addressing it. Here we take bus->reg_lock as the writer side
    snd_hdac_bus_queue_event() is also protected by that lock.

    Link: https://lore.kernel.org/r/20200516062556.30951-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit c4c8dd6ef807663e42a5f04ea77cd62029eb99fa ]

    The HD-audio controller does system-suspend and resume operations by
    directly calling its helpers __azx_runtime_suspend() and
    __azx_runtime_resume(). However, in general, we don't have to resume
    always the device fully at the system resume; typically, if a device
    has been runtime-suspended, we can leave it to runtime resume.

    Usually for achieving this, the driver would call
    pm_runtime_force_suspend() and pm_runtime_force_resume() pairs in the
    system suspend and resume ops. Unfortunately, this doesn't work for
    the resume path in our case. For handling the jack detection at the
    system resume, a child codec device may need the (literally) forcibly
    resume even if it's been runtime-suspended, and for that, the
    controller device must be also resumed even if it's been suspended.

    This patch is an attempt to improve the situation. It replaces the
    direct __azx_runtime_suspend()/_resume() calls with with
    pm_runtime_force_suspend() and pm_runtime_force_resume() with a slight
    trick as we've done for the codec side. More exactly:

    - azx_has_pm_runtime() check is dropped from azx_runtime_suspend() and
    azx_runtime_resume(), so that it can be properly executed from the
    system-suspend/resume path

    - The WAKEEN handling depends on the card's power state now; it's set
    and cleared only for the runtime-suspend

    - azx_resume() checks whether any codec may need the forcible resume
    beforehand. If the forcible resume is required, it does temporary
    PM refcount up/down for actually triggering the runtime resume.

    - A new helper function, hda_codec_need_resume(), is introduced for
    checking whether the codec needs a forcible runtime-resume, and the
    existing code is rewritten with that.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207043
    Link: https://lore.kernel.org/r/20200413082034.25166-6-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit 5c6cd7021a05a02fcf37f360592d7c18d4d807fb ]

    The Miditech MIDIFACE 16x16 (USB ID 1290:1749) has more than one extra
    endpoint descriptor.

    The first extra descriptor is: 0x06 0x30 0x00 0x00 0x00 0x00

    As the code in snd_usbmidi_get_ms_info() looks only at the
    first extra descriptor to find USB_DT_CS_ENDPOINT the device
    as such is recognized but there is neither input nor output
    configured.

    The patch iterates through the extra descriptors to find the
    proper one. With this patch the device is correctly configured.

    Signed-off-by: Andreas Steinmetz
    Link: https://lore.kernel.org/r/1c3b431a86f69e1d60745b6110cdb93c299f120b.camel@domdv.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Andreas Steinmetz
     
  • [ Upstream commit 1919b42ca4ad75a2397081164661af3ce5a7b8f4 ]

    In tx_wait_done the ipc payload is copied before the DSP transaction
    error code is checked. This might lead to corrupted data in kernel side
    even though the error would be handled later. It is also pointless to
    copy the data in case of error. So change the order of error check and
    copy.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Jaska Uimonen
    Link: https://lore.kernel.org/r/20200228231850.9226-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin

    Jaska Uimonen