summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2020-03-20ASoC: soc-core: Merge CPU/Codec DAIsKuninori Morimoto
ALSA SoC is currently categorizing CPU/Codec DAIs, and it works well. But modern devices require more complex connections, for example Codec to Codec, etc, and future devices will enable to more complex connections. Because of these background, CPU/Codec DAIs categorizing is no longer good much to modern device. Currently, rtd has both CPU/Codec DAIs pointer. rtd->cpu_dais = [][][][][][][][][] rtd->codec_dais = [][][][][][][][][] This patch merges these into DAIs pointer. rtd->dais = [][][][][][][][][][][][][][][][][][] ^cpu_dais ^codec_dais |--- num_cpus ---|--- num_codecs --| Then, we can merge for_each_rtd_cpu/codec_dais() from this patch. - for_each_rtd_cpu_dais() { - ... - } - for_each_rtd_codec_dais() { - ... - } + for_each_rtd_dais() { + ... + } Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/87wo7kolfa.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-18Merge series "ASoC: stm32: manage rebind issue" from Olivier Moysan ↵Mark Brown
<olivier.moysan@st.com>: This patchset corrects a rebind issue on STM32 SPDIFRX and I2S drivers. The same correction has already been applied for SAI driver: 0d6defc7e0e4 ("ASoC: stm32: sai: manage rebind issue") The commit e894efef9ac7 ("ASoC: core: add support to card rebind") allows to rebind the sound card after a rebind of one of its component. With this commit, the sound card is actually rebound, but may be no more functional. The following problems have been seen on STM32 drivers. 1) DMA channel is not requested: With the sound card rebind the simplified call sequence is: probe snd_soc_register_component snd_soc_try_rebind_card snd_soc_instantiate_card devm_snd_dmaengine_pcm_register The problem occurs because the pcm must be registered, before snd_soc_instantiate_card() is called. Modify the driver, to change the call sequence as follows: probe devm_snd_dmaengine_pcm_register snd_soc_register_component snd_soc_try_rebind_card 2) DMA channel is not released: dma_release_channel() is not called when devm_dmaengine_pcm_release() is executed. This occurs because SND_DMAENGINE_PCM_DRV_NAME component, has already been released through devm_component_release(). devm_dmaengine_pcm_release() should be called before devm_component_release() to avoid this problem. Call snd_dmaengine_pcm_unregister() and snd_soc_unregister_component() explicitly from the driver, to have the right sequence. Olivier Moysan (3): ASoC: stm32: spdifrx: fix regmap status check ASoC: stm32: spdifrx: manage rebind issue ASoC: stm32: i2s: manage rebind issue sound/soc/stm/stm32_i2s.c | 40 ++++++++++++++++------ sound/soc/stm/stm32_spdifrx.c | 64 +++++++++++++++++++---------------- 2 files changed, 63 insertions(+), 41 deletions(-) -- 2.17.1
2020-03-18Merge series "ASoC: sdm845: fix soundwire stream handling" from Srinivas ↵Mark Brown
Kandagatla <srinivas.kandagatla@linaro.org>: Recent addition of SoundWire stream state-machine checks in linux-next have shown an existing issue with handling soundwire streams in codec drivers. In general soundwire stream prepare/enable/disable can be called from either codec/machine/controller driver. However calling it in codec driver means that if multiple instances(Left/Right speakers) of the same codec is connected to the same stream then it will endup calling stream prepare/enable/disable more than once. This will mess up the stream state-machine checks in the soundwire core. Moving this stream handling to machine driver would fix this issue and also allow board/platform specfic power sequencing. Changes since v1: - removed false error check while setting sruntime. Srinivas Kandagatla (2): ASoC: qcom: sdm845: handle soundwire stream ASoC: codecs: wsa881x: remove soundwire stream handling sound/soc/codecs/wsa881x.c | 44 +------------------------ sound/soc/qcom/Kconfig | 2 +- sound/soc/qcom/sdm845.c | 67 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 44 deletions(-) -- 2.21.0
2020-03-18ASoC: rt5682: remove noisy debug messagesShuming Fan
Some debug messages are too noisy. This patch removes it. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://lore.kernel.org/r/20200317073321.12660-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-18ASoC: qcom: sdm845: handle soundwire streamSrinivas Kandagatla
In existing setup WSA881x codec handles soundwire stream, however DB845c and other machines based on SDM845c have 2 instances for WSA881x codec. This will force soundwire stream to be prepared/enabled twice or multiple times. Handling SoundWire Stream in machine driver would fix this issue. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200317151233.8763-2-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-18ASoC: codecs: wsa881x: remove soundwire stream handlingSrinivas Kandagatla
There could be multiple instances of this codec on any platform, so handling stream directly in this codec driver can lead to multiple calls to prepare/enable/disable on the same SoundWire stream. Move this stream handling to machine driver to fix this issue. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20200317151233.8763-3-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-18ASoC: stm32: i2s: manage rebind issueOlivier Moysan
The commit e894efef9ac7 ("ASoC: core: add support to card rebind") allows to rebind the sound card after a rebind of one of its component. With this commit, the sound card is actually rebound, but may be no more functional. Corrections: - Call snd_dmaengine_pcm_register() before snd_soc_register_component(). - Call snd_dmaengine_pcm_unregister() and snd_soc_unregister_component() explicitly from I2S driver. Signed-off-by: Olivier Moysan <olivier.moysan@st.com> Link: https://lore.kernel.org/r/20200318144125.9163-4-olivier.moysan@st.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-18ASoC: stm32: spdifrx: manage rebind issueOlivier Moysan
The commit e894efef9ac7 ("ASoC: core: add support to card rebind") allows to rebind the sound card after a rebind of one of its component. With this commit, the sound card is actually rebound, but may be no more functional. Corrections: - Call snd_dmaengine_pcm_register() before snd_soc_register_component(). - Call snd_dmaengine_pcm_unregister() and snd_soc_unregister_component() explicitly from SPDFIRX driver. Signed-off-by: Olivier Moysan <olivier.moysan@st.com> Link: https://lore.kernel.org/r/20200318144125.9163-3-olivier.moysan@st.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-16ASoC: qcom: q6asm-dai: add support for ALAC and APE decodersVinod Koul
Qualcomm DSPs also supports the ALAC and APE decoders, so add support for these and convert the snd_codec_params to qdsp format. Signed-off-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200316055221.1944464-9-vkoul@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-16ASoC: qcom: q6asm: add support for alac and ape configsVinod Koul
Qualcomm DSPs expect ALAC and APE configs to be send for decoders, so add the API to program the respective config to the DSP. Signed-off-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200316055221.1944464-8-vkoul@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-16ASoC: qcom: q6asm-dai: add support to wma decoderVinod Koul
Qualcomm DSPs also supports the wma decoder, so add support for wma decoder and convert the snd_codec_params to qdsp format. Signed-off-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200316055221.1944464-6-vkoul@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-16ASoC: qcom: q6asm: add support to wma configVinod Koul
Qualcomm DSPs expect wma v9 and wma v10 configs to be set for wma decoders, so add the API to program the respective wma config to the DSP Signed-off-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200316055221.1944464-5-vkoul@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-16ASoC: qcom: q6asm: pass codec profile to q6asm_open_writeVinod Koul
Codec profile is required to be passed for WMA codecs so that we know the codec profile present and tell DSP accordingly, so update this API to pass the codec profile as argument Signed-off-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200316055221.1944464-4-vkoul@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13Merge branch 'for-5.6' of ↵Mark Brown
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.7
2020-03-13ASoC: max98357a: Add ACPI HID MAX98360AYong Zhi
Maxim MAX98360A audio amplifier is functionally identical to MAX98357A, add ACPI ID "MAX98360A" for driver reuse. Signed-off-by: Yong Zhi <yong.zhi@intel.com> Link: https://lore.kernel.org/r/1584114926-29287-1-git-send-email-yong.zhi@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13Merge series "ASoC: SOF: multi-cpu dais, IPC and Intel improvements for 5.7" ↵Mark Brown
from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: Corrections for compatibility with the multi-cpu dai check for min-channels, IPC simplifications, and removal of unnecessary boot-related code for Intel platforms. Amery Song (2): ASoC: SOF: Intel: hda: remove unnecessary ROM IPC filter function ASoC: SOF: Intel: remove unnecessary waitq before loading firmware Bard Liao (2): ASoC: SOF: Intel: hda-dai: add stream capability ASoC: SOF: topology: connect dai widget to all cpu-dais Karol Trzcinski (2): ASoC: SOF: Make sof_ipc_ext_data enum more rigid ASoC: SOF: Remove SOF_IPC_EXT_DMA_BUFFER include/sound/sof/info.h | 22 +------- sound/soc/sof/intel/cnl.c | 5 -- sound/soc/sof/intel/hda-dai.c | 96 ++++++++++++++++++++++++++++++++ sound/soc/sof/intel/hda-ipc.c | 20 +------ sound/soc/sof/intel/hda-loader.c | 3 - sound/soc/sof/intel/hda.c | 3 - sound/soc/sof/intel/hda.h | 1 - sound/soc/sof/loader.c | 6 -- sound/soc/sof/sof-priv.h | 5 -- sound/soc/sof/topology.c | 8 ++- 10 files changed, 108 insertions(+), 61 deletions(-) base-commit: 101247a3b86e1cc0e382b7e887a56176290fc957 -- 2.20.1
2020-03-13Merge series "ASoC: Intel: machine driver updates for 5.7" from Pierre-Louis ↵Mark Brown
Bossart <pierre-louis.bossart@linux.intel.com>: Fix HDaudio/HDMI Kconfig dependencies, cleanup code, and add support for 2 new configs (DA7219+Maxim 98360A and RT5692+RT1015) Note that the last patch is the first case where we added the Reviewed-by tags automagically from the list of GitHub approvers. Feedback/comments welcome on the format, and thanks to Ranjani for the nice script! Changes since v1: Change base to broonie/for-5.7 Rebase and fix for_each_codec_dais() macro in Patch 9. Add new patch to remove GFP_ATOMIC Guennadi Liakhovetski (3): ASoC: codecs: hdac_hdmi: (cosmetic) remove redundant variable initialisations ASoC: Intel: skylake: (cosmetic) remove redundant variable initialisations ASoC: Intel: (cosmetic) simplify structure member access Kai Vehmanen (4): 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: sof_pcm512x: make HDMI optional for all platforms ASoC: SOF: Intel: hda: remove SND_SOC_SOF_HDA_COMMON_HDMI_CODEC Pierre-Louis Bossart (1): ASoC: Intel: don't use GFP_ATOMIC for machine driver contexts Yong Zhi (2): ASoC: Intel: sof_da7219_max98373: Add support for max98360a speaker amp ASoC: Intel: sof_rt5682: Add rt1015 speaker amp support sound/soc/codecs/hdac_hdmi.c | 6 +- sound/soc/intel/boards/Kconfig | 20 ++-- sound/soc/intel/boards/bdw-rt5650.c | 2 +- sound/soc/intel/boards/bdw-rt5677.c | 2 +- sound/soc/intel/boards/broadwell.c | 2 +- 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 | 4 +- sound/soc/intel/boards/glk_rt5682_max98357a.c | 2 +- sound/soc/intel/boards/haswell.c | 2 +- sound/soc/intel/boards/kbl_rt5663_max98927.c | 2 +- .../intel/boards/kbl_rt5663_rt5514_max98927.c | 2 +- sound/soc/intel/boards/skl_hda_dsp_generic.c | 2 +- .../soc/intel/boards/skl_nau88l25_max98357a.c | 2 +- sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 2 +- sound/soc/intel/boards/sof_da7219_max98373.c | 78 +++++++++++-- sound/soc/intel/boards/sof_pcm512x.c | 38 ++++-- sound/soc/intel/boards/sof_rt5682.c | 110 +++++++++++++++++- .../intel/common/soc-acpi-intel-jsl-match.c | 34 +++++- sound/soc/intel/skylake/skl.c | 4 +- sound/soc/sof/intel/Kconfig | 11 -- sound/soc/sof/intel/hda.c | 3 +- 26 files changed, 269 insertions(+), 71 deletions(-) base-commit: 101247a3b86e1cc0e382b7e887a56176290fc957 -- 2.20.1
2020-03-13Merge series "ASoC: brcm: add dsl and pon chip audio driver" from Kevin Li ↵Mark Brown
<kevin-ke.li@broadcom.com>: Changes in v2: * Make the comment a C++ one for license header * Remove all empty functions * Change all variable to use kernel coding style * Comment chip TX RX block independently generate I2S bus signals Kevin Li (2): ASoC: brcm: Add DSL/PON SoC audio driver ASoC: brcm: DSL/PON SoC device tree bindings of audio driver .../bindings/sound/brcm,bcm63xx-audio.txt | 29 ++ sound/soc/bcm/Kconfig | 9 + sound/soc/bcm/Makefile | 4 + sound/soc/bcm/bcm63xx-i2s-whistler.c | 317 ++++++++++++ sound/soc/bcm/bcm63xx-i2s.h | 90 ++++ sound/soc/bcm/bcm63xx-pcm-whistler.c | 485 ++++++++++++++++++ 6 files changed, 934 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/brcm,bcm63xx-audio.txt create mode 100644 sound/soc/bcm/bcm63xx-i2s-whistler.c create mode 100644 sound/soc/bcm/bcm63xx-i2s.h create mode 100644 sound/soc/bcm/bcm63xx-pcm-whistler.c -- 2.25.1
2020-03-13ASoC: rt5682: Fine tune the HP performance in soundwire modeOder Chiou
The setting is sync with I2C/I2S mode. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Link: https://lore.kernel.org/r/20200313023850.28875-1-oder_chiou@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: brcm: Add DSL/PON SoC audio driverKevin Li
This patch adds Broadcom DSL/PON SoC audio driver with Whistler I2S block. The SoC supported by this patch are BCM63158B0,BCM63178 and BCM47622/6755 Signed-off-by: Kevin Li <kevin-ke.li@broadcom.com> Link: https://lore.kernel.org/r/20200312223242.2843-2-kevin-ke.li@broadcom.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: don't use GFP_ATOMIC for machine driver contextsPierre-Louis Bossart
We've removed GFP_ATOMIC in all machine drivers and somehow this keeps coming back due to copy-paste. Move to GFP_KERNEL. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-11-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: sof_rt5682: Add rt1015 speaker amp supportYong Zhi
This patch adds jsl_rt5682_rt1015 which supports the RT5682 headset codec and RT1015 speaker amplifier combination on JasperLake platform. Signed-off-by: Yong Zhi <yong.zhi@intel.com> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-10-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: sof_da7219_max98373: Add support for max98360a speaker ampYong Zhi
Add Maxim MAX98360A plug-and-play Class-D amplifier support on SSP1, new card ID is sofda7219max98360a, name sof-da7219max98360a. Signed-off-by: Yong Zhi <yong.zhi@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-9-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: (cosmetic) simplify structure member accessGuennadi Liakhovetski
Fix a clumsy structure member dereference in all machine drivers. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: skylake: (cosmetic) remove redundant variable initialisationsGuennadi Liakhovetski
Variables, used as loop iterators, don't need to be initialised. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: codecs: hdac_hdmi: (cosmetic) remove redundant variable initialisationsGuennadi Liakhovetski
Remove several redundant variable initialisations. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: Intel: hda: remove SND_SOC_SOF_HDA_COMMON_HDMI_CODECKai Vehmanen
To help user-space with HDMI codec driver transition, both a kernel module parameter and a kernel option were initially provided to configure default behaviour of SOF on Intel hardware with commit 139c7febad1a ("ASoC: SOF: Intel: add support for snd-hda-codec-hdmi"). As hdac-hdmi is already now lagging in features compared to snd-hda-codec-hdmi, move ahead with the transition and remove the build option to select between the two, and instead default to snd-hda-codec-hdmi if it is enabled in kernel build. The old behaviour of using hdac-hdmi driver can still be forced via the kernel module parameter. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: sof_pcm512x: make HDMI optional for all platformsKai Vehmanen
Make HDMI optional for APL and later platforms. If no HDMI codec is found on the HDA bus, the graphics side driver is missing or correct codec driver is not part of kernel build, codec_mask reflects this and HDMI is disabled. The DSP topology will still have the links for HDMI, so connect these to dummy codec to avoid failures in topology loading. This change also fixes a kernel oops that was triggered if sof_pcm512x was used with SOF configured to use hdac-hdmi (can be done via "use_common_hdmi=0" or by selecting CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=n). This is not a supported configuration. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: sof_pcm512x: drop reverse deps for SND_HDA_CODEC_HDMIKai Vehmanen
Having a reverse dependency to a config that has its own additional dependencies, is generally not recommended. And this applies to select statements for SND_HDA_CODEC_HDMI, e.g. the case where SND_HDA and SND_SOC_SOF_HDA are built as modules, but the machine driver is built-in, leading to compile errors (reported as i386-randconfig-e003-20200206). Give up on trying to define different dependencies based on SOF/SST selection, and simply add a "depends on" for SND_HDA_CODEC_HDMI. This fixes the issue with randconfigs. Only downside is that SND_HDA_CODEC_HDMI may be built unnecessarily in some cases, but this seems like the lesser evil. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: Intel: boards: drop reverse deps for SND_HDA_CODEC_HDMIKai Vehmanen
Having a reverse dependency to a config that has its own additional dependencies, is generally not recommended. And this applies to select statements for SND_HDA_CODEC_HDMI, e.g. the case where SND_HDA and SND_SOC_SOF_HDA are built as modules, but the machine driver is built-in, leading to compile errors (reported as i386-randconfig-e003-20200206). Give up on trying to define different dependencies based on SOF/SST selection, and simply add a "depends on" for SND_HDA_CODEC_HDMI. This fixes the issue with randconfigs. Only downside is that SND_HDA_CODEC_HDMI may be built unnecessarily in some cases, but this seems like the lesser evil. Fixes: aa2b4a5 ('ASoC: Intel: boards: fix incorrect HDMI Kconfig dependency') Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312194859.4051-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: topology: connect dai widget to all cpu-daisBard Liao
Extend code from single cpu-dai to multi-dai Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312200622.24477-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: Intel: remove unnecessary waitq before loading firmwareAmery Song
The HDA_DSP_IPC_PURGE_FW IPC from ROM is already handled in cl_dsp_init(), and it will never be received in the IRQ thread, so the wait condition on this IPC will never be satisfied. The wait before loading firmware is redundant and can be removed safely. Signed-off-by: Amery Song <chao.song@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Keyon Jie <yang.jie@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Pierre Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200312200622.24477-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: Intel: hda: remove unnecessary ROM IPC filter functionAmery Song
The HDA_DSP_IPC_PURGE_FW IPC from ROM is already handled in cl_dsp_init(), and as IPC IRQ is disabled at this stage, this IPC will be never received in the IRQ thread. The function hda_dsp_ipc_is_sof for filtering the ROM IPC can be removed safely. Signed-off-by: Amery Song <chao.song@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Keyon <yang.jie@intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200312200622.24477-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: Remove SOF_IPC_EXT_DMA_BUFFERKarol Trzcinski
This enum code, and what's more important, related structures is unused in whole source code, so it shouldn't be kept. Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312200622.24477-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: SOF: Intel: hda-dai: add stream capabilityBard Liao
snd_soc_dai_stream_valid() will check if the stream is valid by testing stream->channels_min. So we do need the information in dai driver. The stream name is not added since we want to sure playback_widget/capture_widget will be created by topology. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200312200622.24477-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: rt5682: Revise the DAC1 volume settingOder Chiou
The max volume of the DAC1 Playback Volume is 0dB. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Link: https://lore.kernel.org/r/20200313023850.28875-2-oder_chiou@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-13ASoC: wm_adsp: Use scnprintf() for the limited buffer outputTakashi Iwai
snprintf() is a hard-to-use function, it's especially difficult to use it for concatenating substrings in a buffer with a limited size. Since snprintf() returns the would-be-output size, not the actual size, the subsequent use of snprintf() may point to the incorrect position. Use scnprintf() instead for fixing such potential errors. Signed-off-by: Takashi Iwai <tiwai@suse.de> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200313130334.9028-1-tiwai@suse.de Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12ASoC: topology: Perform component check upfrontAmadeusz Sławiński
Function soc_tplg_dbytes_create(), calls soc_tplg_init_kcontrol() to perform additional driver specific initialization. While soc_tplg_init_kcontrol() ensures that component is valid before invoking ops->control_load, there is no such check at the end of soc_tplg_dbytes_create() where list_add() is used. Also in quite a few places, there is reference of tplg->comp->dapm or tplg->comp->card, without any checks for tplg->comp. In consequence of the above this may lead to referencing NULL pointer. This allows for removal of now unnecessary checks. Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20200312122239.14489-1-amadeuszx.slawinski@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12ASoC: export DPCM runtime update functionsGuennadi Liakhovetski
This makes DPCM runtime update functions available for external calling. As an example, virtualised ASoC component drivers may need to call these when managing shared DAPM routes that are used by more than one driver (i.e. when host driver and guest drivers have a DAPM path from guest PCM to host DAI where some parts are owned by host driver and others by guest driver). Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200312095214.15126-3-guennadi.liakhovetski@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12ASoC: (cosmetic) simplify dpcm_prune_paths()Guennadi Liakhovetski
Currently dpcm_prune_paths() has up to 4 nested condition and loop levels, which forces the code to use flags for flow control. Extracting widget status verification code from dpcm_prune_paths() into a separate function simplifies the code. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200312095214.15126-2-guennadi.liakhovetski@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12Merge series "ASoC: qdsp6: fix default FE dais and routings." from Srinivas ↵Mark Brown
Kandagatla <srinivas.kandagatla@linaro.org>: QDSP6 Frontend dais can be configured to work in rx or tx or both rx/tx mode, however the default routing do not honour this DT configuration making sound card fail to probe. FE dais are also not fully honouring device tree configuration. Fix both of them. Originally issue was reported by Vinod Koul Srinivas Kandagatla (2): ASoC: qdsp6: q6asm-dai: only enable dais from device tree ASoC: qdsp6: q6routing: remove default routing sound/soc/qcom/qdsp6/q6asm-dai.c | 30 +++++++++++++++++++++++------- sound/soc/qcom/qdsp6/q6routing.c | 19 ------------------- 2 files changed, 23 insertions(+), 26 deletions(-) -- 2.21.0
2020-03-12ASoC: SOF: Intel: Fix stream cleanup on hw freeCezary Rojewski
Field "substream" gets assigned during stream setup in hda_dsp_pcm_hw_params() but it is never cleared afterwards during cleanup procedure. Now, any non-pcm operation e.g.: compress can mistakenly make use of that pointer as it's bypassing all "if (s->substream)" checks. Nulling the pointer during hw_free operation ensures no wild pointers are left behind. Fixes: cdae3b9a47aa ("ASoC: SOF: Intel: Add Intel specific HDA PCM operations") Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200312120058.15057-1-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12ASoC: qdsp6: q6routing: remove default routingSrinivas Kandagatla
Frontend dais can be configured to rx or tx or both, however having default routes without considering this configuration can lead to failures during card probe as below for compress rx only case. These routing have to come from sound card routing table in device tree. "routing: ASoC: Failed to add route MM_UL1 -> direct -> MultiMedia1 Capture msm-snd-sdm845 sound: ASoC: failed to instantiate card -19 " Reported-by: Vinod Koul <vinod.koul@linaro.org> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20200311180422.28363-3-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-12ASoC: qdsp6: q6asm-dai: only enable dais from device treeSrinivas Kandagatla
Existing code enables all the playback and capture dais even if there is no device tree entry. This can lead to un-necessary dais in the system which will never be used. So honour whats specfied in device tree. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20200311180422.28363-2-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-11Merge tag 'v5.6-rc5' into asoc-5.7Mark Brown
Linux 5.6-rc5
2020-03-11ASoC: zte: zx-tdm: remove redundant variables devtangbin
In this function, the variable 'dev' is assigned to '&pdev->dev', but in the following code, all the assignments to 'struce device' are used '&pdev->dev' instead of 'dev',except 'zx_tdm->dev'. So,the variable 'dev' in this function is redundant and can be replaced by '&pdev->dev' as elsewhere. Signed-off-by: tangbin <tangbin@cmss.chinamobile.com> Link: https://lore.kernel.org/r/20200311144646.11292-1-tangbin@cmss.chinamobile.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-10Merge series "ASoC: rt5682: fix Kconfig/compilation issues when I2C is not ↵Mark Brown
selected" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: RT5682 can work in I2C or SoundWire mode, but the code will not compile if I2C is not selected. Reported-by: kbuild test robot <lkp@intel.com> Pierre-Louis Bossart (3): ASoC: rt5682: fix unmet dependencies ASoC: rt5682: fix compilation issues without I2C ASoC: rt5682-sdw: fix 'defined but not used' pm functions sound/soc/codecs/Kconfig | 2 +- sound/soc/codecs/rt5682-sdw.c | 4 ++-- sound/soc/codecs/rt5682.c | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) -- 2.20.1
2020-03-10ASoC: pcm: Fix (again) possible buffer overflow in dpcm state sysfs outputTakashi Iwai
This is re-applying the fix that went into 5.6 (commit 6c89ffea60aa) as the changes were wiped out after merging the other code refactoring. Basically the same changes, just replacing the suspicious calls of snprintf() with scnprintf(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200310163625.10838-1-tiwai@suse.de Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-10ASoC: rt5682-sdw: fix 'defined but not used' pm functionsPierre-Louis Bossart
Gcc reports the following warnings: sound/soc/codecs/rt5682-sdw.c:286:12: warning: 'rt5682_dev_resume' defined but not used [-Wunused-function] static int rt5682_dev_resume(struct device *dev) ^~~~~~~~~~~~~~~~~ sound/soc/codecs/rt5682-sdw.c:273:12: warning: 'rt5682_dev_suspend' defined but not used [-Wunused-function] static int rt5682_dev_suspend(struct device *dev) ^~~~~~~~~~~~~~~~~~ Fix by adding maybe_unused as done for other SoundWire codecs Fixes: 03f6fc6de9192f ('ASoC: rt5682: Add the soundwire support') Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Cc: Oder Chiou <oder_chiou@realtek.com> Link: https://lore.kernel.org/r/20200310163509.14466-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-10ASoC: rt5682: fix unmet dependenciesPierre-Louis Bossart
The rt5682 code can be used in I2C or SoundWire mode. When I2C is not selected, we have the following issue: WARNING: unmet direct dependencies detected for SND_SOC_RT5682 Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && I2C [=n] Selected by [m]: - SND_SOC_RT5682_SDW [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SOUNDWIRE [=m] Fix by adding SOUNDWIRE as a dependency. Fixes: 03f6fc6de9192f ('ASoC: rt5682: Add the soundwire support') Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Cc: Oder Chiou <oder_chiou@realtek.com> Link: https://lore.kernel.org/r/20200310163509.14466-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>