06 Feb, 2020

4 commits

  • Pull sound fixes from Takashi Iwai:
    "A collection of pending small fixes:

    ALSA core:
    - PCM memory leak fix

    ASoC:
    - Lots of SOF and Intel driver fixes
    - Addition of COMMON_CLK for wcd934x
    - Regression fixes for AMD and Tegra platforms

    HD-audio:
    - DP-MST HDMI regression fix, Tegra workarounds, HP quirk fix

    Others:
    - A few fixes relevant with the recent uapi-updates
    - Sparse warnings and endianness fixes"

    * tag 'sound-fix-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits)
    ALSA: hda: Clear RIRB status before reading WP
    ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported
    ASoC: wcd934x: Add missing COMMON_CLK dependency to SND_SOC_ALL_CODECS
    ALSA: hda - Fix DP-MST support for NVIDIA codecs
    ASoC: wcd934x: Add missing COMMON_CLK dependency
    MAINTAINERS: Remove the Bard Liao from the MAINTAINERS of Realtek CODECs
    ASoC: tegra: Revert 24 and 32 bit support
    ASoC: SOF: Intel: add PCI ID for JasperLake
    ALSA: hdsp: Make the firmware loading ioctl a bit more readable
    ALSA: emu10k1: Fix annotation and cast for the recent uapi header change
    ALSA: dummy: Fix PCM format loop in proc output
    ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk
    ALSA: usb-audio: Fix endianess in descriptor validation
    ALSA: hda: Add JasperLake PCI ID and codec vid
    ALSA: pcm: Fix sparse warnings wrt snd_pcm_state_t
    ALSA: pcm: Fix memory leak at closing a stream without hw_free
    ALSA: uapi: Fix sparse warning
    ASoC: rt715: Add __maybe_unused to PM callbacks
    ASoC: rt711: Add __maybe_unused to PM callbacks
    ASoC: rt700: Add __maybe_unused to PM callbacks
    ...

    Linus Torvalds
     
  • …ie/sound into for-linus

    ASoC: Fix for v5.6

    An incremental fix for the Qualcomm COMMON_CLK issue.

    Takashi Iwai
     
  • RIRB interrupt status getting cleared after the write pointer is read
    causes a race condition, where last response(s) into RIRB may remain
    unserviced by IRQ, eventually causing azx_rirb_get_response to fall
    back to polling mode. Clearing the RIRB interrupt status ahead of
    write pointer access ensures that this condition is avoided.

    Signed-off-by: Mohan Kumar
    Signed-off-by: Viswanath L
    Link: https://lore.kernel.org/r/1580983853-351-1-git-send-email-viswanathl@nvidia.com
    Signed-off-by: Takashi Iwai

    Mohan Kumar
     
  • HP want to keep BIOS verb table for release platform.
    So, it need to add 0x19 pin for quirk.

    Fixes: 5af29028fd6d ("ALSA: hda/realtek - Add Headset Mic supported for HP cPC")
    Signed-off-by: Kailang Yang
    Link: https://lore.kernel.org/r/74636ccb700a4cbda24c58a99dc430ce@realtek.com
    Signed-off-by: Takashi Iwai

    Kailang Yang
     

05 Feb, 2020

3 commits

  • …ie/sound into for-linus

    ASoC: Fixes for v5.6

    A collection of updates for bugs fixed since the initial pull
    request, the most important one being the addition of COMMON_CLK
    for wcd934x which is needed for MFD to be merged.

    Takashi Iwai
     
  • Just adding a dependency on COMMON_CLK to SND_SOC_WCD934X is not
    sufficient, as enabling SND_SOC_ALL_CODECS will still select it,
    breaking the build later:

    WARNING: unmet direct dependencies detected for SND_SOC_WCD934X
    Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && COMMON_CLK [=n] && MFD_WCD934X [=m]
    Selected by [m]:
    - SND_SOC_ALL_CODECS [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && COMPILE_TEST [=y] && MFD_WCD934X [=m]
    ...
    ERROR: "of_clk_add_provider" [sound/soc/codecs/snd-soc-wcd934x.ko] undefined!
    ERROR: "of_clk_src_simple_get" [sound/soc/codecs/snd-soc-wcd934x.ko] undefined!
    ERROR: "clk_hw_register" [sound/soc/codecs/snd-soc-wcd934x.ko] undefined!
    ERROR: "__clk_get_name" [sound/soc/codecs/snd-soc-wcd934x.ko] undefined!

    Fix this by adding the missing dependency to SND_SOC_ALL_CODECS

    Fixes: 42b716359beca106 ("ASoC: wcd934x: Add missing COMMON_CLK dependency")
    Signed-off-by: Geert Uytterhoeven
    Tested-by: Stephen Rothwell
    Link: https://lore.kernel.org/r/20200204131857.7634-1-geert@linux-m68k.org
    Signed-off-by: Mark Brown

    Geert Uytterhoeven
     
  • If dyn_pcm_assign is set, different jack objects are being created
    for pcm and pins.

    If dyn_pcm_assign is set, generic_hdmi_build_jack() calls into
    add_hdmi_jack_kctl() to create and track separate jack object for
    pcm. Like sync_eld_via_acomp(), hdmi_present_sense_via_verbs() also
    need to report status change of the pcm jack.

    Rename pin_idx_to_jack() to pin_idx_to_pcm_jack(). Update
    hdmi_present_sense_via_verbs() to report plug state of pcm jack
    object. Unlike sync_eld_via_acomp(), for !acomp drivers the pcm
    jack's plug state must be consistent with plug state
    of pin's jack.

    Fixes: 5398e94fb753 ("ALSA: hda - Add DP-MST support for NVIDIA codecs")
    Reported-and-tested-by: Martin Regner
    Signed-off-by: Nikhil Mahale
    Reviewed-by: Kai Vehmanen
    Cc:
    Link: https://lore.kernel.org/r/20200204102746.1356-1-nmahale@nvidia.com
    Signed-off-by: Takashi Iwai

    Nikhil Mahale
     

04 Feb, 2020

3 commits

  • Looks like some platforms are not yet using COMMON CLK.

    PowerPC allyesconfig failed with below error in next

    ld: sound/soc/codecs/wcd934x.o:(.toc+0x0):
    undefined reference to `of_clk_src_simple_get'
    ld: sound/soc/codecs/wcd934x.o: in function `.wcd934x_codec_probe':
    wcd934x.c:(.text.wcd934x_codec_probe+0x3d4):
    undefined reference to `.__clk_get_name'
    ld: wcd934x.c:(.text.wcd934x_codec_probe+0x438):
    undefined reference to `.clk_hw_register'
    ld: wcd934x.c:(.text.wcd934x_codec_probe+0x474):
    undefined reference to `.of_clk_add_provider'

    Add the missing COMMON_CLK dependency to fix this errors.

    Reported-by: Stephen Rothwell
    Signed-off-by: Srinivas Kandagatla
    Link: https://lore.kernel.org/r/20200204111241.6927-1-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown

    Srinivas Kandagatla
     
  • 'PTR_ERR(p) == -E*' is a stronger condition than IS_ERR(p).
    Hence, IS_ERR(p) is unneeded.

    The semantic patch that generates this commit is as follows:

    //
    @@
    expression ptr;
    constant error_code;
    @@
    -IS_ERR(ptr) && (PTR_ERR(ptr) == - error_code)
    +PTR_ERR(ptr) == - error_code
    //

    Link: http://lkml.kernel.org/r/20200106045833.1725-1-masahiroy@kernel.org
    Signed-off-by: Masahiro Yamada
    Cc: Julia Lawall
    Acked-by: Stephen Boyd [drivers/clk/clk.c]
    Acked-by: Bartosz Golaszewski [GPIO]
    Acked-by: Wolfram Sang [drivers/i2c]
    Acked-by: Rafael J. Wysocki [acpi/scan.c]
    Acked-by: Rob Herring
    Cc: Eric Biggers
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • The most notable change is DEFINE_SHOW_ATTRIBUTE macro split in
    seq_file.h.

    Conversion rule is:

    llseek => proc_lseek
    unlocked_ioctl => proc_ioctl

    xxx => proc_xxx

    delete ".owner = THIS_MODULE" line

    [akpm@linux-foundation.org: fix drivers/isdn/capi/kcapi_proc.c]
    [sfr@canb.auug.org.au: fix kernel/sched/psi.c]
    Link: http://lkml.kernel.org/r/20200122180545.36222f50@canb.auug.org.au
    Link: http://lkml.kernel.org/r/20191225172546.GB13378@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

02 Feb, 2020

4 commits

  • Commit f3ee99087c8ca0ecfdd549ef5a94f557c42d5428 ("ASoC: tegra: Allow
    24bit and 32bit samples") added 24-bit and 32-bit support for to the
    Tegra30 I2S driver. However, there are two additional commits that are
    also needed to get 24-bit and 32-bit support to work correctly. These
    commits are not yet applied because there are still some review comments
    that need to be addressed. With only this change applied, 24-bit and
    32-bit support is advertised by the I2S driver, but it does not work and
    the audio is distorted. Therefore, revert this patch for now until the
    other changes are also ready.

    Furthermore, a clock issue with 24-bit support has been identified with
    this change and so if we revert this now, we can also fix that in the
    updated version.

    Reported-by: Dmitry Osipenko
    Signed-off-by: Jon Hunter
    Tested-by: Dmitry Osipenko
    Link: https://lore.kernel.org/r/20200131091901.13014-1-jonathanh@nvidia.com
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Jon Hunter
     
  • Mirror ID added for legacy HDaudio.

    Signed-off-by: Yong Zhi
    Signed-off-by: Divagar Mohandass
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200131204032.10213-1-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Yong Zhi
     
  • The firmware loading ioctl that is implemented for hdsp hwdep device
    takes the reference of the address pointer, hence the current code is
    rather confusing. Also, due to the recent change in uapi header,
    sparse also complains about the cast.

    This patch tries to improve the readability by converting the
    straightforward copy_from_user of the whole struct (which contains
    only the pointer).

    Fixes: d63e63d42107 ("ALSA: hdsp: Make uapi/hdsp.h compilable again")
    Link: https://lore.kernel.org/r/20200202090724.18232-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The recent sound/emu10k1.h uapi header change by the commit
    2e4688676392 ("ALSA: emu10k1: Make uapi/emu10k1.h compilable again")
    made sparse angry because of the inconsistency of __user annotation
    and the own ctl id struct that were changed in uapi header.

    This patch addresses those by adjusting the cast and annotations
    properly again.

    Fixes: 2e4688676392 ("ALSA: emu10k1: Make uapi/emu10k1.h compilable again")
    Link: https://lore.kernel.org/r/20200202090724.18232-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

01 Feb, 2020

4 commits

  • The loop termination for iterating over all formats should contain
    SNDRV_PCM_FORMAT_LAST, not less than it.

    Fixes: 9b151fec139d ("ALSA: dummy - Add debug proc file")
    Cc:
    Link: https://lore.kernel.org/r/20200201080530.22390-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The Scarlett gen2 mixer quirk code defines a few record types to
    communicate via USB hub, and those must be all little-endian.
    This patch changes the field types to LE to annotate endianess
    properly. It also fixes the incorrect usage of leXX_to_cpu() in a
    couple of places, which was caught by sparse after this change.

    Fixes: 9e4d5c1be21f ("ALSA: usb-audio: Scarlett Gen 2 mixer interface")
    Cc:
    Link: https://lore.kernel.org/r/20200201080530.22390-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • I overlooked that some fields are words and need the converts from
    LE in the recently added USB descriptor validation code.
    This patch fixes those with the proper macro usages.

    Fixes: 57f8770620e9 ("ALSA: usb-audio: More validations of descriptor units")
    Cc:
    Link: https://lore.kernel.org/r/20200201080530.22390-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add HD Audio Device PCI ID and codec vendor_id for the Intel JasperLake
    REV2/A0 silicon.

    Signed-off-by: Yong Zhi
    Signed-off-by: Pierre-Louis Bossart
    Cc:
    Link: https://lore.kernel.org/r/20200131204003.10153-1-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Takashi Iwai

    Yong Zhi
     

31 Jan, 2020

1 commit

  • Since we have a bitwise definition of snd_pcm_state_t and use it for
    certain struct fields, a few new (and years old) sparse warnings came
    up. This patch is an attempt to cover them.

    - The state fields in snd_pcm_mmap_status* and co are all defined as
    snd_pcm_state_t type now

    - The PCM action callbacks take snd_pcm_state_t argument as well;
    some actions taking special values got the explicit cast and
    comments

    - For the PCM action that doesn't need an extra argument receives
    ACTION_ARG_IGNORE instead of ambiguous 0

    While we're at it, the boolean argument is also properly changed to
    bool and true/false, as well as a slight refactoring of PCM pause
    helper function to make easier to read.

    No functional changes, just shutting up chatty sparse.

    Fixes: 46b770f720bd ("ALSA: uapi: Fix sparse warning")
    Reported-by: kbuild test robot
    Link: https://lore.kernel.org/r/20200131152214.11698-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

30 Jan, 2020

6 commits

  • ALSA PCM core recently introduced a new managed PCM buffer allocation
    mode that does allocate / free automatically at hw_params and
    hw_free. However, it overlooked the code path directly calling
    hw_free PCM ops at releasing the PCM substream, and it may result in a
    memory leak as spotted by syzkaller when no buffer preallocation is
    used (e.g. vmalloc buffer).

    This patch papers over it with a slight refactoring. The hw_free ops
    call and relevant tasks are unified in a new helper function, and call
    it from both places.

    Fixes: 0dba808eae26 ("ALSA: pcm: Introduce managed buffer allocation mode")
    Reported-by: syzbot+30edd0f34bfcdc548ac4@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/20200129195907.12197-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Fix the compile warnings by adding __maybe_unused to PM callbacks:
    sound/soc/codecs/rt715-sdw.c:566:12: warning: ‘rt715_dev_resume’ defined but not used [-Wunused-function]
    sound/soc/codecs/rt715-sdw.c:552:12: warning: ‘rt715_dev_suspend’ defined but not used [-Wunused-function]

    Fixes: d1ede0641b05 ("ASoC: rt715: add RT715 codec driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200127192831.14057-5-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix the compile warnings by adding __maybe_unused to PM callbacks:
    sound/soc/codecs/rt711-sdw.c:504:12: warning: ‘rt711_dev_resume’ defined but not used [-Wunused-function]
    sound/soc/codecs/rt711-sdw.c:490:12: warning: ‘rt711_dev_suspend’ defined but not used [-Wunused-function]

    Fixes: 320b8b0d13b8 ("ASoC: rt711: add rt711 codec driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200127192831.14057-4-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix the compile warnings by adding __maybe_unused to PM callbacks:
    sound/soc/codecs/rt700-sdw.c:503:12: warning: ‘rt700_dev_resume’ defined but not used [-Wunused-function]
    sound/soc/codecs/rt700-sdw.c:489:12: warning: ‘rt700_dev_suspend’ defined but not used [-Wunused-function]

    Fixes: 7d2a5f9ae41e ("ASoC: rt700: add rt700 codec driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200127192831.14057-3-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Fix the compile warnings by adding __maybe_unused to PM callbacks:
    sound/soc/codecs/rt1308-sdw.c:690:12: warning: ‘rt1308_dev_resume’ defined but not used [-Wunused-function]
    sound/soc/codecs/rt1308-sdw.c:676:12: warning: ‘rt1308_dev_suspend’ defined but not used [-Wunused-function]

    Fixes: a87a6653a28c ("ASoC: rt1308-sdw: add rt1308 SdW amplifier driver")
    Signed-off-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200127192831.14057-2-tiwai@suse.de
    Signed-off-by: Mark Brown

    Takashi Iwai
     
  • Stopping of one stream is killing the other stream when they
    are running simultaneously. This is because, IER register is
    cleared which disables I2S and overrides any other block enables.

    Clearing IER register only when all streams on a channel are disabled,
    fixes the issue.

    Signed-off-by: Akshu Agrawal
    Link: https://lore.kernel.org/r/20200128103029.128841-1-akshu.agrawal@amd.com
    Signed-off-by: Mark Brown

    Akshu Agrawal
     

29 Jan, 2020

2 commits

  • Pull sound updates from Takashi Iwai:
    "As the diffstat shows we've had again a lot of works done for this
    cycle: the majority of changes are the continued componentization and
    code refactoring in ASoC, the tree-wide PCM API updates and cleanups
    and SOF updates while a few ASoC driver updates are seen, too.

    Here we go, some highlights:

    Core:
    - Finally y2038 support landed to ALSA ABI; some ioctls have been
    extended and lots of tricks were applied
    - Applying the new managed PCM buffer API to all drivers; the API
    itself was already merged in 5.5
    - The already deprecated dimension support in ALSA control API is
    dropped completely now
    - Verification of ALSA control elements to catch API misuses

    ASoC:
    - Further code refactorings and moving things to the component level
    - Lots of updates and improvements on SOF / Intel drivers; now
    including common HDMI driver and SoundWire support
    - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm
    WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011,
    RT1015 and RT1308

    HD-audio:
    - Improved ring-buffer communications using waitqueue
    - Drop the superfluous buffer preallocation on x86

    Others:
    - Many code cleanups, mostly constifications over the whole tree
    - USB-audio: quirks for MOTU, Corsair Virtuoso, Line6 Helix
    - FireWire: code refactoring for oxfw and dice drivers"

    * tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (638 commits)
    ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82
    ALSA: hda: Add Clevo W65_67SB the power_save blacklist
    ASoC: soc-core: remove null_snd_soc_ops
    ASoC: soc-pcm: add soc_rtd_trigger()
    ASoC: soc-pcm: add soc_rtd_hw_free()
    ASoC: soc-pcm: add soc_rtd_hw_params()
    ASoC: soc-pcm: add soc_rtd_prepare()
    ASoC: soc-pcm: add soc_rtd_shutdown()
    ASoC: soc-pcm: add soc_rtd_startup()
    ASoC: rt1015: add rt1015 amplifier driver
    ASoC: madera: Correct some kernel doc
    ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order
    ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug
    ASoC: madera: Correct DMIC only input hook ups
    ALSA: cs46xx: fix spelling mistake "to" -> "too"
    ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
    ASoC: Add MediaTek MT6660 Speaker Amp Driver
    ASoC: dt-bindings: rt5645: add suppliers
    ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double()
    ASoC: dapm: add snd_soc_dapm_put_enum_double_locked
    ...

    Linus Torvalds
     
  • Pull header cleanup from Ingo Molnar:
    "This is a treewide cleanup, mostly (but not exclusively) with x86
    impact, which breaks implicit dependencies on the asm/realtime.h
    header and finally removes it from asm/acpi.h"

    * 'core-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ACPI/sleep: Move acpi_get_wakeup_address() into sleep.c, remove from
    ACPI/sleep: Convert acpi_wakeup_address into a function
    x86/ACPI/sleep: Remove an unnecessary include of asm/realmode.h
    ASoC: Intel: Skylake: Explicitly include linux/io.h for virt_to_phys()
    vmw_balloon: Explicitly include linux/io.h for virt_to_phys()
    virt: vbox: Explicitly include linux/io.h to pick up various defs
    efi/capsule-loader: Explicitly include linux/io.h for page_to_phys()
    perf/x86/intel: Explicitly include asm/io.h to use virt_to_phys()
    x86/kprobes: Explicitly include vmalloc.h for set_vm_flush_reset_perms()
    x86/ftrace: Explicitly include vmalloc.h for set_vm_flush_reset_perms()
    x86/boot: Explicitly include realmode.h to handle RM reservations
    x86/efi: Explicitly include realmode.h to handle RM trampoline quirk
    x86/platform/intel/quark: Explicitly include linux/io.h for virt_to_phys()
    x86/setup: Enhance the comments
    x86/setup: Clean up the header portion of setup.c

    Linus Torvalds
     

28 Jan, 2020

13 commits

  • Tegra HDA has FIFO size which can hold upto 10 audio frames to support
    DVFS. When HDA DMA RUN bit is set to 0 to stop the stream, the DMA RUN
    bit will be cleared to 0 only after transferring all the remaining audio
    frames queued up in the fifo. This is not in sync with spec which states
    the controller will stop transmitting(output) in the beginning of the
    next frame for the relevant stream.

    The above behavior with Tegra HDA was resulting in machine check error
    during the system suspend flow with active audio playback with below kernel
    error logs.
    [ 33.524583] mc-err: [mcerr] (hda) csr_hdar: EMEM address decode error
    [ 33.531088] mc-err: [mcerr] status = 0x20000015; addr = 0x00000000
    [ 33.537431] mc-err: [mcerr] secure: no, access-type: read, SMMU fault: none

    This was due to the fifo has more than one audio frame when the DMA
    RUN bit is set to 0 during system suspend flow and the timeout handling in
    snd_hdac_stream_sync() was not designed to handle this scenario. So the
    DMA will continue running even after timeout hit until all remaining
    audio frames in the fifo are transferred, but the suspend flow will try
    to reset the controller and turn off the hda clocks without the knowledge
    of the DMA is still running and could result in mc-err.

    The above issue can be resolved by doing stream reset with the help of
    snd_hdac_stream_reset() which would ensure the DMA RUN bit is cleared
    if the timeout was hit in snd_hdac_stream_sync().

    Signed-off-by: Mohan Kumar
    Link: https://lore.kernel.org/r/20200128051508.26064-1-mkumard@nvidia.com
    Signed-off-by: Takashi Iwai

    Mohan Kumar
     
  • Pull ioremap updates from Christoph Hellwig:
    "Remove the ioremap_nocache API (plus wrappers) that are always
    identical to ioremap"

    * tag 'ioremap-5.6' of git://git.infradead.org/users/hch/ioremap:
    remove ioremap_nocache and devm_ioremap_nocache
    MIPS: define ioremap_nocache to ioremap

    Linus Torvalds
     
  • Multiple Intel ASoC machine drivers repeat the same pattern in their
    .late_probe() methods: they first check whether the common HDMI codec
    driver is used, if not, they proceed by linking the legacy HDMI
    driver to each HDMI port. While doing that they use some
    inconsistent code:

    1. after the loop they check, whether the list contained at least one
    element and if not, they return an error. However, the earlier
    code to use the common HDMI driver uses the first element of the
    same list without checking. To fix this we move the check to the
    top of the function.

    2. some of those .late_probe() implementations execute code, only
    needed for the common HDMI driver, before checking, whether the
    driver is used. Move the code to after the check.

    3. Some of those functions also perform a redundant initialisation of
    the "err" variable.

    This patch fixes those issues.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-8-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Guennadi Liakhovetski
     
  • Fix the part id of rt715 (typo with zero in the wrong place)

    Signed-off-by: Bard Liao
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-7-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Bard Liao
     
  • jsl_desc missed default_fw_name, this will fail the probe in
    nocodec or generice HDA mode due the firmware path is intel/sof/(null)

    Signed-off-by: Pan Xiuli
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-6-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Pan Xiuli
     
  • Check if DMA pages were successfully allocated in initialization
    before calling free. For many types of memory (like sgbufs)
    the extra free is harmless, but not all backends track allocation
    state, so add an explicit check.

    Signed-off-by: Kai Vehmanen
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-5-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Kai Vehmanen
     
  • The initial intent of releasing resources in the .remove does not work
    well with HDaudio codecs. If the probe_continue() fails in a work
    queue, e.g. due to missing firmware or authentication issues, we don't
    release any resources, and as a result the kernel oopses during
    suspend operations.

    The suggested fix is to release all resources during errors in
    probe_continue(), and use fw_state to track resource allocation
    state, so that .remove does not attempt to release the same
    hardware resources twice. PM operations are also modified so that
    no action is done if DSP resources have been freed due to
    an error at probe.

    Reported-by: Takashi Iwai
    Co-developed-by: Kai Vehmanen
    Signed-off-by: Kai Vehmanen
    Bugzilla: http://bugzilla.suse.com/show_bug.cgi?id=1161246
    Signed-off-by: Pierre-Louis Bossart
    Reviewed-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20200124213625.30186-4-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Pierre-Louis Bossart
     
  • free_trace() is not called on probe errors, fix

    Reviewed-by: Kai Vehmanen
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Pierre-Louis Bossart
     
  • It is possible to create invalid topology that will cause a kernel
    Oops when trying to allocate buffers for a NULL substream.
    Specifically such an Oops was caused by a topology, where a DAI on a
    capture pipeline was referencing the PCM ID from a playback pipeline.
    Fix the Oops by explicitly checking for NULL.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200124213625.30186-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Guennadi Liakhovetski
     
  • If we play audio back to back, which kills one playback
    and immediately start another, we can hear clicks.
    This patch fixes the issue.

    Signed-off-by: Ravulapati Vishnu vardhan rao
    Link: https://lore.kernel.org/r/1580124397-19842-1-git-send-email-Vishnuvardhanrao.Ravulapati@amd.com
    Signed-off-by: Mark Brown

    Ravulapati Vishnu vardhan rao
     
  • Change HDA probe behaviour slightly so that i915 power is not
    turned off if i915 audio codecs are found in the initial probe done
    by SOF Intel driver, and power is kept on until HDA codec driver
    probe runs.

    This will reduce number of mode sets on platforms with low
    minimum CDCLK (like GLK) and brings the SOF probe sequence closer
    to legacy HDA driver in terms of i915 audio codec power management.

    BugLink: https://github.com/thesofproject/linux/issues/1642
    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200120160117.29130-3-kai.vehmanen@linux.intel.com
    Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kai Vehmanen
     
  • The current interface to control i915 display power is misleading.
    The hda_codec_i915_get() and hda_codec_i915_put() names suggest
    a refcounting based interface. This is confusing as no refcounting
    is done and the underlying HDAC library interface does not support
    refcounts eithers.

    Clarify the code by replacing the functions with a single
    hda_codec_i915_display_power() that is aligned with
    snd_hdac_display_power().

    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200120160117.29130-2-kai.vehmanen@linux.intel.com
    Acked-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Kai Vehmanen
     
  • …/sound into for-linus

    ASoC: Updates for v5.6

    A pretty big release this time around, a lot of new drivers and both
    Morimoto-san and Takashi were doing subsystem wide updates as well:

    - Further big refactorings from Morimoto-san simplifying the core
    interfaces and moving things to the component level.
    - Transition of drivers to managed buffer allocation and removal of
    redundant PCM ioctls.
    - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm
    WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011, RT1015
    and RT1308.

    Takashi Iwai