summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-14ASoC: bcm: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87leelb0uk.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: pxa: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87msz1b0uq.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: dwc: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Maxim Kochetkov <fido_max@inbox.ru> Link: https://lore.kernel.org/r/87o7jhb0v4.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: amd: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87pm3xb0va.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: adi: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87r0odb0vg.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: adi: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87sf8tb0vp.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: ti: merge DAI call back functions into opsKuninori Morimoto
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87ttt9b0vw.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: soc-dai.h: merge DAI call back functions into opsKuninori Morimoto
snd_soc_dai_driver has .ops for call back functions (A), but it also has other call back functions (B). It is duplicated and confusable. struct snd_soc_dai_driver { ... ^ int (*probe)(...); | int (*remove)(...); (B) int (*compress_new)(...); | int (*pcm_new)(...); v ... (A) const struct snd_soc_dai_ops *ops; ... } This patch merges (B) into (A). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87v8dpb0w6.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: rt: Drop unused GPIO includesMark Brown
Merge series from Linus Walleij <linus.walleij@linaro.org>: These drivers include legacy GPIO headers for no reason at all, so get rid of the includes.
2023-08-14sound: Remove redundant of_match_ptr() macroMark Brown
Merge series from Ruan Jinjie <ruanjinjie@huawei.com>: Since these sound drivers depend on CONFIG_OF, there is no need to wrap the macro of_match_ptr() here.
2023-08-13ASoC: rt715: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers and one contemporary, yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-14-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5682-sdw: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-13-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5660: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-12-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5659: Drop legacy GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. It is using the new consumer include <linux/gpio/consumer.h already. Drop the surplus include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-11-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5645: Drop legacy GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. It is using the new consumer include <linux/gpio/consumer.h already. Drop the surplus include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-10-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5514: Drop GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. Drop the include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-9-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt5514-spi: Drop GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. Drop the include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-8-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1308: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-7-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1305: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-6-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1019: Drop GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. Drop the include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-5-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1016: Drop GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. Drop the include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-4-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1015p: Drop legacy GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. It is using the new consumer include <linux/gpio/consumer.h already. Drop the surplus include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-3-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1015: Drop GPIO includeLinus Walleij
This driver include the GPIO legacy header <linux/gpio.h yet doesn't use symbols from it. Drop the include. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-2-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: rt1011: Drop GPIO includesLinus Walleij
This driver include two GPIO legacy headers yet doesn't use symbols from any of them. Drop the includes. Signed-off-by: Linus Walleij <linus.walleij@linaro.org Link: https://lore.kernel.org/r/20230812-descriptors-asoc-v1-1-eb4dca1f68af@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ALSA: Remove redundant of_match_ptr()Ruan Jinjie
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com Reviewed-by: Takashi Iwai <tiwai@suse.de Link: https://lore.kernel.org/r/20230811071426.2343133-6-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: ssm3515: Remove redundant of_match_ptr()Ruan Jinjie
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com Link: https://lore.kernel.org/r/20230811071426.2343133-5-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: sunxi: sun4i-spdif: Remove redundant of_match_ptr()Ruan Jinjie
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com Link: https://lore.kernel.org/r/20230811071426.2343133-4-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: atmel: tse850-pcm5142: Remove redundant of_match_ptr()Ruan Jinjie
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com Link: https://lore.kernel.org/r/20230811071426.2343133-3-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: atmel: Remove redundant of_match_ptr()Ruan Jinjie
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com Link: https://lore.kernel.org/r/20230811071426.2343133-2-ruanjinjie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: cygnus: Remove unused declarationsYue Haibing
Commit a6ee05d94e8f ("ASoC: cygnus: Add Cygnus audio DAI driver") declared but never implemented these. Signed-off-by: Yue Haibing <yuehaibing@huawei.com Link: https://lore.kernel.org/r/20230811110021.31656-1-yuehaibing@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-13ASoC: q6dsp: Remove unused declarationYue Haibing
Commit 5477518b8a0e ("ASoC: qdsp6: audioreach: add q6apm support") declared but never implemented these. Signed-off-by: Yue Haibing <yuehaibing@huawei.com Link: https://lore.kernel.org/r/20230811100130.36664-1-yuehaibing@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org
2023-08-10ASoC: SOF: Intel: Remove duplicated include in lnl.cYang Li
./sound/soc/sof/intel/lnl.c: hda.h is included more than once. Signed-off-by: Yang Li <yang.lee@linux.alibaba.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230810005555.4610-1-yang.lee@linux.alibaba.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-10ASoC: rt715: Add software reset in io initJack Yu
Add software reset before setting preset registers to make sure all the registers are the default value before preset. Signed-off-by: Jack Yu <jack.yu@realtek.com> Link: https://lore.kernel.org/r/4f405c7deb9642e1a8599c5f103b5759@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-10dt-bindings: sound: gtm601: Add descriptionGuido Günther
This allows to us to document the channel and sampling rate requirements. Signed-off-by: Guido Günther <agx@sigxcpu.org> Reviewed-by: David Heidelberg <david@ixit.cz> Link: https://lore.kernel.org/r/b6e85fdfaa87d7684a120ccedc1e07d8fe87957f.1691606520.git.agx@sigxcpu.org Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-10ASoC: SOF: Intel: Initialize chip in hda_sdw_check_wakeen_irq()Nathan Chancellor
Clang warns (or errors with CONFIG_WERROR): sound/soc/sof/intel/hda.c:423:6: error: variable 'chip' is uninitialized when used here [-Werror,-Wuninitialized] 423 | if (chip && chip->check_sdw_wakeen_irq) | ^~~~ sound/soc/sof/intel/hda.c:418:39: note: initialize the variable 'chip' to silence this warning 418 | const struct sof_intel_dsp_desc *chip; | ^ | = NULL 1 error generated. Add the missing initialization, following the pattern of the other irq functions. Fixes: 9362ab78f175 ("ASoC: SOF: Intel: add abstraction for SoundWire wake-ups") Signed-off-by: Nathan Chancellor <nathan@kernel.org> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230809-intel-hda-missing-chip-init-v1-1-61557ca6fa8a@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-10ASoC: Merge up fixesMark Brown
For the benefit of CI
2023-08-09ASoC: cs35l56: BugfixesMark Brown
Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>: Miscellaneous bugfixes for the cs35l56 codec driver.
2023-08-09ASoC: SOF: ipc4-topology: Update the basecfg for copier earlierPeter Ujfalusi
The sof_ipc4_update_resource_usage() call updates the CPC value in basecfg and it must be done prior to making a copy of the copier configuration for the init message. Other module types do the resource update as last step or in case of a process module at the correct time, before the memcpy. Fixes: d8a2c9879349 ("ASoC: SOF: ipc4-loader/topology: Query the CPC value from manifest") Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Adrian Bonislawski <adrian.bonislawski@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Chao Song <chao.song@linux.intel.com> Link: https://lore.kernel.org/r/20230809125656.27585-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-09ASoC: samsung: midas_wm1811: Fix 'Headphone Switch' control creationMarek Szyprowski
'Headphone Switch' control is already registered from sound/soc/codecs/wm_hubs.c:479, so duplicating it in midas_wm1811 causes following probe failure: midas-audio sound: control 2:0:0:Headphone Switch:0 is already present midas-audio sound: ASoC: Failed to add Headphone Switch: -16 midas-audio sound: Failed to register card: -16 midas-audio: probe of sound failed with error -16 Fix this by dropping duplicated control. Fixes: d27224a45e54 ("ASoC: samsung: midas_wm1811: Map missing jack kcontrols") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Link: https://lore.kernel.org/r/20230809100446.2105825-1-m.szyprowski@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-09ASoC: rsnd: call of_node_put() when breakKuninori Morimoto
We need to call of_node_put() when break from for_each_child_of_node(). This patch add missing of_node_put(). Reported-by: kernel test robot <lkp@intel.com> Reported-by: Julia Lawall <julia.lawall@inria.fr> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87bkfh9g68.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: cs35l56: Call wm_adsp_power_down() before reloading firmwareSimon Trimmer
When cs35l56_system_resume() needs to reload firmware it should call wm_adsp_power_down() to put cs_dsp into a powered-down state before cs35l56_secure_patch() or cs35l56_patch() calls wm_adsp_power_up(). Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808164702.21272-6-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: wm_adsp: Expose the DSP power down actions as wm_adsp_power_down()Simon Trimmer
To support self-booting DSPs that operate outside of a conventional DAPM event life cycle expose a companion function to wm_adsp_power_up() so that the correct state of the DSP firmware and controls can be recorded. Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808164702.21272-5-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: cs35l56: Wait for control port ready during system-resumeRichard Fitzgerald
The CS35L56 could be hard-reset during a system suspend-resume cycle, either by the codec driver, in cs35l56_system_resume_early(), or by ACPI. After a hard reset the driver must wait for the control port to be ready (datasheet tIRS time) before attempting to access the CS35L56. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808164702.21272-4-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: cs35l56: Don't rely on GPIOD_OUT_LOW to set RESET initially lowRichard Fitzgerald
The ACPI setting for a GPIO default state has higher priority than the flag passed to devm_gpiod_get_optional() so ACPI can override the GPIOD_OUT_LOW. Explicitly set the GPIO low when hard resetting. Although GPIOD_OUT_LOW can't be relied on this doesn't seem like a reason to stop passing it to devm_gpiod_get_optional(). So we still pass it to state our intent, but can deal with it having no effect. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808164702.21272-3-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: cs35l56: Avoid uninitialized variable in cs35l56_set_asp_slot_positions()Richard Fitzgerald
Re-implement setting of ASP TDM slots so that only the common loop to build the register word is factored out. The original cs35l56_set_asp_slot_positions() had an apparent uninitialized variable if the passed register address was neither of the ASP slot registers. In fact this would never happen because the calling code passed valid registers. While it's trivial to initialize the variable or add a default case, actually the only common code was the loop at the end of the function, which simply manipulates some mask values and is identical for either register. Factoring out the regmap_write() didn't really gain anything. So instead re-implement the code to replace the original function with cs35l56_make_tdm_config_word() that only does the loop, and change the calling code to call regmap_write() directly. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808164702.21272-2-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: pxa: address unused variable warningYu Liao
gcc with W=1 reports sound/soc/pxa/pxa-ssp.c:594:15: warning: variable 'acds' set but not used [-Wunused-but-set-variable] ^ This variable is not used so remove it. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202308040619.BEismjFv-lkp@intel.com/ Signed-off-by: Yu Liao <liaoyu15@huawei.com> Link: https://lore.kernel.org/r/20230808132519.637452-1-liaoyu15@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: codecs: aw88261: avoid uninitialized variable warningArnd Bergmann
aw88261_reg_update() returns an unintialized error code in the success path: sound/soc/codecs/aw88261.c:651:7: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] if (aw_dev->prof_cur != aw_dev->prof_index) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/aw88261.c:660:9: note: uninitialized use occurs here return ret; ^~~ sound/soc/codecs/aw88261.c:651:3: note: remove the 'if' if its condition is always true if (aw_dev->prof_cur != aw_dev->prof_index) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Return zero instead here. Fixes: 028a2ae256916 ("ASoC: codecs: Add aw88261 amplifier driver") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/r/20230808125703.1611325-1-arnd@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: intel: sof_sdw: Simplify get_slave_infoCharles Keepax
Now the first device on a link is not treated specially there is no need to have a separate loop to handle the current link over the future links, as the logic is identical. Combine this all into a single processing loop. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808132013.889419-12-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: intel: sof_sdw: Allow different devices on the same linkCharles Keepax
If the current code encounters a new type of device on a SoundWire link, it will abort processing that link and move onto the next link. However, there is no reason to disallow this setup, it would appear this was being disallowed to work around issues introduced by only the first endpoint on each link being checked, which is now fixed. The device type shouldn't determine which DAI link it is connected to, the group ID and aggregation status should. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808132013.889419-11-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-08ASoC: intel: sof_sdw: Support multiple groups on the same linkCharles Keepax
The current code checks the first device on a link and assumes that all the other devices on the link will have the same endpoint aggregation status and endpoint group ID. Say for example a system looked like: SDW0 - Amp 1 (Aggregated, Group 1), Mic 1 (Aggregated, Group 2) SDW1 - Amp 2 (Aggregated, Group 1), Mic 2 (Aggregated, Group 2) The current code would create the DAI link for the aggregated amps, although it is worth noting that the only reason Mic 2 is not added is the additional check that aborts processing the link when the device changes. Then when processing the DAI link for the microphones, Mic 2 would not be added, as the check will only be done on the first device, which would be Amp 2 and thus the wrong group, causing the whole link to be skipped. Move the endpoint check to be for each device rather than the first device on each link. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230808132013.889419-10-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>