- 25 Oct, 2021 2 commits
-
-
Geert Uytterhoeven authored
Convert the Wolfson WM8962 Ultra-Low Power Stereo CODEC Device Tree binding documentation to json-schema. Add missing *-supply and port properties. Update the example. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/b0868d2f62fd57499c79d96298e99e5f9e4fbc76.1634565154.git.geert+renesas@glider.beSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
Add acpi_mach struct for renoir platform to select machine driver based on codec and amp ACPI id. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211025074808.471333-1-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 23 Oct, 2021 4 commits
-
-
Mark Brown authored
Merge series "ASoC: Add common modules support for ACP hw block" from Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>: changes since v3: - rebase and fixes merge conflict. - Fixed kernel autobot warning. Ajit Kumar Pandey (8): ASoC: amd: Add common framework to support I2S on ACP SOC ASoC: amd: acp: Add I2S support on Renoir platform ASoC: amd: acp: Add callback for machine driver on ACP ASoC: amd: acp: Add generic machine driver support for ACP cards ASoC: amd: acp: Add legacy sound card support for Chrome audio ASoC: amd: acp: Add SOF audio support on Chrome board ASoC: amd: acp: Add support for Maxim amplifier codec ASoC: amd: acp: Add support for RT5682-VS codec sound/soc/amd/Kconfig | 2 + sound/soc/amd/Makefile | 1 + sound/soc/amd/acp/Kconfig | 51 +++ sound/soc/amd/acp/Makefile | 26 ++ sound/soc/amd/acp/acp-i2s.c | 340 +++++++++++++++ sound/soc/amd/acp/acp-legacy-mach.c | 104 +++++ sound/soc/amd/acp/acp-mach-common.c | 600 +++++++++++++++++++++++++++ sound/soc/amd/acp/acp-mach.h | 57 +++ sound/soc/amd/acp/acp-platform.c | 315 ++++++++++++++ sound/soc/amd/acp/acp-renoir.c | 144 +++++++ sound/soc/amd/acp/acp-sof-mach.c | 131 ++++++ sound/soc/amd/acp/amd.h | 146 +++++++ sound/soc/amd/acp/chip_offset_byte.h | 76 ++++ 13 files changed, 1993 insertions(+) create mode 100644 sound/soc/amd/acp/Kconfig create mode 100644 sound/soc/amd/acp/Makefile create mode 100644 sound/soc/amd/acp/acp-i2s.c create mode 100644 sound/soc/amd/acp/acp-legacy-mach.c create mode 100644 sound/soc/amd/acp/acp-mach-common.c create mode 100644 sound/soc/amd/acp/acp-mach.h create mode 100644 sound/soc/amd/acp/acp-platform.c create mode 100644 sound/soc/amd/acp/acp-renoir.c create mode 100644 sound/soc/amd/acp/acp-sof-mach.c create mode 100644 sound/soc/amd/acp/amd.h create mode 100644 sound/soc/amd/acp/chip_offset_byte.h -- 2.25.1
-
Mark Brown authored
Merge series "Add Yellow Carp platform ASoC driver" from Vijendar Mukunda <Vijendar.Mukunda@amd.com>: Yellow Carp platform is new APU series based on acp6.x design. This patch set adds an ASoC driver for the ACP (Audio CoProcessor) block on AMD Yellow Carp APU with DMIC endpoint support. changes since v1: - fixed SPDX commenting style in acp6x pci driver. - fixed Copyright commenting style in acp6x pci driver, pdm dma driver and machine driver files. - fixed local variable check logic in acp6x_power_on() function. - fixed Kconfig indentation issue - removed irq_flag local variable in irq handler. - add dmi info check in machine driver probe Vijendar Mukunda (13): ASoC: amd: add Yellow Carp ACP6x IP register header ASoC: amd: add Yellow Carp ACP PCI driver ASoC: amd: add acp6x init/de-init functions ASoC: amd: add platform devices for acp6x pdm driver and dmic driver ASoC: amd: add acp6x pdm platform driver ASoC: amd: add acp6x irq handler ASoC: amd: add acp6x pdm driver dma ops ASoC: amd: add acp6x pci driver pm ops ASoC: amd: add acp6x pdm driver pm ops ASoC: amd: enable Yellow carp acp6x drivers build ASoC: amd: create platform device for acp6x machine driver ASoC: amd: add YC machine driver using dmic ASoC: amd: enable Yellow Carp platform machine driver build sound/soc/amd/Kconfig | 21 + sound/soc/amd/Makefile | 1 + sound/soc/amd/yc/Makefile | 9 + sound/soc/amd/yc/acp6x-mach.c | 194 ++++++++++ sound/soc/amd/yc/acp6x-pdm-dma.c | 448 ++++++++++++++++++++++ sound/soc/amd/yc/acp6x.h | 107 ++++++ sound/soc/amd/yc/acp6x_chip_offset_byte.h | 444 +++++++++++++++++++++ sound/soc/amd/yc/pci-acp6x.c | 338 ++++++++++++++++ 8 files changed, 1562 insertions(+) create mode 100644 sound/soc/amd/yc/Makefile create mode 100644 sound/soc/amd/yc/acp6x-mach.c create mode 100644 sound/soc/amd/yc/acp6x-pdm-dma.c create mode 100644 sound/soc/amd/yc/acp6x.h create mode 100644 sound/soc/amd/yc/acp6x_chip_offset_byte.h create mode 100644 sound/soc/amd/yc/pci-acp6x.c -- 2.25.1
-
Mark Brown authored
Merge series "ASoC: meson: axg: fix TDM channel order sync" from Jerome Brunet <jbrunet@baylibre.com>: On the Amlogic AXG series, the TODDR FIFO may get out of sync with the TDM decoder if the decoder is started before the FIFO. The channel appears shifted in memory in an unpredictable way. To fix this, the trick is to start the FIFO before the TDM decoder. This way the FIFO is already waiting when the 1st channel is produced and it is correctly placed in memory. Jerome Brunet (2): ASoC: meson: axg-card: make links nonatomic ASoC: meson: axg-tdm-interface: manage formatters in trigger sound/soc/meson/axg-card.c | 1 + sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) -- 2.33.0
-
Derek Fang authored
Use 0.75db/step of DAC volume instead of 1.5 to get a more smooth volume curve. Signed-off-by: Derek Fang <derek.fang@realtek.com> Link: https://lore.kernel.org/r/20211021120303.4601-1-derek.fang@realtek.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 22 Oct, 2021 4 commits
-
-
Jerome Brunet authored
So far, the formatters have been reset/enabled using the .prepare() callback. This was done in this callback because walking the formatters use a mutex so it could not be done in .trigger(), which is atomic by default. It turns out there is a problem on capture path of the AXG series. The FIFO may get out of sync with the TDM decoder if the IP are not enabled in a specific order. The FIFO must be enabled before the formatter starts producing data. IOW, we must deal with FE before the BE. The .prepare() callback is called on the BEs before the FE so it is not OK for the AXG. The .trigger() callback order can be configured, and it deals with the FE before the BEs by default. To solve our problem, we just need to start and stop the formatters from the .trigger() callback. It is OK do so now that the links have been made 'nonatomic' in the card driver. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Jerome Brunet authored
Non atomic operations need to be performed in the trigger callback of the TDM interfaces. Those are BEs but what matters is the nonatomic flag of the FE in the DPCM context. Just set nonatomic for everything so, at least, it is clear. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Richard Fitzgerald authored
The driver has runtime_suspend and runtime_resume callbacks, but pm_runtime is never enabled so these functions won't be called. They could not be used anyway because the runtime_suspend would cause jack detect to stop working. These functions are unused - delete them. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20211018164431.5871-1-rf@opensource.cirrus.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Julian Braha authored
When SND_SOC_SC7180 or SND_SOC_STORM is selected, and GPIOLIB is not selected, Kbuild gives the following warning: WARNING: unmet direct dependencies detected for SND_SOC_MAX98357A Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n] Selected by [y]: - SND_SOC_STORM [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_QCOM [=y] - SND_SOC_SC7180 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_QCOM [=y] && I2C [=y] This is because SND_SOC_MAX98357A is selected by SND_SOC_STORM and SND_SOC_SC7180, but these config options do not select or depend on GPIOLIB, despite SND_SOC_MAX98357A depending on GPIOLIB. These unmet dependency bugs were detected by Kismet, a static analysis tool for Kconfig. Please advise if this is not the appropriate solution. Signed-off-by: Julian Braha <julianbraha@gmail.com> Link: https://lore.kernel.org/r/20211010215627.17869-1-julianbraha@gmail.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 21 Oct, 2021 1 commit
-
-
Mark Brown authored
-
- 20 Oct, 2021 10 commits
-
-
Mark Brown authored
Merge series "ASoC: qcom: sm8250: add support for TX and RX Macro dais" from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>: This patchset adds support for testing WCD938X connected via TX and RX Macros on SM8250 MTP. Srinivas Kandagatla (2): ASoC: qcom: sm8250: add support for TX and RX Macro dais ASoC: qcom: sm8250: Add Jack support sound/soc/qcom/sm8250.c | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) -- 2.21.0
-
Ajit Kumar Pandey authored
In newer variants primary codec is rt5682vs. Add support for newer codec variants in generic machine driver module and define driver data to register SOF sound card. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-9-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
In newer chrome boards we have max98360a as an amplifier codec. Add support for max98360a in generic machine driver and configure driver data to enable SOF sound card support on newer boards . Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-8-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
Chrome board has RT5682 codec and RT1019 amp connected to I2S SP controller on ACP hw. Also it support DMIC capture endpoints with inbuilt pdm controller on ACP hw block. Add driver module to create backend dai links for sof dsp core. We pass driver data with audio end points configuration to register sound cards and create device nodes for all audio endpoints. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-7-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
Renoir based Chrome board has RT5682 as primary headset codec and RT1019 amp device connected to I2SSP ACP i2s controller. Add driver to register legacy sound card devices on Chrome board. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-6-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
We have machines with different audio endpoints configurations across various distributions. We need to support multiple sound cards for different combinations of I2S instance and codecs hw. Now we also need to support SOF-DSP endpoints based sound cards. All such card combinations slightly differs in terms of machine ops callback. This patch adds ACP generic machine driver module that exposes method to create ACP cards dai links and define new ops for audio endpoints configurations. Initially we have added dailink support for RT5682 and RT1019 codec connection with ACP I2S_SP instance. We will add newer codecs in this module to use this for all AMD's ACP block sound cards supports in future. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-5-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
Add method to select and register machine driver for acp platform based on ACPI ID. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-4-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
Add I2S dai driver for Renoir platform and register with common acp framework to support non dsp I2S use case on Renoir. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-3-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Ajit Kumar Pandey authored
We are using legacy way of exposing dais and DMA configuration that requires separate driver modules for various ACP SOC with almost similar hw configuration. Moreover the legacy approach requires separate I2S and DMA module platform devices registration and need machine specific quirk to control various I2S endpoints. Add generic dai driver and platform driver for I2S controller on ACP hw block. This common framework can be used by various ACP platform devices that shares common specs. Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com> Link: https://lore.kernel.org/r/20211019070938.5076-2-AjitKumar.Pandey@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Sugar Zhang authored
This reverts commit 75b31192. The original purpose of customized pcm was to config prealloc buffer size flexibly. but, we can do the same thing by soc-generic-dmaengine-pcm. And the generic one can generated the better config by querying DMA capabilities from dmaengine driver rather than the Hard-Coded one. e.g. the customized one: static const struct snd_pcm_hardware snd_rockchip_hardware = { .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_INTERLEAVED, ... the generic one: ret = dma_get_slave_caps(chan, &dma_caps); if (ret == 0) { if (dma_caps.cmd_pause && dma_caps.cmd_resume) hw.info |= SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME; if (dma_caps.residue_granularity <= DMA_RESIDUE_GRANULARITY_SEGMENT) hw.info |= SNDRV_PCM_INFO_BATCH; ... So, let's revert back to use the generic dmaengine pcm. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> Reviewed-by: John Keeping <john@metanate.com> Link: https://lore.kernel.org/r/1632792957-80428-1-git-send-email-sugar.zhang@rock-chips.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
- 18 Oct, 2021 19 commits
-
-
Mark Brown authored
-
Srinivas Kandagatla authored
WCD938X on SM8250 MTP is connected via TX macro which has MBHC support, So add this jack support in the soundcard driver too. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20211006172745.22103-3-srinivas.kandagatla@linaro.orgSigned-off-by: Mark Brown <broonie@kernel.org>
-
Srinivas Kandagatla authored
On SM8250 MTP boards WCD938x codec is connected via TX and RX Macros, so add support for this dais in the soundcard driver. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20211006172745.22103-2-srinivas.kandagatla@linaro.orgSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
This patch enables Yellow Carp platform machine driver build. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-14-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add Yellow Carp platform machine driver using dmic. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-13-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Create platform device for acp6x machine driver. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-12-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Yellow Carp ACP6x drivers can be built by selecting necessary kernel config option. The patch enables build support of the same. Signed-off-by: Vijendar Mukunda<Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-11-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add acp6x pdm driver pm ops. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-10-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add acp6x pci driver pm ops. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-9-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
This patch adds PDM driver DMA operations. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-8-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add ACP6x irq handler for handling irq events for ACP IP. Add pdm irq events handling. Whenever audio data equal to the PDM watermark level are consumed, interrupt is generated. Acknowledge the interrupt. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-7-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
PDM platform driver binds to the platform device created by ACP6x PCI device. PDM driver registers ALSA DMA and CPU DAI components with ASoC framework. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-6-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
ACP6.x IP has PDM decoder block. Create a platform device for it, so that the PDM platform driver can be bound to this device. Pass PCI resources like MMIO to this platform device. Create a platform device for generic dmic codec driver. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-5-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add Yellow Carp platform ACP6x PCI driver init/deinit functions. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-4-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
ACP is a PCI audio device. This patch adds PCI driver to bind to this device and get PCI resources. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-3-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Vijendar Mukunda authored
Add register header for ACP6x IP in Yellow Carp platform. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20211018112044.1705805-2-Vijendar.Mukunda@amd.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Mark Brown authored
Merge series "ASoC: cleanup / tidyup soc-pcm/core/component" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: Hi Mark These are not a big deal, but cleanup / tidyup patch for ALSA SoC. Kuninori Morimoto (5): ASoC: soc-pcm: tidyup soc_pcm_hw_clean() - step1 ASoC: soc-pcm: tidyup soc_pcm_hw_clean() - step2 ASoC: soc-component: add snd_soc_component_is_codec() ASoC: soc-core: tidyup empty function ASoC: soc-core: accept zero format at snd_soc_runtime_set_dai_fmt() include/sound/soc-component.h | 5 +++ sound/soc/generic/simple-card-utils.c | 4 +-- sound/soc/meson/meson-codec-glue.c | 3 -- sound/soc/soc-core.c | 51 ++++++++------------------- sound/soc/soc-pcm.c | 13 +++---- 5 files changed, 26 insertions(+), 50 deletions(-) -- 2.25.1
-
Tzung-Bi Shih authored
Commit f07c776f ("arm64: dts: mediatek: Move reset controller constants into common location") moves the reset controller headers. However, it forgot to rename the DT example in mt8192-afe-pcm.yaml. Renames the DT example to pass dt_binding_check. Fixes: f07c776f ("arm64: dts: mediatek: Move reset controller constants into common location") Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20211018101608.3818840-1-tzungbi@google.comSigned-off-by: Mark Brown <broonie@kernel.org>
-
Nicolas Frattaroli authored
During development of V5 of the i2s-tdm patch series, I replaced the atomic refcount with a regular integer, as it was only ever accessed within a spinlock. Foolishly, I got the semantics of atomic_dec_and_test wrong, which resulted in a test for 0 actually becoming a test for >0. The result was that setting the audio frequency broke; switching from 44100 Hz audio playback to 96000 Hz audio playback would garble the sound most unpleasantly. Fix this by checking for --refcount == 0, which is what it should have been all along. Fixes: 081068fd ("ASoC: rockchip: add support for i2s-tdm controller") Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com> Link: https://lore.kernel.org/r/20211015210730.308946-1-frattaroli.nicolas@gmail.comSigned-off-by: Mark Brown <broonie@kernel.org>
-