- 26 Jun, 2020 19 commits
-
-
Naveen Manohar authored
Add max98373-sdw helper function, which configures 2x MAX98373 codecs to Link1. This patch shares code between the I2S and SoundWire modes of MAX98373 and adds the trigger already added for I2S. Signed-off-by: Rander Wang <rander.wang@linux.intel.com> Signed-off-by: Naveen Manohar <naveen.m@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200625192620.4312-1-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Masanari Iida authored
This patch fixes a spelling typo in samsung/Kconfig. Signed-off-by: Masanari Iida <standby24x7@gmail.com> Link: https://lore.kernel.org/r/20200626142958.253614-1-standby24x7@gmail.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Naveen Manohar authored
RT5682 is in Soundwire mode on Link0 & 2x MAX98373 on link1. Signed-off-by: Naveen Manohar <naveen.m@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@linux.intel.com> Link: https://lore.kernel.org/r/20200625192708.4416-1-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Fred Oh authored
dailink.codecs is pointer to a codec array. Explicitly access first codec's dai_name. Signed-off-by: Fred Oh <fred.oh@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: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200625192458.4148-1-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Mark Brown authored
Merge series "ASoC: Intel: machine driver updates for 5.9" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: This patchset adds: a) fixes for missing .owner = THIS_MODULE initializations for snd_soc_card structures b) extensions for TigerLake and JasperLake reusing the same machine drivers. c) Max98373 support for SoundWire machine driver. d) cleanups (use-after-free, quirks, etc). Bard Liao (1): ASoC: intel: cml_rt1011_rt5682: use for_each_card_prelinks Dharageswari R (3): ASoC: Intel: Boards: tgl_max98373: add dai_trigger function ASoC: Intel: Boards: tgl_max98373: Fix the comment for max_98373_components ASoC: Intel: Boards: tgl_max98373: Update TDM configuration in hw_params Fred Oh (3): ASoC: Intel: Boards: cml_rt1011_rt5682: reduce log level for printing quirk ASoC: Intel: Boards: cml_rt1011_rt5682: use statically define codec config ASoc: Intel: cml_rt1011_rt5682: explicitly access first codec Naveen Manohar (2): ASoC: Intel: sof_sdw: Add MAX98373 support ASoC: Intel: common: add match table for TGL MAX98373 + RT5682 SoundWire driver Pierre-Louis Bossart (6): ASoC: SOF: nocodec: add missing .owner field ASoC: Intel: cml_rt1011_rt5682: add missing .owner field ASoC: Intel: sof_sdw: add missing .owner field ASoC: Intel: bxt_rt298: add missing .owner field ASoC: Intel: sof_sdw: add quirk override with kernel parameter ASoC: Intel: boards: byt*.c: remove cast in dev_info quirk log Yong Zhi (1): ASoC: intel: sof_rt5682: Add support for jsl-max98360a-rt5682 randerwang (1): ASoC: Intel: sdw_max98373: add card_late_probe support sound/soc/intel/boards/Kconfig | 3 +- sound/soc/intel/boards/Makefile | 2 + sound/soc/intel/boards/bxt_rt298.c | 2 + sound/soc/intel/boards/bytcht_es8316.c | 5 +- sound/soc/intel/boards/bytcr_rt5640.c | 4 +- sound/soc/intel/boards/bytcr_rt5651.c | 4 +- sound/soc/intel/boards/cml_rt1011_rt5682.c | 90 ++++++------------- sound/soc/intel/boards/sof_maxim_common.c | 55 ++++++++++-- sound/soc/intel/boards/sof_maxim_common.h | 3 + sound/soc/intel/boards/sof_rt5682.c | 32 +++++++ sound/soc/intel/boards/sof_sdw.c | 72 ++++++++++++++- sound/soc/intel/boards/sof_sdw_common.h | 15 ++++ sound/soc/intel/boards/sof_sdw_max98373.c | 86 ++++++++++++++++++ .../intel/common/soc-acpi-intel-jsl-match.c | 13 +++ .../intel/common/soc-acpi-intel-tgl-match.c | 25 ++++++ sound/soc/sof/nocodec.c | 1 + 16 files changed, 332 insertions(+), 80 deletions(-) create mode 100644 sound/soc/intel/boards/sof_sdw_max98373.c base-commit: 6f81e520 -- 2.20.1
-
Colton Lewis authored
Silence documentation build warning by correcting kernel-doc comment for snd_soc_runtime_action. ./sound/soc/soc-pcm.c:220: warning: Function parameter or member 'action' not described in 'snd_soc_runtime_action' Signed-off-by: Colton Lewis <colton.w.lewis@protonmail.com> Link: https://lore.kernel.org/r/20200626053953.68797-1-colton.w.lewis@protonmail.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dharageswari R authored
This patch updates tx_mask, so that (0-3)slots are reserved for Maxim amps to feedback data. V0->slot0, I0->slot1, V1->slot2, I1->slot3. also update slot_width in tdm configuration to 24 as the BE configuration is 24 in topology. Signed-off-by: Dharageswari R <dharageswari.r@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/20200625191308.3322-14-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Bard Liao authored
for_each_card_prelinks() is a common API to walk through each prelink in the card. 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/20200625191308.3322-13-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Fred Oh authored
When the cml_rt1011_rt5682_dailink[].codecs pointer is overridden by a quirk with a devm allocated structure and the probe is deferred, in the next probe we will see an use-after-free condition (verified with KASAN). This can be avoided by using statically allocated configurations - which simplifies the code quite a bit as well. KASAN issue fixed. [ 23.301373] cml_rt1011_rt5682 cml_rt1011_rt5682: sof_rt1011_quirk = f [ 23.301875] ================================================================== [ 23.302018] BUG: KASAN: use-after-free in snd_cml_rt1011_probe+0x23a/0x3d0 [snd_soc_cml_rt1011_rt5682] [ 23.302178] Read of size 8 at addr ffff8881ec6acae0 by task kworker/0:2/105 [ 23.302320] CPU: 0 PID: 105 Comm: kworker/0:2 Not tainted 5.7.0-rc7-test+ #3 [ 23.302322] Hardware name: Google Helios/Helios, BIOS 01/21/2020 [ 23.302329] Workqueue: events deferred_probe_work_func [ 23.302331] Call Trace: [ 23.302339] dump_stack+0x76/0xa0 [ 23.302345] print_address_description.constprop.0.cold+0xd3/0x43e [ 23.302351] ? _raw_spin_lock_irqsave+0x7b/0xd0 [ 23.302355] ? _raw_spin_trylock_bh+0xf0/0xf0 [ 23.302362] ? snd_cml_rt1011_probe+0x23a/0x3d0 [snd_soc_cml_rt1011_rt5682] [ 23.302365] __kasan_report.cold+0x37/0x86 [ 23.302371] ? snd_cml_rt1011_probe+0x23a/0x3d0 [snd_soc_cml_rt1011_rt5682] [ 23.302375] kasan_report+0x38/0x50 [ 23.302382] snd_cml_rt1011_probe+0x23a/0x3d0 [snd_soc_cml_rt1011_rt5682] [ 23.302389] platform_drv_probe+0x66/0xc0 Fixes: 629ba12e ("ASoC: Intel: boards: split woofer and tweeter support") Suggested-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Fred Oh <fred.oh@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: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-12-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Fred Oh authored
Change dev_info to dev_dbg to reduce noise during multiple deferred probes. Signed-off-by: Fred Oh <fred.oh@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: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-11-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Yong Zhi authored
Add support for max98360a speaker amp on SSP1 and ALC5682 on SSP0 for jsl+ platform. Signed-off-by: Yong Zhi <yong.zhi@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-10-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dharageswari R authored
MAX_98373_DEV0_NAME is the Right speaker and MAX_98373_DEV1_NAME is the Left speaker, hence updating the comments for max98373 dailink components accordingly. Signed-off-by: Dharageswari R <dharageswari.r@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-9-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dharageswari R authored
Speaker amplifier feedback is not modeled as being dependent on any active output. Even when there is no playback happening, parts of the graph, specifically the IV sense->speaker protection->output remains active and this prevents the DSP from entering low-power states. This patch suggests a machine driver level approach where the speaker pins are enabled/disabled dynamically depending on stream start/stop events. DPAM graph representations show the feedback loop is indeed disabled and low-power states can be reached. Signed-off-by: Dharageswari R <dharageswari.r@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-8-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
We don't need an explicit cast, using the right format is simple enough. Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@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: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-7-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
During the bring-up of new platforms, or to take care of specific hardware reworks, it's useful to add a kernel parameter to override the default DMI-based quirks. For example, adding the following line in a .conf file in /etc/modprobe.d/ will change the default quirk and log the changes if dynamic debug is enabled. options snd_soc_sof_sdw quirk=0x802 [ 735.025785] sof_sdw sof_sdw: Overriding quirk 0x10 => 0x802 [ 735.025787] sof_sdw sof_sdw: quirk realtek,jack-detect-source 2 [ 735.025790] sof_sdw sof_sdw: quirk SOF_RT715_DAI_ID_FIX enabled Tested on ICL RVP with add-on board instead of default codec. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-6-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
This field is required for ASoC cards. Not setting it will result in a module->name pointer being NULL and generate problems such as cat /proc/asound/modules 0 (efault) Fixes: 76016322 ('ASoC: Intel: Add Broxton-P machine driver') Reported-by: Jaroslav Kysela <perex@perex.cz> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-5-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
This field is required for ASoC cards. Not setting it will result in a module->name pointer being NULL and generate problems such as cat /proc/asound/modules 0 (efault) Fixes: 52db12d1 ('ASoC: Intel: boards: add sof_sdw machine driver') Reported-by: Jaroslav Kysela <perex@perex.cz> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-4-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
This field is required for ASoC cards. Not setting it will result in a module->name pointer being NULL and generate problems such as cat /proc/asound/modules 0 (efault) Fixes: 17fe95d6 ('ASoC: Intel: boards: Add CML m/c using RT1011 and RT5682') Reported-by: Jaroslav Kysela <perex@perex.cz> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-3-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
This field is required for ASoC cards. Not setting it will result in a module->name pointer being NULL and generate problems such as cat /proc/asound/modules 0 (efault) Fixes: 8017b8fd ('ASoC: SOF: Add Nocodec machine driver support') Reported-by: Jaroslav Kysela <perex@perex.cz> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200625191308.3322-2-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 25 Jun, 2020 6 commits
-
-
Tzung-Bi Shih authored
To fix compilation error: error: implicit declaration of function 'ACPI_PTR' [-Werror,-Wimplicit-function-declaration] .acpi_match_table = ACPI_PTR(rt1015_acpi_match), ^ Adds the missing header "acpi.h" inclusion and sorts in alphabetical. Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20200625153543.85039-4-tzungbi@google.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Tzung-Bi Shih authored
To fix compilation warnings: - struct 'snd_soc_pcm_runtime' declared inside parameter list will not be visible outside of this definition or declaration - struct 'soc_enum' declared inside parameter list will not be visible outside of this definition or declaration Declares the missing structure prototypes. Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20200625153543.85039-3-tzungbi@google.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Tzung-Bi Shih authored
To fix compilation error: - error: field 'XXX' has incomplete type Moves definition of enum snd_soc_bias_level from soc.h to soc-dapm.h. Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20200625153543.85039-2-tzungbi@google.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dan Murphy authored
Fix the shut-down gpio property to be shut-down-gpio and fix the example. Signed-off-by: Dan Murphy <dmurphy@ti.com> Link: https://lore.kernel.org/r/20200624174932.9604-2-dmurphy@ti.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dan Murphy authored
Fix the issue found that there is an extra space before a comma in the volume control. Fixes: bf726b1c ("ASoC: tas2562: Add support for digital volume control") Signed-off-by: Dan Murphy <dmurphy@ti.com> Link: https://lore.kernel.org/r/20200624174932.9604-4-dmurphy@ti.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Dan Murphy authored
Update the shutdown GPIO property to be shutdown from shut-down. Fixes: c173dba4 ("ASoC: tas2562: Introduce the TAS2562 amplifier") Signed-off-by: Dan Murphy <dmurphy@ti.com> Link: https://lore.kernel.org/r/20200624174932.9604-3-dmurphy@ti.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 24 Jun, 2020 2 commits
-
-
Shengjiu Wang authored
In order to support wm8524 codec with fsl-asoc-card machine driver, add compatible string "fsl,imx-audio-wm8524". Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> Link: https://lore.kernel.org/r/1592895167-30483-2-git-send-email-shengjiu.wang@nxp.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
WM8524 only supports playback mode, and only works at slave mode. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> Link: https://lore.kernel.org/r/1592895167-30483-1-git-send-email-shengjiu.wang@nxp.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 23 Jun, 2020 9 commits
-
-
Mark Brown authored
Merge series "ASoC: add dailink .exit() callback" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: While looking at reboot issues and module load/unload tests, I found out some resources allocated in the dailink .init() callback are not properly released - there is no existing mechanism in the soc-core to do so. The addition of a dailink .exit() callback seems to be the simplest solution overall. It can be argued that the existing machine platform device .remove() callback can also perform the necessary cleanups, however as shown in the last two examples this might require a loop to identify components whereas the dailink .exit() already has all the necessary information to revert the actions done in the .init() step. Changes since RFC: Better commit messages and explanations rt5682 cases with snd_soc_component_set_jack() called in the .exit() Fred Oh (2): ASoC: intel: sof_rt5682: move disabling jack to dai link's exit() ASoC: intel: cml_rt1011_rt5682: disable jack in dailink .exit() Pierre-Louis Bossart (3): ASoC: soc-link: introduce exit() callback ASoC: Intel: bdw-rt5677: fix module load/unload issues ASoC: Intel: kbl-rt5660: use .exit() dailink callback to release gpiod include/sound/soc-link.h | 1 + include/sound/soc.h | 3 +++ sound/soc/intel/boards/bdw-rt5677.c | 18 ++++++++++++++-- sound/soc/intel/boards/cml_rt1011_rt5682.c | 8 ++++++++ sound/soc/intel/boards/kbl_rt5660.c | 17 +++++++++++++-- sound/soc/intel/boards/sof_rt5682.c | 24 ++++++++-------------- sound/soc/soc-core.c | 3 +++ sound/soc/soc-link.c | 6 ++++++ 8 files changed, 60 insertions(+), 20 deletions(-) base-commit: 39853b14 -- 2.20.1
-
Fred Oh authored
KASAN throws the following warning in rt1011.c: [ 170.777603] BUG: KASAN: stack-out-of-bounds in _find_next_bit.constprop.0+0x3e/0xf0 find_next_bit() relies on unsigned long pointer arguments, but this driver uses a type cast that generates the KASAN warning. Replace find_next_bit() and find_last_bit() with __ffs() and __fls() to pass the value and avoid casting pointers to make the warning go away. Signed-off-by: Fred Oh <fred.oh@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200622151348.28063-1-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Tzung-Bi Shih authored
Sets playback and capture constraints to S16_LE, stereo, 48kHz. Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20200623055130.159718-1-tzungbi@google.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Shengjiu Wang authored
The "ret" in fsl_easrc_set_ctx_format is not initialized, then the unknown value maybe returned by this function. Fixes: 955ac624 ("ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers") Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> Link: https://lore.kernel.org/r/1592816611-16297-1-git-send-email-shengjiu.wang@nxp.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Fred Oh authored
When removing the machine driver, the rt5682 jack handler will oops if jack detection is not disabled. The jack can be disabled in the dai link's exit(). This is symmetrical change as jack is enabled in init(). Signed-off-by: Fred Oh <fred.oh@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200622154241.29053-6-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Fred Oh authored
Move disabling jack from platform driver's remove() to dai link's exit(). This is symmetrical change as jack is enabled in init(). Signed-off-by: Fred Oh <fred.oh@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20200622154241.29053-5-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
The gpiod handling is inspired from the bdw-rt5677 code. Apply same fix to avoid reference count issue while removing modules for consistency. Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Curtis Malainey <curtis@malainey.com> Link: https://lore.kernel.org/r/20200622154241.29053-4-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
The mainline code currently prevents modules from being removed. The BE dailink .init() function calls devm_gpiod_get() using the codec component device as argument. When the machine driver is removed, the references to the gpiod are not released, and it's not possible to remove the codec driver module - which is the only entity which could free the gpiod. This conceptual deadlock can be avoided by invoking gpiod_get() in the .init() callback, and calling gpiod_put() in the exit() callback. Tested on SAMUS Chromebook with SOF driver. Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Curtis Malainey <curtis@malainey.com> Link: https://lore.kernel.org/r/20200622154241.29053-3-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Pierre-Louis Bossart authored
Some machine drivers allocate or request resources with snd_soc_link_init() phase of the card probe. These resources need to be properly released when removing a card, and this patch suggests a dual exit() callback. The exit() is invoked in soc_remove_pcm_runtime(), which is not completely symmetric with the init() invoked in soc_init_pcm_runtime(). Alternate solutions were considered, e.g. adding a .remove() callback for the platform driver, but that's not symmetrical at all and would be difficult to handle if there are more than one dailink implementing an .init(). We looked also into using .remove_dai_link() callback, but that would also be imbalanced. Note that because of the error handling in snd_soc_bind_card(), which jumps to probe_end, there is no way to guarantee the exit() is invoked with resources allocated in the init(). Prior to releasing those resources, implementations of the exit() callback shall check the resources are valid. Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Reviewed-by: Curtis Malainey <curtis@malainey.com> Link: https://lore.kernel.org/r/20200622154241.29053-2-pierre-louis.bossart@linux.intel.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 22 Jun, 2020 4 commits
-
-
Mark Brown authored
Merge series "ASoC: merge snd_soc_component_read() and snd_soc_component_read32()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: Hi Mark Because we can use "read" function which is using "regmap" or "driver", current ALSA SoC drivers are using both snd_soc_component_read() // for regmap snd_soc_component_read32() // for driver callback These are similar but needs different parameter. This patch aggressively merge snd_soc_component_read() and _read32(), and makes snd_soc_component_read/write() as generally style. New read doesn't return error if it failed, thus, it can't keep compatibility, but assuming it is not a big problem. Because 1) it will indicate error message, 2) it can do nothing anyway if it fails "read". [02/16] patch is not directly connected to read function merging, but need to be apply after [01/16]. Kuninori Morimoto (16): ASoC: soc-component: merge snd_soc_component_read() and snd_soc_component_read32() ASoC: soc-component: use io_mutex correctly ASoC: pxa: rename to snd_soc_component_read() ASoC: atmel: rename to snd_soc_component_read() ASoC: codecs: rename to snd_soc_component_read() ASoC: codecs: wcd*: rename to snd_soc_component_read() ASoC: codecs: tlv*: rename to snd_soc_component_read() ASoC: codecs: max*: rename to snd_soc_component_read() ASoC: codecs: msm*: rename to snd_soc_component_read() ASoC: codecs: alc*: rename to snd_soc_component_read() ASoC: codecs: wm*: rename to snd_soc_component_read() ASoC: codecs: rt*: rename to snd_soc_component_read() ASoC: codecs: da*: rename to snd_soc_component_read() ASoC: codecs: cs*: rename to snd_soc_component_read() ASoC: codecs: ak*: rename to snd_soc_component_read() ASoC: remove snd_soc_component_read32() include/sound/soc-component.h | 4 +- sound/soc/atmel/atmel-pdmic.c | 4 +- sound/soc/codecs/88pm860x-codec.c | 14 ++--- sound/soc/codecs/ab8500-codec.c | 8 +-- sound/soc/codecs/ad1980.c | 4 +- sound/soc/codecs/ak4458.c | 2 +- sound/soc/codecs/ak4535.c | 4 +- sound/soc/codecs/ak4613.c | 4 +- sound/soc/codecs/ak4671.c | 8 +-- sound/soc/codecs/alc5623.c | 6 +- sound/soc/codecs/alc5632.c | 6 +- sound/soc/codecs/arizona.c | 18 +++--- sound/soc/codecs/cs4270.c | 10 +-- sound/soc/codecs/cs42l42.c | 2 +- sound/soc/codecs/cs42l51.c | 8 +-- sound/soc/codecs/cs42l73.c | 4 +- sound/soc/codecs/cs47l35.c | 10 +-- sound/soc/codecs/cs47l85.c | 10 +-- sound/soc/codecs/da7210.c | 24 ++++---- sound/soc/codecs/da7213.c | 24 ++++---- sound/soc/codecs/da7218.c | 34 +++++------ sound/soc/codecs/da7219-aad.c | 16 ++--- sound/soc/codecs/da7219.c | 20 +++--- sound/soc/codecs/da732x.c | 18 +++--- sound/soc/codecs/da9055.c | 14 ++--- sound/soc/codecs/inno_rk3036.c | 6 +- sound/soc/codecs/madera.c | 49 +++------------ sound/soc/codecs/max98088.c | 12 ++-- sound/soc/codecs/max98090.c | 20 +++--- sound/soc/codecs/max98095.c | 16 ++--- sound/soc/codecs/max9850.c | 2 +- sound/soc/codecs/msm8916-wcd-analog.c | 14 ++--- sound/soc/codecs/msm8916-wcd-digital.c | 16 ++--- sound/soc/codecs/nau8822.c | 6 +- sound/soc/codecs/rt1305.c | 2 +- sound/soc/codecs/rt298.c | 2 +- sound/soc/codecs/rt5616.c | 2 +- sound/soc/codecs/rt5631.c | 32 +++++----- sound/soc/codecs/rt5640.c | 10 +-- sound/soc/codecs/rt5645.c | 16 ++--- sound/soc/codecs/rt5651.c | 6 +- sound/soc/codecs/rt5659.c | 14 ++--- sound/soc/codecs/rt5660.c | 2 +- sound/soc/codecs/rt5663.c | 34 +++++------ sound/soc/codecs/rt5665.c | 16 ++--- sound/soc/codecs/rt5668.c | 16 ++--- sound/soc/codecs/rt5670.c | 18 +++--- sound/soc/codecs/rt5682-i2c.c | 2 +- sound/soc/codecs/rt5682.c | 19 +++--- sound/soc/codecs/sgtl5000.c | 16 ++--- sound/soc/codecs/sta32x.c | 4 +- sound/soc/codecs/tas2552.c | 4 +- sound/soc/codecs/tas5720.c | 4 +- sound/soc/codecs/tda7419.c | 9 +-- sound/soc/codecs/tlv320aic23.c | 14 ++--- sound/soc/codecs/tlv320aic26.c | 4 +- sound/soc/codecs/tlv320aic32x4.c | 16 ++--- sound/soc/codecs/tlv320aic3x.c | 14 ++--- sound/soc/codecs/tscs42xx.c | 4 +- sound/soc/codecs/tscs454.c | 24 ++------ sound/soc/codecs/wcd-clsh-v2.c | 2 +- sound/soc/codecs/wcd9335.c | 48 +++++++-------- sound/soc/codecs/wcd934x.c | 52 ++++++++-------- sound/soc/codecs/wm2200.c | 4 +- sound/soc/codecs/wm5100.c | 18 +++--- sound/soc/codecs/wm5110.c | 6 +- sound/soc/codecs/wm8350.c | 32 +++++----- sound/soc/codecs/wm8400.c | 50 +++++++-------- sound/soc/codecs/wm8510.c | 28 ++++----- sound/soc/codecs/wm8523.c | 6 +- sound/soc/codecs/wm8580.c | 12 ++-- sound/soc/codecs/wm8711.c | 8 +-- sound/soc/codecs/wm8728.c | 10 +-- sound/soc/codecs/wm8731.c | 6 +- sound/soc/codecs/wm8750.c | 8 +-- sound/soc/codecs/wm8753.c | 42 ++++++------- sound/soc/codecs/wm8770.c | 2 +- sound/soc/codecs/wm8776.c | 2 +- sound/soc/codecs/wm8804.c | 2 +- sound/soc/codecs/wm8900.c | 22 +++---- sound/soc/codecs/wm8903.c | 20 +++--- sound/soc/codecs/wm8904.c | 16 ++--- sound/soc/codecs/wm8940.c | 32 +++++----- sound/soc/codecs/wm8955.c | 2 +- sound/soc/codecs/wm8958-dsp2.c | 18 +++--- sound/soc/codecs/wm8960.c | 20 +++--- sound/soc/codecs/wm8961.c | 58 +++++++++--------- sound/soc/codecs/wm8962.c | 31 +++++----- sound/soc/codecs/wm8971.c | 8 +-- sound/soc/codecs/wm8974.c | 24 ++++---- sound/soc/codecs/wm8978.c | 12 ++-- sound/soc/codecs/wm8983.c | 8 +-- sound/soc/codecs/wm8985.c | 8 +-- sound/soc/codecs/wm8988.c | 12 ++-- sound/soc/codecs/wm8990.c | 18 +++--- sound/soc/codecs/wm8991.c | 38 ++++++------ sound/soc/codecs/wm8993.c | 28 ++++----- sound/soc/codecs/wm8994.c | 60 +++++++++--------- sound/soc/codecs/wm8995.c | 16 ++--- sound/soc/codecs/wm8996.c | 30 ++++----- sound/soc/codecs/wm8998.c | 8 +-- sound/soc/codecs/wm9081.c | 36 +++++------ sound/soc/codecs/wm9090.c | 4 +- sound/soc/codecs/wm9713.c | 2 +- sound/soc/codecs/wm_hubs.c | 30 ++++----- sound/soc/fsl/fsl_audmix.c | 10 +-- sound/soc/fsl/fsl_easrc.c | 5 +- sound/soc/meson/aiu-encoder-i2s.c | 3 +- sound/soc/meson/aiu-fifo-i2s.c | 3 +- sound/soc/meson/aiu-fifo.c | 3 +- sound/soc/pxa/mioa701_wm9713.c | 8 +-- sound/soc/soc-ac97.c | 7 +-- sound/soc/soc-component.c | 84 ++++++++++++++------------ sound/soc/soc-dapm.c | 31 ++++------ sound/soc/soc-ops.c | 43 +++---------- 115 files changed, 854 insertions(+), 963 deletions(-) -- 2.25.1
-
Vlad Karpovich authored
Exposed additional mixer controls to select calibration or diagnostic firmware. 'Calibration' --> chip-dsp<id>-spk-cali.wmfw (.bin) 'Diagnostic' --> chip-dsp<id>-spk-diag.wmfw (.bin) Signed-off-by: Vlad Karpovich <Vlad.Karpovich@cirrus.com> Signed-off-by: David Rhodes <david.rhodes@cirrus.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200619212651.2739-1-david.rhodes@cirrus.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Kuninori Morimoto authored
No driver is using snd_soc_component_read32() anymore. This patch removes it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/877dw74mbv.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Kuninori Morimoto authored
We need to use snd_soc_component_read() instead of snd_soc_component_read32() This patch renames _read32() to _read() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/878sgn4mc0.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: Mark Brown <broonie@kernel.org>
-