From patchwork Fri Apr 17 02:27:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hui Wang X-Patchwork-Id: 1271985 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 493Kl10zxYz9sT3; Fri, 17 Apr 2020 12:28:11 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1jPGjc-0002Go-7V; Fri, 17 Apr 2020 02:28:04 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jPGjY-0002GK-Iz for kernel-team@lists.ubuntu.com; Fri, 17 Apr 2020 02:28:00 +0000 Received: from [123.112.107.28] (helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jPGjX-0002XM-E8 for kernel-team@lists.ubuntu.com; Fri, 17 Apr 2020 02:28:00 +0000 From: Hui Wang To: kernel-team@lists.ubuntu.com Subject: [SRU][OEM-5.6][PATCH] Support Intel Soundwire in 5.6-OEM Kernel 20.04 Date: Fri, 17 Apr 2020 10:27:44 +0800 Message-Id: <20200417022744.7545-1-hui.wang@canonical.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1872583 [Impact] We have 2 Dell laptop modles which have soundwire codec on them, the audio can't work with the current kernel. [Fix] Intel github repo already supported the soundwire codec on those 2 machines, just backport the needed patches. [Test Case] Boot the kenrel on those 2 Dell soundwire machines, the audio could work. Boot the kernel on non-soundwire machines, the audio still work as before. [Regression Risk] Low, I have tested this patch Lenovo / Dell machines, they all worked well. The following changes since commit 14d69c935cb92b0b086e7870883ad10d1409ae9b: soundwire: intel: rename res field as link_res (2020-04-15 19:59:33 +0800) are available in the Git repository at: https://github.com/jason77-wang/linux-1.git:sdw-oem-pull for you to fetch changes up to 3211dae49bc421a8ae4d316e2def4e65590cef94: UBUNTU: [Config]: enable intel soundwire audio (2020-04-15 19:59:53 +0800) ---------------------------------------------------------------- Amadeusz Sławiński (1): ASoC: topology: Perform component check upfront Amery Song (2): ASoC: SOF: Intel: hda: remove unnecessary ROM IPC filter function ASoC: SOF: Intel: remove unnecessary waitq before loading firmware Bard Liao (27): soundwire: stream: only prepare stream when it is configured. soundwire: register master device driver soundwire: intel/cadence: merge Soundwire interrupt handlers/threads soundwire: intel: reinitialize IP+DSP in .prepare(), but only when resuming Soundwire: set is_slave only if the slave is attached soundwire: test is_slave before list_for_each_entry(slave, &bus->slaves, node) Soundwire: intel_init: add sdw adr info to sdw_intel_ctx soundwire: dynamic_allocation: set grp_ctrl_valid false Soundwire: generic_bandwidth_allocation: don't free params if it is null Soundwire: bus: return ret in error ALSA: HDA: intel-dsp-config: add DMI info for Dell laptop ASoC: SOF: Intel: hda: merge IPC, stream and SoundWire interrupt handlers ASoC: SOF: topology: connect dai widget to all cpu-dais ASoC: SOF: hda-dai: add stream capability ASoC: SOF: intel: hda-dai: Remove stream name from dai driver ASoC: SOF: topology: fix: handle DAI widget connections properly with multiple CPU DAI's ASoC: intel: sdw_rt711_rt1308_rt715: set different long name for mono/stereo rt1308 ASoC: intel: sdw_rt711_rt1308_rt715: add components string ASoC: intel: sdw_rt711_rt1308_rt715: reset amp_num before creating dai links ASoC: intel: sdw_rt700: add headset_init ASoC: intel: sof_sdw: remove SOF_SDW_NO_AGGREGATION from Dell laptops ASoC: SOF: align sof_ipc_dai_alh_params with FW ASoC: SOF: intel: set rate and channels params to ALH config ASoC: intel: sof_sdw: init all aggregated codecs ALSA: HDA: intel-dsp-config: add DMI info for Dell laptop ASoC: Return error if the function does not support multi-cpu ASoC: pcm: check if cpu-dai supports a given stream Bard liao (2): soundwire: intel_init: Replace list_for_each_entry by list_for_each soundwire: intel_init: check return value of md->driver->probe Cezary Rojewski (11): ASoC: SOF: Intel: Account for compress streams when servicing IRQs ASoC: SOF: Implement Probe IPC API ASoC: SOF: Generic probe compress operations ASoC: SOF: Intel: Expose SDnFMT helpers ASoC: SOF: Intel: Probe compress operations ASoC: SOF: Provide probe debugfs support ASoC: SOF: Intel: Add Probe compress CPU DAIs ASoC: SOF: Fix probe point getter ASoC: SOF: Intel: Fix stream cleanup on hw free ALSA: core: Implement compress page allocation and free routines ALSA: core: Expand DMA buffer information Curtis Malainey (1): ASoC: Intel: Make glk+rt5682 echo ref dynamic Daniel Baluta (2): ASoC: SOF: imx: Add i.MX8M HW support ASoC: SOF: Add i.MX8MP device descriptor Guennadi Liakhovetski (9): ASoC: codecs: hdac_hdmi: (cosmetic) remove redundant variable initialisations ASoC: SOF: (cosmetic) use for_each_pcm_streams() in sof_dai_load() ASoC: SOF: fix uninitialised "work" with VirtIO ASoC: Intel: (cosmetic) simplify structure member access ASoC: Intel: sdw_rt700: (cosmetic) simplify structure member access ASoC: Intel: sdw_rt711_i2s_rt1308: (cosmetic) simplify structure member access ASoC: Intel: sdw_rt711_rt1308_rt715: (cosmetic) simplify structure member access ASoC: (cosmetic) simplify dpcm_prune_paths() ASoC: export DPCM runtime update functions Hui Wang (1): UBUNTU: [Config]: enable intel soundwire audio Jaska Uimonen (1): ASoC: SOF: ipc: check ipc return value before data copy Jerome Brunet (4): ASoC: core: allow a dt node to provide several components ASoC: core: ensure component names are unique ASoC: fix card registration regression. ASoC: dpcm: remove confusing trace in dpcm_get_be() Kai Vehmanen (11): ASoC: SOF: Intel: hda: remove SND_SOC_SOF_HDA_COMMON_HDMI_CODEC ASoC: SOF: Intel: hda: allow operation without i915 gfx ASoC: SOF: Intel: hda: do not leave clock gating off upon error ASoC: SOF: Intel: hda: call codec wake at chip init ASoC: Intel: boards: drop reverse deps for SND_HDA_CODEC_HDMI ASoC: Intel: sof_pcm512x: drop reverse deps for SND_HDA_CODEC_HDMI ASoC: Intel: sdw_rt700: drop reverse deps for SND_HDA_CODEC_HDMI ASoC: intel: sdw_rt711_rt1308_rt715: drop reverse deps for SND_HDA_CODEC_HDMI ASoC: Intel: sof_pcm512x: make HDMI optional for all platforms ASoC: intel/skl/hda - add no-HDMI cases to generic HDA driver ASoC: soc-pcm: fix state tracking error in snd_soc_component_open/close() Karol Trzcinski (8): ASoC: SOF: Make sof_ipc_ext_data enum more rigid ASoC: SOF: Remove SOF_IPC_EXT_DMA_BUFFER ASoC: SOF: Mark get_ext* function ext_hdr arguments as const ASoC: SOF: Introduce offset in firmware data ASoC: SOF: Introduce extended manifest ASoC: SOF: ext_manifest: parse firmware version ASoC: SOF: ext_manifest: parse windows ASoC: SOF: ext_manifest: parse compiler version Keyon Jie (2): ASoC: SOF: pcm: skip DMA buffer pre-allocation ASoC: SOF: Intel: hda-loader: clear the IPC ack bit after FW_PURGE done Kuninori Morimoto (54): ASoC: soundwaire: qcom: use for_each_rtd_codec_dai() macro ASoC: qcom: apq8016_sbc: use for_each_rtd_codec_dai() macro ASoC: qcom: sdm845: use for_each_rtd_codec_dai() macro ASoC: qcom: use for_each_rtd_codecs/cpus_dai() macro ASoC: sof: sof-audio: use for_each_pcm_streams() macro ASoC: intel: cml_rt1011_rt5682: use for_each_rtd_codec_dai() macro ASoC: intel: kbl_da7219_max98927: use for_each_rtd_codec_dai() macro ASoC: Intel: use for_each_rtd_codecs/cpus_dai() macro ASoC: soc.h: add for_each_rtd_codecs/cpus_dai() macro ASoC: soc-dapm: add for_each_card_dapms() macro ASoC: soc-dapm: add for_each_card_widgets() macro ASoC: soc-core: Merge CPU/Codec DAIs ASoC: soc-pcm: call snd_soc_dai_startup()/shutdown() once ASoC: soc-pcm: add snd_soc_dai_get_pcm_stream() ALSA: pcm.h: add for_each_pcm_streams() ASoC: soc-pcm: add snd_soc_runtime_action() ASoC: soc-pcm: adjustment for DAI member 0 reset ASoC: soc-pcm: add for_each_dapm_widgets() macro ASoC: soc-pcm: don't use bit-OR'ed error ASoC: soc-pcm: call snd_soc_component_open/close() once ASoC: soc-pcm: move soc_pcm_close() next to soc_pcm_open() ASoC: soc-pcm: tidyup soc_pcm_open() order ASoC: soc-pcm: move dai_get_widget() ASoC: soc-pcm: use dai_get_widget() at dpcm_get_be() ASoC: soc-pcm: use dai_get_widget() at dpcm_end_walk_at_be() ASoC: soc-pcm: use dpcm_get_be() at dpcm_end_walk_at_be() ASoC: soc-pcm: remove soc_dpcm_be_digital_mute() ASoC: soc-pcm: remove snd_soc_dpcm_be_get/set_state() ASoC: soc-pcm: add snd_soc_dpcm_can_be() and remove duplicate code ASoC: soc-pcm: use goto and remove multi return ASoC: soc-pcm: merge playback/cature_active into stream_active ASoC: soc-core: use for_each_pcm_streams() macro ASoC: soc-pcm: use for_each_pcm_streams() macro ASoC: soc-generic-dmaengine-pcm: use for_each_pcm_streams() macro ASoC: soc-pcm: cleanup soc_pcm_apply_msb() ASoC: soc-pcm: add snd_soc_dai_get_widget() ASoC: soc-pcm: merge dpcm_run_new/old_update() into dpcm_fe_runtime_update() ASoC: soc-pcm: move dpcm_path_put() to soc-pcm.c ASoC: soc-pcm: move CONFIG_DEBUG_FS functions to top side ASoC: soc-pcm: add dpcm_create/remove_debugfs_state() ASoC: soc-dapm: don't use rtd->cpu_dai on for_each_rtd_cpu_dai() ASoC: soc-pcm: use defined stream ASoC: soc-pcm: remove duplicate be check from dpcm_add_paths() ASoC: soc-pcm: move dpcm_fe_dai_close() ASoC: soc-pcm: add dpcm_fe_dai_cleanup() ASoC: soc-pcm: use snd_soc_dai_get_pcm_stream() at dpcm_set_fe_runtime() ASoC: soc-pcm: tidyup dulicate handing at dpcm_fe_dai_startup() ASoC: soc-pcm: check DAI's activity more simply ASoC: soc-pcm: Do Digital Mute for both CPU/Codec in same timing. ASoC: soc: use for_each_rtd_codecs/cpus_dai() macro ASoC: soc-core: Merge for_each_rtd_cpu/codec_dais() ASoC: soc-dapm: Merge for_each_rtd_cpu/codec_dais() ASoC: soc-pcm: Merge for_each_rtd_cpu/codec_dais() ASoC: soc-core: Merge CPU/Codec for soc_dai_pcm_new() Naveen Manohar (2): ASoC: Intel: sof_sdw: Add Volteer support with RT5682 SNDW helper function ASoC: Intel: common: add match table for TGL RT5682 SoundWire driver Pan Xiuli (1): ASoC: SOF: Intel: ignore set power state for non-support platforms Paul Olaru (3): sound: soc: sof: Rename i.MX8 platform to i.MX8X sound: soc: sof: Add ops for i.MX8QM sound: soc: sof: imx: Add i.MX8QM device descriptor Pierre-Louis Bossart (137): soundwire: intel: free all resources on hw_free() soundwire: stream: update state machine and add state checks soundwire: bus: fix race condition with probe_complete signaling soundwire: bus: fix race condition with enumeration_complete signaling soundwire: bus: fix race condition with initialization_complete signaling soundwire: bus: add PM/no-PM versions of read/write functions soundwire: bus: write Slave Device Number without runtime_pm soundwire: bus: add helper to clear Slave status to UNATTACHED soundwire: bus: disable pm_runtime in sdw_slave_delete soundwire: bus: don't treat CMD_IGNORED as error on ClockStop soundwire: add support for sdw_slave_type soundwire: slave: move uevent handling to slave device level soundwire: add initial definitions for sdw_master_device soundwire: intel: remove platform devices and use 'Master Devices' instead soundwire: intel_init: add implementation of sdw_intel_enable_irq() soundwire: intel_init: use EXPORT_SYMBOL_NS soundwire: intel: use EXPORT_SYMBOL_NS soundwire: intel: add helpers for link power down and shim wake soundwire: intel: Add basic power management support soundwire: intel: add pm_runtime support soundwire: intel: reset pm_runtime status during system resume soundwire: intel: fix race condition on system resume soundwire: intel: call helper to reset Slave states on resume soundwire: intel: disable pm_runtime when removing a master soundwire: intel: pm_runtime idle scheduling soundwire: intel: add mutex to prevent concurrent access to SHIM registers soundwire: intel_init: add support for clock_stop quirks soundwire: intel: add CLK_STOP_TEARDOWN for pm_runtime suspend soundwire: intel: add CLK_STOP_NOT_ALLOWED support soundwire: intel_init: handle power rail dependencies for clock stop mode soundwire: intel: support clock_stop mode without quirks soundwire: cadence_master: fix usage of CMD_ACCEPT soundwire: cadence_master: enter clock stop if there are no Slaves present soundwire: cadence: disable exit_clock_stop when doing a bus_reset soundwire: intel: don't program Sync registers in clock stop mode soundwire: Add generic bandwidth allocation algorithm soundwire: intel: add interface to process wake events soundwire: add helper macros for devID fields soundwire: intel: follow documentation sequences for shim/IO controls soundwire: intel: disable shim wake on suspend soundwire: cadence_master: mask Slave interrupt before stopping clock soundwire: intel: use component suspend instead of dai suspend soundwire: revert to platform devices soundwire: stream: enable hw_sync as needed by hardware soundwire: stream: only change state if needed soundwire: stream: add helper to startup/shutdown streams soundwire: stream: do not update parameters during DISABLED-PREPARED transition soundwire: intel: fix memory leak with stream name soundwire: cadence: merge routines to clear/set bits soundwire: cadence: s/update_config/config_update soundwire: cadence: handle error cases with CONFIG_UPDATE soundwire: cadence: move clock/SSP related inits to dedicated function soundwire: cadence: make SSP interval programmable soundwire: cadence: reorder MCP_CONFIG settings soundwire: cadence: enable NORMAL operation in cdns_init() soundwire: cadence: remove PREQ_DELAY assignment soundwire: cadence: remove automatic command retries soundwire: cadence: remove reset support from clock_restart soundwire: cadence: commit changes in the exit_reset() sequence soundwire: cadence: multi-link support soundwire: intel: ignore software command retries soundwire: intel: reuse code for wait loops to set/clear bits soundwire: intel: add definitions for shim_mask soundwire: intel: follow the recommended hardware flow to set SHIM_SYNC soundwire: intel: introduce a helper to arm link synchronization soundwire: intel: introduce helper for link synchronization soundwire: intel: add multi-link support soundwire: intel: add missing support for all clock stop modes soundwire: intel: add multi-link hw_synchronization information soundwire: intel: add dynamic debug trace for clock-stop invalid configs soundwire: intel: disable pm_runtime before unregistering platform device soundwire: intel: pass link_mask information to each master soundwire: intel: don't manage link power individually soundwire: cadence: remove useless prototypes soundwire: intel: implement get_sdw_stream() operations soundwire: intel: remove stream allocation/free soundwire: cadence: allocate/free dma_data in set_sdw_stream soundwire: intel: don't free dma_data in DAI shutdown soundwire: intel: disable pm_runtime before unregistering master device soundwire: bus: align with upstream soundwire: cadence: fix clock_stop() return value soundwire: intel: remove unnecessary dev_err logs soundwire: cadence: remove dev_dgb log in sdw_cadence_is_clock_stop() soundwire: cadence: simplify code for sdw_cdns_clock_stop() soundwire: stream: move to for_each_rtd_dais ASoC: rt1308-sdw: add set_tdm_slot() support ASoC: rt1308-sdw: use slot and rx_mask to configure stream ASoC: SOF: Intel: hda-dsp: fix cross-compilation issue ASoC: SOF: Intel: hda-dsp: fix double-return ASoC: SOF: Intel: cnl: remove unused variable ASoC: SOF: Intel: add SoundWire configuration interface ASoC: SOF: Intel: hda: add SoundWire stream config/free callbacks ASoC: SOF: Intel: hda: initial SoundWire machine driver autodetect ASoC: SOF: Intel: hda: disable SoundWire interrupts on suspend ASoC: SOF: Intel: hda: specify behavior for clock stop ASoC: SOF: Intel: hda: add parameter to control SoundWire clock stop quirks ASoC: SOF: Intel: hda: import SOUNDWIRE_INIT namespace ASoC: SOF: Intel: add build support for SoundWire ASoC: SOF: Intel: hda-ctrl: add reset cycle before parsing capabilities ASoC: SOF: Intel: hda: use SDW macros to extract devID information ASoC: SOF: core: free trace on errors ASoC: SOF: core: release resources on errors in probe_continue ASoC: SOF: imx: fix compilation with allyesconfig ASoC: SOF: imx: fix undefined reference issue ASoC: SOF: Intel: hda: add indirection due to soc-acpi header change ASoC: Intel: Kconfig: filter out not-recommended features fixup! ASoC: SOF: Introduce extended manifest ASoC: SOF: Intel: add PCI ID for CometLake-S ASoC: Intel: BXT: switch pcm512x based boards to sof_pcm512x ASoC: Intel: CHT: add support for pcm512x boards ASoC: Intel: boards: add sdw_rt700 machine driver ASoC: Intel: boards: add sdw_rt711_rt1308_rt715 3-in-1 config support ASoC: Intel: boards: SoundWire rt711 + I2S RT1308 configuration ASoC: Intel: sof_pcm512x: add support for SOF platforms with pcm512x ASoC: Intel: sdw_rt700: remove support for HDAC_HDMI ASoC: Intel: sdw_rt711_rt1308_rt715: use correct Kconfig to disable HDMI support ASoC: Intel: remove sdw_rt711_i2s_rt1308 machine driver ASoC: Intel: sdw_rt711_rt1308_rt715: add I2C and RT1308 dependency ASoC: soc-acpi: expand description of _ADR-based devices ASoC: Intel: soc-acpi: fix ICL 3-in-1 default table ASoC: Intel: sdw_rt700: handle SoundWire stream creation in dailink ASoC: Intel: sdw_rt711_rt1308_rt715: handle SoundWire stream creation in dailink ASoC: Intel: sdw_711_rt1308_rt715: add indirection to access _ADR information ASoC: Intel: don't use GFP_ATOMIC for machine driver contexts ASoC: Intel: skl_nau88l25_ssm4567: disable route checks ASoC: Intel: sdw_rt711_1308_715: set tdm slots for amplifiers ASoC: Intel: transition to generic SoundWire machine driver ASoC: Intel: boards: sof_sdw: redefined MONO_SPK quirk ASoC: Intel: sof_sdw: only init DMICs once ASoC: Intel: sof_sdw: use PRODUCT_SKU instead of PRODUCT_NAME ASoC: Intel: sof_sdw: add SKU for validation device ASoC: Intel: soc-acpi: transition to generic SoundWire machine driver ASoC: Intel: soc-acpi: fix CML RVP ASoC: SOF: IPC: dai-intel: move ALH declarations in header file soundwire: bus: update multi-link definition with hw sync details ASoC: soc-core: disable route checks for legacy devices ASoC: soc-dai: add get_sdw_stream() callback Rander Wang (24): soundwire: intel: add prepare support in sdw dai driver soundwire: intel: add trigger support in sdw dai driver soundwire: intel: add sdw_stream_setup helper for .startup callback soundwire: stream: fix support for multiple Slaves on the same link soundwire: stream: don't program ports when a stream that has not been prepared soundwire: bus: fix io error when processing alert event soundwire: bus: add clock stop helpers soundwire: cadence_master: simplifiy cdns_init() soundwire: cadence_master: add clock_stop/restart routines soundwire: intel: add CLK_STOP_BUS_RESET support soundwire: intel: add wake interrupt support soundwire: cadence_master: add interface to check clock status soundwire: intel: Fix a io timeout issue if SDW_INTEL_CLK_STOP_BUS_RESET is set soundwire: intel: refine runtime pm for SDW_INTEL_CLK_STOP_BUS_RESET soundwire: intel: add delay between hardware states in transition soundwire: cadence_master: fix a io timeout issue in S3 test soundwire: intel: refine function for wakeen event processing soundwire: intel: use a single module soundwire: cadence: fix a io timeout issue in S3 test ASoC: SOF: Intel: hda: add WAKEEN interrupt support for SoundWire Asoc: SOF: Intel: hda: check SoundWire wakeen interrupt in irq thread ASoC: Intel: common: tgl: rename topology name in ACPI match table ASoC: intel: sdw_711_1038_715: prepare for rework ASoC: intel: rt711_rt1308_rt715: create dai link dynamically Ranjani Sridharan (18): ASoC: SOF: pm: Unify suspend/resume routines ASoC: SOF: Do not reset hw_params for streams that ignored suspend ASoC: SOF: Add system_suspend_target field to struct snd_sof_dev ASoC: SOF: pm: Introduce DSP power states ASoC: SOF: Move DSP power state transitions to platform-specific ops ASoC: SOF: audio: Add helper to check if only D0i3 streams are active ASoC: SOF: Intel: hda: Amend the DSP state transition diagram ASoC: SOF: Intel: hda: Allow trace DMA in S0 when DSP is in D0I3 for debug ASoC: SOF: Intel: hda: add debug log when the DSP power state changes ASoC: SOF: Intel: hda: amend return value when PM_GATE IPC fails ASoC: SOF: Intel: hda: resume DSP to D0I0 before taking the tx_mutex ASoC: SOF: Intel: hda: use set_power_state op ASoC: SOF: Intel: hda: Use set_power_state op ASoC: SOF: topology: fix: Replace old macro ASoC: SOF: Intel: hda: Improve DSP state logging ASoC: Intel: broadwell: Fix oops during module removal ASoC: Intel: sof_rt5682: fix: Replace old macro ASoC: Intel sdw_rt711_rt1308_rt715: Replace old macro Samuel Holland (2): ASoC: pcm: Export parameter intersection logic ALSA: pcm: Add a standalone version of snd_pcm_limit_hw_rates Sathyanarayana Nujella (2): ASoC: Intel: sof_rt5682: Add support for tgl-max98373-rt5682 ASoC: Intel: common: Add mach table for tgl-max98373-rt5682 Shreyas NC (4): ASoC: Add initial support for multiple CPU DAIs ASoC: Add multiple CPU DAI support for PCM ops ASoC: Add dapm_add_valid_dai_widget helper ASoC: Add multiple CPU DAI support in DAPM Srinivas Kandagatla (4): soundwire: stream: use sdw_write instead of update soundwire: stream: Add read_only_wordlength flag to port properties soundwire: qcom: add support for get_sdw_stream() ASoC: soc-dai: return proper error for get_sdw_stream() Stephan Gerhold (1): ASoC: soc-pcm: fix regression in soc_new_pcm() Takashi Iwai (2): ALSA: hda: Use scnprintf() for string truncation ASoC: pcm: Fix (again) possible buffer overflow in dpcm state sysfs output Tomasz Lauda (1): ASoC: SOF: add core id to sof_ipc_comp Tzung-Bi Shih (1): ASoC: dapm: select sleep_state when initializing PINCTRL widget Yong Zhi (3): ASoC: Intel: sof_da7219_max98373: Add support for max98360a speaker amp ASoC: Intel: sof_rt5682: Add rt1015 speaker amp support ASoC: intel: sof_da7219_max98373: Add speaker switch randerwang (14): soundwire: cadence: fix pop noise issue when start playback soundwire: optimize bandwidth for multiple Slaves on single link ASoC: SOF: Intel: set link params for machine driver ASoC: SOF: Intel: hda: ignore unused links in sdw machine select ASoC: Intel: sdw_rt711_rt1308_rt715: refine HDMI support ASoC: Intel: sdw_rt711_rt1308_rt715: fix DAI link ID for rt715 on Latitude ASoC: Intel: sdw_rt711_rt1308_rt715: add ACPI ID check to support I2S mode ASoC: Intel: sdw_711_rt1308_rt715: support multi-cpu DAI in init_dai_link ASoC: Intel: sdw_711_rt1308_rt715: check endpoint descriptor to get BE DAI number ASoC: Intel: sdw_711_rt1308_rt715: generate CPU & codec DAI base on endpoint descriptor ASoC: Intel: sdw_711_rt1308_rt715: fix DMIC DAI on DELL XPS ASoC: Intel: sdw_711_rt1308_rt715: refine format for all calls to init_dai_link ASoC: Intel: sdw_rt711_rt1308_rt715: Disable aggregated feature for validation ASoC: SOF: Intel: fix pop noise when stop playback on sdw platforms Documentation/driver-api/soundwire/stream.rst | 61 ++++-- debian.oem/config/annotations | 10 - debian.oem/config/config.common.ubuntu | 31 ++- drivers/soundwire/Kconfig | 5 + drivers/soundwire/Makefile | 10 +- drivers/soundwire/bus.c | 554 ++++++++++++++++++++++++++++++++++++++++++++----- drivers/soundwire/bus.h | 55 ++++- drivers/soundwire/bus_type.c | 142 ++++++++++++- drivers/soundwire/cadence_master.c | 355 +++++++++++++++++++++++++------ drivers/soundwire/cadence_master.h | 25 ++- drivers/soundwire/generic_bandwidth_allocation.c | 424 ++++++++++++++++++++++++++++++++++++++ drivers/soundwire/intel.c | 1220 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- drivers/soundwire/intel.h | 20 +- drivers/soundwire/intel_init.c | 387 ++++++++++++++++++++++++++++------ drivers/soundwire/master.c | 100 +++++++++ drivers/soundwire/qcom.c | 15 +- drivers/soundwire/slave.c | 11 +- drivers/soundwire/stream.c | 250 +++++++++++++++++++--- include/linux/soundwire/sdw.h | 136 ++++++++++++ include/linux/soundwire/sdw_intel.h | 2 + include/linux/soundwire/sdw_type.h | 36 +++- include/sound/compress_driver.h | 40 +++- include/sound/hdaudio.h | 2 + include/sound/pcm.h | 14 +- include/sound/soc-acpi.h | 39 +++- include/sound/soc-dai.h | 44 +++- include/sound/soc-dapm.h | 6 + include/sound/soc-dpcm.h | 20 +- include/sound/soc.h | 46 +++++ include/sound/sof.h | 3 + include/sound/sof/dai-intel.h | 20 +- include/sound/sof/header.h | 11 + include/sound/sof/info.h | 22 +- include/sound/sof/topology.h | 3 +- include/uapi/sound/sof/abi.h | 2 +- include/uapi/sound/sof/ext_manifest.h | 91 ++++++++ sound/core/compress_offload.c | 42 ++++ sound/core/pcm_misc.c | 18 +- sound/hda/hdac_device.c | 2 +- sound/hda/intel-dsp-config.c | 19 ++ sound/soc/codecs/cs4271.c | 4 +- sound/soc/codecs/hdac_hdmi.c | 6 +- sound/soc/codecs/rt1308-sdw.c | 38 +++- sound/soc/codecs/rt1308-sdw.h | 2 + sound/soc/dwc/dwc-i2s.c | 4 +- sound/soc/intel/Kconfig | 22 +- sound/soc/intel/boards/Kconfig | 62 +++++- sound/soc/intel/boards/Makefile | 12 +- sound/soc/intel/boards/bdw-rt5650.c | 2 +- sound/soc/intel/boards/bdw-rt5677.c | 2 +- sound/soc/intel/boards/broadwell.c | 19 +- sound/soc/intel/boards/bxt_da7219_max98357a.c | 2 +- sound/soc/intel/boards/bxt_rt298.c | 2 +- sound/soc/intel/boards/bytcht_da7213.c | 2 +- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +- sound/soc/intel/boards/cht_bsw_nau8824.c | 2 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +- sound/soc/intel/boards/cml_rt1011_rt5682.c | 7 +- sound/soc/intel/boards/glk_rt5682_max98357a.c | 3 +- sound/soc/intel/boards/haswell.c | 2 +- sound/soc/intel/boards/kbl_da7219_max98927.c | 8 +- sound/soc/intel/boards/kbl_rt5663_max98927.c | 4 +- sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 4 +- sound/soc/intel/boards/skl_hda_dsp_common.h | 4 + sound/soc/intel/boards/skl_hda_dsp_generic.c | 27 ++- sound/soc/intel/boards/skl_nau88l25_max98357a.c | 2 +- sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 3 +- sound/soc/intel/boards/sof_da7219_max98373.c | 75 ++++++- sound/soc/intel/boards/sof_maxim_common.c | 80 +++++++ sound/soc/intel/boards/sof_maxim_common.h | 24 +++ sound/soc/intel/boards/sof_pcm512x.c | 448 ++++++++++++++++++++++++++++++++++++++++ sound/soc/intel/boards/sof_rt5682.c | 131 +++++++++++- sound/soc/intel/boards/sof_sdw.c | 973 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/intel/boards/sof_sdw_common.h | 114 ++++++++++ sound/soc/intel/boards/sof_sdw_dmic.c | 42 ++++ sound/soc/intel/boards/sof_sdw_hdmi.c | 97 +++++++++ sound/soc/intel/boards/sof_sdw_rt1308.c | 151 ++++++++++++++ sound/soc/intel/boards/sof_sdw_rt5682.c | 126 +++++++++++ sound/soc/intel/boards/sof_sdw_rt700.c | 125 +++++++++++ sound/soc/intel/boards/sof_sdw_rt711.c | 156 ++++++++++++++ sound/soc/intel/boards/sof_sdw_rt715.c | 42 ++++ sound/soc/intel/common/soc-acpi-intel-bxt-match.c | 2 +- sound/soc/intel/common/soc-acpi-intel-cht-match.c | 7 + sound/soc/intel/common/soc-acpi-intel-cml-match.c | 111 ++++++++-- sound/soc/intel/common/soc-acpi-intel-icl-match.c | 103 ++++++--- sound/soc/intel/common/soc-acpi-intel-jsl-match.c | 34 ++- sound/soc/intel/common/soc-acpi-intel-tgl-match.c | 92 ++++++++- sound/soc/intel/skylake/skl-pcm.c | 10 +- sound/soc/qcom/apq8016_sbc.c | 7 +- sound/soc/qcom/sdm845.c | 20 +- sound/soc/soc-compress.c | 5 +- sound/soc/soc-core.c | 290 ++++++++++++++------------ sound/soc/soc-dai.c | 18 +- sound/soc/soc-dapm.c | 220 +++++++++++--------- sound/soc/soc-generic-dmaengine-pcm.c | 26 ++- sound/soc/soc-pcm.c | 1627 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------- sound/soc/soc-topology.c | 24 ++- sound/soc/sof/Kconfig | 9 + sound/soc/sof/Makefile | 1 + sound/soc/sof/compress.c | 146 +++++++++++++ sound/soc/sof/compress.h | 31 +++ sound/soc/sof/core.c | 10 +- sound/soc/sof/debug.c | 226 ++++++++++++++++++++ sound/soc/sof/imx/Kconfig | 17 +- sound/soc/sof/imx/Makefile | 2 + sound/soc/sof/imx/imx8.c | 59 +++++- sound/soc/sof/imx/imx8m.c | 279 +++++++++++++++++++++++++ sound/soc/sof/intel/Kconfig | 68 +++++- sound/soc/sof/intel/Makefile | 1 + sound/soc/sof/intel/apl.c | 9 + sound/soc/sof/intel/cnl.c | 51 ++++- sound/soc/sof/intel/hda-codec.c | 11 +- sound/soc/sof/intel/hda-compress.c | 114 ++++++++++ sound/soc/sof/intel/hda-ctrl.c | 40 +++- sound/soc/sof/intel/hda-dai.c | 124 +++++++++++ sound/soc/sof/intel/hda-dsp.c | 328 +++++++++++++++++++++++++++-- sound/soc/sof/intel/hda-ipc.c | 24 +-- sound/soc/sof/intel/hda-loader.c | 49 ++++- sound/soc/sof/intel/hda-pcm.c | 8 +- sound/soc/sof/intel/hda-stream.c | 27 ++- sound/soc/sof/intel/hda.c | 436 +++++++++++++++++++++++++++++++++++++-- sound/soc/sof/intel/hda.h | 120 ++++++++++- sound/soc/sof/ipc.c | 41 +++- sound/soc/sof/loader.c | 232 +++++++++++++++++++-- sound/soc/sof/ops.h | 59 +++++- sound/soc/sof/pcm.c | 30 ++- sound/soc/sof/pm.c | 176 ++++++---------- sound/soc/sof/probe.c | 290 ++++++++++++++++++++++++++ sound/soc/sof/probe.h | 85 ++++++++ sound/soc/sof/sof-audio.c | 59 ++++-- sound/soc/sof/sof-audio.h | 6 +- sound/soc/sof/sof-of-dev.c | 24 +++ sound/soc/sof/sof-pci-dev.c | 4 + sound/soc/sof/sof-priv.h | 71 +++++-- sound/soc/sof/topology.c | 53 ++++- 135 files changed, 10994 insertions(+), 2048 deletions(-) create mode 100644 drivers/soundwire/generic_bandwidth_allocation.c create mode 100644 drivers/soundwire/master.c create mode 100644 include/uapi/sound/sof/ext_manifest.h create mode 100644 sound/soc/intel/boards/sof_maxim_common.c create mode 100644 sound/soc/intel/boards/sof_maxim_common.h create mode 100644 sound/soc/intel/boards/sof_pcm512x.c create mode 100644 sound/soc/intel/boards/sof_sdw.c create mode 100644 sound/soc/intel/boards/sof_sdw_common.h create mode 100644 sound/soc/intel/boards/sof_sdw_dmic.c create mode 100644 sound/soc/intel/boards/sof_sdw_hdmi.c create mode 100644 sound/soc/intel/boards/sof_sdw_rt1308.c create mode 100644 sound/soc/intel/boards/sof_sdw_rt5682.c create mode 100644 sound/soc/intel/boards/sof_sdw_rt700.c create mode 100644 sound/soc/intel/boards/sof_sdw_rt711.c create mode 100644 sound/soc/intel/boards/sof_sdw_rt715.c create mode 100644 sound/soc/sof/compress.c create mode 100644 sound/soc/sof/compress.h create mode 100644 sound/soc/sof/imx/imx8m.c create mode 100644 sound/soc/sof/intel/hda-compress.c create mode 100644 sound/soc/sof/probe.c create mode 100644 sound/soc/sof/probe.h