summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorLines
2023-05-16ASoC: SOF: Intel: hda-dai: prepare LNL supportMark Brown-61/+63
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: The HDAudio support has not changed much since CometLake/2019: the code was reshuffled for IPC4 support and we used hdac_hda for external and Display Audio codec, but the hda-dai code was only used for HDAudio codecs. In the LunarLake architecture, all endpoints (HDaudio, SSP, DMIC, SoundWire) are handled with the HDaudio DMA, which requires us to revisit the definitions of HDA_LINK, and remove the mutual exclusion between NOCODEC and HDA_LINK: we do want the ability to test SSP/DMIC in NOCODEC mode even with an HDA DMA. This code change exposed a number of issues, with a useless .prepare callback, a DAI number mismatch and the need to support SoundWire which is handled by a different component in drivers/soundwire/intel_ace2.c.
2023-05-16ASoC: Intel: machine driver updatesMark Brown-6/+197
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: Several updates for RPL/MTL/LNL, and one fix for SoundWire TGL device.
2023-05-15ASoC: SOF: Simplify the calculation of variablesJiapeng Chong-1/+1
./sound/soc/sof/pcm.c:372:27-29: WARNING !A || A && B is equivalent to !A || B. Reported-by: Abaci Robot <abaci@linux.alibaba.com Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=4938 Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Link: https://lore.kernel.org/r/20230512064225.75358-1-jiapeng.chong@linux.alibaba.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: ipc4-topology: Use set_get_data() to send LARGE_CONFIG messagePeter Ujfalusi-14/+7
Instead of open coding the sending of sink format of the copier with LARGE_CONFIG_SET message, use the proper function to do so. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Link: https://lore.kernel.org/r/20230512105642.23437-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: remove mutual exclusion between NOCODEC and HDA_LINKPierre-Louis Bossart-1/+0
The nocodec mode served two purposes so far a) generate a test driver for DMIC/SSP without any codec connected b) make sure the use of snd_hdac_ libraries was contained b) is no longer an option for LunarLake, the HDaudio DMA is used for DMIC/SSP and the HDA_LINK option needs to be enabled. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-10-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: hda-dai: use HDA_LINK instead of HDA_AUDIO_CODECPierre-Louis Bossart-4/+8
For LunarLake support, we will have to use HDAudio DMA-based DAIs even for SSP/DMIC/SoundWire. That's completely different to the HDA_AUDIO_CODEC, the DAI ops deal with DMA configuration and that can happen in the absence of any HDAudio codec. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-9-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: hda-dai: mark functions as __maybe_unusedPierre-Louis Bossart-5/+7
hda_dai_hw_params, hda_dai_trigger(), hda_dai_hw_free are currently only used for HDaudio codec support, but will be reused for SSP/DMIC/SoundWire in the LunarLake/ACE2.x case. To avoid 'defined but not used' errors or added complexity in Kconfig, mark all these functions as __maybe_used. When SSP/DMIC/SoundWire are added, some of these changes may be reverted. For now this avoids compilation warnings. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: hda-dai: move hda_dai_prepare() codePierre-Louis Bossart-8/+8
Before we change the Kconfig support, move code around. No functionality change with this commit in isolation. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: Kconfig: move selection of PROBE_WORK_QUEUEPierre-Louis Bossart-1/+1
The probe workqueue is only needed if we have a Display Audio codec. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: clarify initialization when HDA_AUDIO_CODEC is not usedPierre-Louis Bossart-3/+8
For LunarLake support, we need to enable HDA_LINK but we also want the ability to remove HDaudio codec support, e.g. for 'nocodec' tests. This requires a small change in the bus initialization without any codec-specific callbacks provided. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: fix DAI number mismatchPierre-Louis Bossart-1/+1
The number of DAIs was based on a Kconfig option and the declaration on another. Fix before changing the dependencies. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: hda-dai: remove use of cpu_dai->component drvdataPierre-Louis Bossart-10/+30
The existing code relies on conversions from cpu_dai to the sdev structure pointer based on the cpu_dai component. This works fine for HDaudio but will not work for SoundWire DAIs which are registered by a different component. That's a problem preventing reuse of the HDaudio DMA stream allocation for SoundWire DAIs starting with the LunarLake platform. This patch introduces a set of helpers to perform the conversion, and an indirect way of retrieving the sdev pointer based on the swidget->comp intermediate pointer. Suggested-by: Ranjani Sridharan <ranjani.sridharan@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: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: SOF: Intel: hda-dai: simplify .prepare callbackPierre-Louis Bossart-31/+3
The code has been cleaned-up multiple times, but while adding the new abstractions for DMIC/SSP/SoundWire it appears that we don't really need a specific sequence for .prepare, and we can reuse what .hw_params already does. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512181702.117483-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: sof_sdw: add quirk for LNL RVPPeter Ujfalusi-0/+9
We should use RT711_JD2_100K for on board rt711 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512173305.65399-9-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: soc-acpi: add tables for LunarLakePierre-Louis Bossart-0/+75
These tables are used for 'nocodec' and SoundWire mockups+RVP tests. The LNL RVP has a single rt711-sdca SoundWire codec. Co-developed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512173305.65399-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: sof_sdw: add new mapping for HP Spectre x360Pierre-Louis Bossart-0/+14
A BIOS/DMI update seems to have broken some devices, let's add a new mapping. Link: https://github.com/thesofproject/linux/issues/4323 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Reviewed-by: Rander Wang <rander.wang@intel.com Link: https://lore.kernel.org/r/20230512173305.65399-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: sof_sdw: start set codec init function with an adr indexBard Liao-5/+11
Currently, set_codec_init_func always start with link->adr_d[0] because we assumed all adr_d on the same link are the same devices. The assumption is no longer valid when different devices on the same sdw link are supported. Fixes: c8db7b50128b ("ASoC: Intel: sof_sdw: support different devices on the same sdw link") 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 Link: https://lore.kernel.org/r/20230512173305.65399-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: soc-acpi: add support for MTL SDCA boardsChao Song-0/+57
The description and board layout is changed and different from previous ones for CometLake and Tigerlake. The new codec layout for MTL is: SDW0: RT711 Headphone SDW1: RT714 DMIC SDW2: RT1316 Speaker SDW3: RT1316 Speaker The previous codec layout for CML and TGL is: SDW0: RT711 Headphone SDW1: RT1316 Speaker SDW2: RT1316 Speaker SDW3: RT714 DMIC Signed-off-by: Chao Song <chao.song@linux.intel.com Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com Link: https://lore.kernel.org/r/20230512173305.65399-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: sof_sdw: add quirk for MTL RVPBard Liao-0/+8
We should use RT711_JD2_100K for on board rt711. 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 Link: https://lore.kernel.org/r/20230512173305.65399-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: sof_sdw: remove SOF_SDW_TGL_HDMI for MeteorLake devicesBard Liao-1/+1
Topologies support three HDMI links on MeteorLake devices only. Fixes: 18489174e4fb ("ASoC: intel: sof_sdw: add RT711 SDCA card for MTL platform") 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 Link: https://lore.kernel.org/r/20230512173305.65399-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Intel: Add rpl_max98373_8825 driverTerry Cheong-0/+22
Boards were using this in older kernels before adl and rpl ids were split. Add this back to maintain support. Signed-off-by: Terry Cheong <htcheong@chromium.org Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com Link: https://lore.kernel.org/r/20230512173305.65399-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-15ASoC: Merge up fixes for CIMark Brown-14/+105
Avoid tripping over fixed issues in CI.
2023-05-12ASoC SSM3515 codec driverMark Brown-0/+507
Merge series from Martin Povišer <povik+lin@cutebit.org>: Analog Devices SSM3515 is a simple speaker amp that Apple is using in their 2021 iMacs, possibly elsewhere.
2023-05-12ASoC: amd: yc: Add MECHREVO Jiaolong Series MRID6 into DMI tableRsplwe-0/+7
This model requires an additional detection quirk to enable the internal microphone. Signed-off-by: Rsplwe <i@rsplwe.com Link: https://lore.kernel.org/r/tencent_3C6819728B6704C39A864762FB0BB77DF509@qq.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-12ASoC: dt-bindings: nau8825: Convert to dtschemaDavid Lin-111/+239
Convert the NAU8825 audio CODEC bindings to DT schema. Signed-off-by: David Lin <CTLIN0@nuvoton.com Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org Link: https://lore.kernel.org/r/20230511113607.595184-1-CTLIN0@nuvoton.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-12ASoC: ssm3515: Add new amp driverMartin Povišer-0/+458
The Analog Devices' SSM3515 is a mono audio amplifier with digital input, equipped on Apple's 2021 iMacs. Add an ASoC driver for it, and register both the driver code and schema in MAINTAINERS. Signed-off-by: Martin Povišer <povik+lin@cutebit.org Link: https://lore.kernel.org/r/20230511150546.8499-3-povik+lin@cutebit.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-12ASoC: dt-bindings: Add adi,ssm3515 amp schemaMartin Povišer-0/+49
Add a DT schema for the SSM3515 amp by Analog Devices. It's a simple mono amplifier with digital input. Signed-off-by: Martin Povišer <povik+lin@cutebit.org Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org Link: https://lore.kernel.org/r/20230511150546.8499-2-povik+lin@cutebit.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-12ASoC: ssm2602: Add workaround for playback distortionsPaweł Anikiel-0/+15
Apply a workaround for what appears to be a hardware quirk. The problem seems to happen when enabling "whole chip power" (bit D7 register R6) for the very first time after the chip receives power. If either "output" (D4) or "DAC" (D3) aren't powered on at that time, playback becomes very distorted later on. This happens on the Google Chameleon v3, as well as on a ZYBO Z7-10: https://ez.analog.com/audio/f/q-a/543726/solved-ssm2603-right-output-offset-issue/480229 I suspect this happens only when using an external MCLK signal (which is the case for both of these boards). Here are some experiments run on a Google Chameleon v3. These were run in userspace using a wrapper around the i2cset utility: ssmset() { i2cset -y 0 0x1a $(($1*2)) $2 } For each of the following sequences, we apply power to the ssm2603 chip, set the configuration registers R0-R5 and R7-R8, run the selected sequence, and check for distortions on playback. ssmset 0x09 0x01 # core ssmset 0x06 0x07 # chip, out, dac OK ssmset 0x09 0x01 # core ssmset 0x06 0x87 # out, dac ssmset 0x06 0x07 # chip OK (disable MCLK) ssmset 0x09 0x01 # core ssmset 0x06 0x1f # chip ssmset 0x06 0x07 # out, dac (enable MCLK) OK ssmset 0x09 0x01 # core ssmset 0x06 0x1f # chip ssmset 0x06 0x07 # out, dac NOT OK ssmset 0x06 0x1f # chip ssmset 0x09 0x01 # core ssmset 0x06 0x07 # out, dac NOT OK ssmset 0x09 0x01 # core ssmset 0x06 0x0f # chip, out ssmset 0x06 0x07 # dac NOT OK ssmset 0x09 0x01 # core ssmset 0x06 0x17 # chip, dac ssmset 0x06 0x07 # out NOT OK For each of the following sequences, we apply power to the ssm2603 chip, run the selected sequence, issue a reset with R15, configure R0-R5 and R7-R8, run one of the NOT OK sequences from above, and check for distortions. ssmset 0x09 0x01 # core ssmset 0x06 0x07 # chip, out, dac OK (disable MCLK) ssmset 0x09 0x01 # core ssmset 0x06 0x07 # chip, out, dac (enable MCLK after reset) NOT OK ssmset 0x09 0x01 # core ssmset 0x06 0x17 # chip, dac NOT OK ssmset 0x09 0x01 # core ssmset 0x06 0x0f # chip, out NOT OK ssmset 0x06 0x07 # chip, out, dac NOT OK Signed-off-by: Paweł Anikiel <pan@semihalf.com Link: https://lore.kernel.org/r/20230508113037.137627-8-pan@semihalf.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: qcom: add display port module support.Mark Brown-43/+204
Merge series from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>: This patchset adds support to displayport on AudioReach. Patches are tested on X13s with two display ports.
2023-05-11ASoC: ingenic: Add compatible string for X1000 SoCAidan MacDonald-0/+1
The audio controller in the X1000 is similar to the JZ47xx SoCs. Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org Link: https://lore.kernel.org/r/20230509124238.195191-2-aidanmacdonald.0x0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: jz4740-i2s: Add support for X1000 SoCAidan MacDonald-0/+9
The X1000's AIC is similar to the AIC found on other Ingenic SoCs. It has symmetric playback/capture rates like the JZ4740, but more flexible clocking when outputting the system or bit clocks. Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com Link: https://lore.kernel.org/r/20230509124238.195191-1-aidanmacdonald.0x0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: qcom: q6apm: add support to display ports in lpass daisSrinivas Kandagatla-0/+39
This patch adds support to q6apm lpass display port dais. This support is required to get DP audio on x13s. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org Link: https://lore.kernel.org/r/20230509112202.21471-5-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: qcom: q6dsp: add support to more display portsSrinivas Kandagatla-16/+35
Existing code base only supports one display port, this patch adds support upto 8 display ports. This support is required to allow platforms like X13s which have 3 display ports, and some of the Qualcomm SoCs there are upto 7 Display ports. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org Link: https://lore.kernel.org/r/20230509112202.21471-4-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: qcom: audioreach: add support for DISPLAY PORT SINK moduleSrinivas Kandagatla-0/+87
Add support for DISPLAY PORT SINK module and associated configuration. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org Link: https://lore.kernel.org/r/20230509112202.21471-3-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: qcom: q6dsp-common: move channel allocation to commonSrinivas Kandagatla-27/+43
move hdmi/dp channel allocation to a common function q6dsp_get_channel_allocation() so that we can reuse this across q6afe and q6apm drivers. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org Link: https://lore.kernel.org/r/20230509112202.21471-2-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: dt-bindings: Adjust #sound-dai-cells on TI's single-DAI codecsMartin Povišer-6/+12
A bunch of TI's codecs have binding schemas which force #sound-dai-cells to one despite those codecs only having a single DAI. Allow for bindings with zero DAI cells and deprecate the former non-zero value. Signed-off-by: Martin Povišer <povik+lin@cutebit.org Link: https://lore.kernel.org/r/20230509153412.62847-1-povik+lin@cutebit.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-11ASoC: jz4740-i2s: Make I2S divider calculations more robustAidan MacDonald-4/+50
When the CPU supplies bit/frame clocks, the system clock (clk_i2s) is divided to produce the bit clock. This is a simple 1/N divider with a fairly limited range, so for a given system clock frequency only a few sample rates can be produced. Usually a wider range of sample rates is supported by varying the system clock frequency. The old calculation method was not very robust and could easily produce the wrong clock rate, especially with non-standard rates. For example, if the system clock is 1.99x the target bit clock rate, the divider would be calculated as 1 instead of the more accurate 2. Instead, use a more accurate method that considers two adjacent divider settings and selects the one that produces the least error versus the requested rate. If the error is 5% or higher then the rate setting is rejected to prevent garbled audio. Skip divider calculation when the codec is supplying both the bit and frame clock; in that case, the divider outputs are unused and we don't want to constrain the sample rate. Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com Link: https://lore.kernel.org/r/20230509125134.208129-1-aidanmacdonald.0x0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-09ASoC: add and use asoc_dummy_dlcMark Brown-194/+89
Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: Many ASoC drivers are using dummy DAI. I have 2 concern about it. 1st one is there is no guarantee that local strings ("snd-soc-dummy-dai", "snd-soc-dummy") are kept until the card was binded if it was added at subfunction. 2nd one is we can use common snd_soc_dai_link_component for it. This patch-set adds common asoc_dummy_dlc, and use it.
2023-05-09ASoC: rt722-sdca: Add RT722 SDCA driverJack Yu-0/+2436
This is the initial codec driver for rt722-sdca. Signed-off-by: Jack Yu <jack.yu@realtek.com Link: https://lore.kernel.org/r/20230421030116.26245-1-jack.yu@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-09ASoC: MediaTek MT8195/86 CleanupsMark Brown-135/+36
Merge series from AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>: This series performs some cleanups for mainly MT8195 and switches both MT8195 and MT8186's SOF driver to the snd_sof_ipc_process_reply() helper.
2023-05-09ASoC: SOF: amd: Fix NULL pointer crash in acp_sof_ipc_msg_data functionV sujith kumar Reddy-1/+6
Check substream and runtime variables before assigning. Signed-off-by: V sujith kumar Reddy <Vsujithkumar.Reddy@amd.com Link: https://lore.kernel.org/r/20230508070510.6100-1-Vsujithkumar.Reddy@amd.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: fsl_micfil: Fix error handler with pm_runtime_enableShengjiu Wang-1/+13
There is error message when defer probe happens: fsl-micfil-dai 30ca0000.micfil: Unbalanced pm_runtime_enable! Fix the error handler with pm_runtime_enable and add fsl_micfil_remove() for pm_runtime_disable. Fixes: 47a70e6fc9a8 ("ASoC: Add MICFIL SoC Digital Audio Interface driver.") Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Link: https://lore.kernel.org/r/1683540996-6136-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: dwc: limit the number of overrun messagesMaxim Kochetkov-2/+2
On slow CPU (FPGA/QEMU emulated) printing overrun messages from interrupt handler to uart console may leads to more overrun errors. So use dev_err_ratelimited to limit the number of error messages. Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru Link: https://lore.kernel.org/r/20230505062820.21840-1-fido_max@inbox.ru Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: amd: yc: Add DMI entry to support System76 Pangolin 12Jeremy Soller-0/+7
Add pang12 quirk to enable the internal microphone. Signed-off-by: Jeremy Soller <jeremy@system76.com Signed-off-by: Tim Crawford <tcrawford@system76.com Link: https://lore.kernel.org/r/20230505161458.19676-1-tcrawford@system76.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: fsl_sai: MCLK bind with TX/RX enable bitShengjiu Wang-3/+23
On i.MX8MP, the sai MCLK is bound with TX/RX enable bit, which means the TX/RE enable bit need to be enabled then MCLK can be output on PAD. Some codec (for example: WM8962) needs the MCLK output earlier, otherwise there will be issue for codec configuration. Add new soc data "mclk_with_tere" for this platform and enable the MCLK output in startup stage. As "mclk_with_tere" only applied to i.MX8MP, currently The soc data is shared with i.MX8MN, so need to add an i.MX8MN own soc data with "mclk_with_tere" disabled. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Link: https://lore.kernel.org/r/1683273322-2525-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: codecs: wcd938x: Remove unneeded semicolonYang Li-1/+1
./sound/soc/codecs/wcd938x-sdw.c:1274:2-3: Unneeded semicolon Reported-by: Abaci Robot <abaci@linux.alibaba.com Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=4862 Signed-off-by: Yang Li <yang.lee@linux.alibaba.com Link: https://lore.kernel.org/r/20230505004538.70270-1-yang.lee@linux.alibaba.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: dt-bindings: nau8540: Convert to dtschemaAnup Sharma-16/+40
Convert the NAU8540 audio CODEC bindings to DT schema Signed-off-by: Anup Sharma <anupnewsmail@gmail.com Changes: V1 -> V2: Adhere to the correct procedure by including the maintainer's name. Drop Mark from maintainer. Link: https://lore.kernel.org/r/ZFYxWVdE9YkMKvXv@yoga Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: amd: ps: refactor acp power on and reset functions.Syed Saba Kareem-25/+16
Instead of a busy waiting while loop using udelay in acp63_power_on and acp63_reset functions use readl_poll_timeout function to check the condition. Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com Link: https://lore.kernel.org/r/20230426122219.3745586-2-Syed.SabaKareem@amd.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: amd: ps: remove the register read and write wrappers.Syed Saba Kareem-60/+46
Instead of acp63_readl() and acp63_writel() wrappers readl and writel functions can be used directly. Remove acp63_readl() and acp63_writel() wrappers. Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com Link: https://lore.kernel.org/r/20230426122219.3745586-1-Syed.SabaKareem@amd.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-08ASoC: Switch i2c drivers back to use .probe()Uwe Kleine-König-184/+184
After commit b8a1a4cd5a98 ("i2c: Provide a temporary .probe_new() call-back type"), all drivers being converted to .probe_new() and then 03c835f498b5 ("i2c: Switch .probe() to not take an id parameter") convert back to (the new) .probe() to be able to eventually drop .probe_new() from struct i2c_driver. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de Link: https://lore.kernel.org/r/20230425095716.331419-1-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org