summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: Intel: byt/cht: set pm ops dynamicallyPierre-Louis Bossart2020-11-199-27/+37
| | | | | | | | | | | | | | | The Atom/SST driver does not rely on ASoC power management, but the SOF driver does. Rather than using a hard-coded build-time assignment, we can set this pm_ops dynamically depending on what the parent is. That will remove the last build-time dependency and allow for coexistence of both SST and SOF drivers for Baytrail/Cherrytrail. 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@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: boards: byt/cht: set card and driver name at run timePierre-Louis Bossart2020-11-199-60/+141
| | | | | | | | | | | | | | To avoid hard-coded variations between SOF and SST drivers, set the card name and driver dynamically depending on the parent type. This is the first pass required to let distributions select which drivers to use with kernel parameters instead of build-time selection. 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@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-6-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: soc-acpi: add helper to identify parent driver.Pierre-Louis Bossart2020-11-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | Intel machine drivers are used by parent platform drivers based on closed-source firmware (Atom/SST and catpt) and SOF-based ones. In some cases for ACPI-based platforms, the behavior of machine drivers needs to be modified depending on the parent type, typically for card names and power management. An initial solution based on passing a boolean flag as a platform device parameter was tested earlier. Since it looked overkill, this patch suggests instead a simple string comparison to identify an SOF parent device/driver. Suggested-by: Kai Vehmanen <kai.vehmanen@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@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ALSA: hda: intel-dsp-config: add helper for ACPI DSP driver selectionPierre-Louis Bossart2020-11-192-0/+84
| | | | | | | | | | | | | | | | | | | | | | Mirror capabilities provided for PCI devices, so that distributions can select which ACPI driver is loaded at run-time with kernel parameters and DMI tables instead of forcing a build-time selection. The "legacy" option supported for HDaudio has no meaning here and will be ignored. The 'SST' driver based on closed-source firmware has the priority to avoid any impact on users, and the choice to use SOF is strictly opt-in. This may change at some point when the 'SST' driver is deprecated on Baytrail/Cherrytrail. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Acked-by: Takashi Iwai <tiwai@suse.de> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-4-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bdw-rt5677: add missing pm_opsPierre-Louis Bossart2020-11-191-0/+1
| | | | | | | | | | | | | For some reason this ops is missing in 2 out of the 3 broadwell drivers. Add to make sure ASoC takes care of power management. Tested-by: Cezary Rojewski <cezary.rojewski@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@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: broadwell: add missing pm_opsPierre-Louis Bossart2020-11-191-0/+1
| | | | | | | | | | | | | For some reason this ops is missing in 2 out of the 3 broadwell drivers. Add to make sure ASoC takes care of power management. Tested-by: Cezary Rojewski <cezary.rojewski@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@linux.intel.com> Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Link: https://lore.kernel.org/r/20201112223825.39765-2-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* Merge series "ASoC: soc-component: add snd_soc_component_xxx()" from ↵Mark Brown2020-11-183-237/+303
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: Hi Mark These are v2 of snd_soc_component_compr_xxx() function patches. I think component related function should be implemented at soc-component.c, otherwise it is confusable to read. These are for it. v1 -> v2 - fixup function return timing on snd_soc_component_compr_get_params() snd_soc_component_compr_get_metadata() - use mutex at compr side on snd_soc_component_compr_get_caps() snd_soc_component_compr_get_codec_caps() snd_soc_component_compr_copy() Link: https://lore.kernel.org/r/878sb78ac4.wl-kuninori.morimoto.gx@renesas.com Kuninori Morimoto (12): ASoC: soc-component: add snd_soc_component_compr_open() ASoC: soc-component: add snd_soc_component_compr_free() ASoC: soc-component: add snd_soc_component_compr_trigger() ASoC: soc-component: add snd_soc_component_compr_set_params() ASoC: soc-component: add snd_soc_component_compr_get_params() ASoC: soc-component: add snd_soc_component_compr_get_caps() ASoC: soc-component: add snd_soc_component_compr_get_codec_caps() ASoC: soc-component: add snd_soc_component_compr_ack() ASoC: soc-component: add snd_soc_component_compr_pointer() ASoC: soc-component: add snd_soc_component_compr_copy() ASoC: soc-component: add snd_soc_component_compr_set_metadata() ASoC: soc-component: add snd_soc_component_compr_get_metadata() include/sound/soc-component.h | 22 +++ sound/soc/soc-component.c | 255 ++++++++++++++++++++++++++++++++ sound/soc/soc-compress.c | 263 ++++------------------------------ 3 files changed, 303 insertions(+), 237 deletions(-) -- 2.25.1
| * ASoC: soc-component: add snd_soc_component_compr_get_metadata()Kuninori Morimoto2020-11-183-12/+24
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_get_metadata(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87zh3l6gl8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_set_metadata()Kuninori Morimoto2020-11-183-14/+25
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_set_metadata(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/871rgx7v5t.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_copy()Kuninori Morimoto2020-11-183-24/+27
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_copy(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87361d7v5z.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_pointer()Kuninori Morimoto2020-11-183-11/+24
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_pointer(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/874klt7v65.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_ack()Kuninori Morimoto2020-11-183-13/+23
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_ack(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/875z697v6c.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_get_codec_caps()Kuninori Morimoto2020-11-183-25/+28
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_get_codec_caps(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/877dqp7v6i.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_get_caps()Kuninori Morimoto2020-11-183-25/+28
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_get_caps(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/878sb57v6q.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_get_params()Kuninori Morimoto2020-11-183-12/+24
| | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch adds snd_soc_component_compr_get_params(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87a6vl7v6x.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_set_params()Kuninori Morimoto2020-11-183-23/+25
| | | | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch moves soc-compress soc_compr_components_set_params() to soc-component as snd_soc_component_compr_set_params(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87blg17v74.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_trigger()Kuninori Morimoto2020-11-183-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch moves soc-compress soc_compr_components_trigger() to soc-component as snd_soc_component_compr_trigger(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87d00h7v7k.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_free()Kuninori Morimoto2020-11-183-25/+24
| | | | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch moves soc-compress soc_compr_components_free() to soc-component as snd_soc_component_compr_free(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87eekx7v7r.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: soc-component: add snd_soc_component_compr_open()Kuninori Morimoto2020-11-183-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | component related function should be implemented at soc-component.c. This patch moves soc-compress soc_compr_components_open() to soc-component as snd_soc_component_compr_open(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/87ft5d7v7x.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge series "ASoC: graph card schema rework" from Rob Herring ↵Mark Brown2020-11-186-134/+144
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <robh@kernel.org>: This series updates Sameer's patch to repartition the graph card binding schema and incorporate the OF graph schema. The schema was also mixing card node and DAI node properties, so I've split the DAI part (the 'port' node) into a separate schema. There's another problem that 'frame-master' and 'bitclock-master' have inconsistent types of boolean and phandle. Having the properties just point to the local or remote endpoint within an endpoint node is kind of pointless. We should have gone with just boolean, but looks like we already have several users. MMP OLPC is the one platform using boolean, but it happens to work because the properties are effectively ignored and CPU DAI as the master is the default. Rob Rob Herring (3): ASoC: dt-bindings: Use OF graph schema ASoC: dt-bindings: marvell,mmp-sspa: Use audio-graph-port schema ASoC: dt-bindings: Refine 'frame-master' and 'bitclock-master' type Sameer Pujar (1): ASoC: audio-graph-card: Refactor schema .../bindings/sound/audio-graph-card.yaml | 106 +----------------- .../bindings/sound/audio-graph-port.yaml | 72 ++++++++++++ .../bindings/sound/audio-graph.yaml | 45 ++++++++ .../bindings/sound/marvell,mmp-sspa.yaml | 25 +---- .../bindings/sound/renesas,rsnd.yaml | 12 +- .../bindings/sound/simple-card.yaml | 6 +- 6 files changed, 132 insertions(+), 134 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-port.yaml create mode 100644 Documentation/devicetree/bindings/sound/audio-graph.yaml base-commit: e2e99930ec006c6fe1d62af339a765ade71a0d9a -- 2.25.1
| * | ASoC: dt-bindings: Refine 'frame-master' and 'bitclock-master' typeRob Herring2020-11-182-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'frame-master' and 'bitclock-master' are only a single phandle, so use the more specific 'phandle' type definition instead. Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Sameer Pujar <spujar@nvidia.com> Link: https://lore.kernel.org/r/20201117013349.2458416-5-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: dt-bindings: marvell, mmp-sspa: Use audio-graph-port schemaRob Herring2020-11-181-22/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have a graph schema, reference it from the marvell,mmp-sspa schema. Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Lubomir Rintel <lkundrak@v3.sk> Link: https://lore.kernel.org/r/20201117013349.2458416-4-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: audio-graph-card: Refactor schemaSameer Pujar2020-11-184-108/+141
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There can be customized sound cards which are based on generic audio graph. In such cases most of the stuff is reused from generic audio graph. To facilitate this, refactor audio graph schema into multiple files and the base schema can be reused for specific sound cards. The graph card nodes and port nodes are separate entities, so they should be separate schemas. Signed-off-by: Sameer Pujar <spujar@nvidia.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> [robh: Split out port schema. Add graph.yaml in subsequent commit] Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Sameer Pujar <spujar@nvidia.com> Link: https://lore.kernel.org/r/20201117013349.2458416-2-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: mt8192: revert "add audio afe document"Jiaxin Yu2020-11-181-100/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1afc60e00de3abbb6c559da409c5c1bb8c1d98ec (dt-bindings: mediatek: mt8192: add audio afe document). https://mailman.alsa-project.org/pipermail/alsa-devel/2020-November/176873.html These dependency are continuing to upstream, I will revert this patch first. After the dependencies are merged, I will send 'mt8192-afe-pcm.yaml' again. [Massaged commit message to put hint about issue being fixed into there rather than the trailer -- broonie] Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Acked-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/1605081920-11848-1-git-send-email-jiaxin.yu@mediatek.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: samsung: fix platform_no_drv_owner.cocci warningsZou Wei2020-11-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | ./sound/soc/samsung/midas_wm1811.c:534:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Zou Wei <zou_wei@huawei.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/1605529740-68757-1-git-send-email-zou_wei@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: mmp-sspa: clear transmit phase bit for non-stereo formatsKyle Russell2020-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | The transmit phase register value is never cleared during hw params. So once hw params sets this bit to handle a two channel format, it remains configured for dual-phase, which is not desirable for mono playback. Signed-off-by: Kyle Russell <bkylerussell@gmail.com> Link: https://lore.kernel.org/r/20201106145905.365903-1-bkylerussell@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: wcd9335: Remove unnecessary conversion to boolKaixu Xia2020-11-181-1/+1
|/ | | | | | | | | | | | The '>=' expression itself is bool, no need to convert it to bool. Fix the following coccicheck warning: ./sound/soc/codecs/wcd9335.c:3982:25-30: WARNING: conversion to bool not needed here Reported-by: Tosk Robot <tencent_os_robot@tencent.com> Signed-off-by: Kaixu Xia <kaixuxia@tencent.com> Link: https://lore.kernel.org/r/1604652816-1330-1-git-send-email-kaixuxia@tencent.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Fix 7/8 spaces indentation in KconfigGeert Uytterhoeven2020-11-175-19/+19
| | | | | | | | Some entries used 7 or 8 spaces instead if a single TAB. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Link: https://lore.kernel.org/r/20201110174904.3413846-1-geert@linux-m68k.org Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: intel: SND_SOC_INTEL_KEEMBAY should depend on ARCH_KEEMBAYGeert Uytterhoeven2020-11-171-1/+1
| | | | | | | | | | | | The Intel Keem Bay audio module is only present on Intel Keem Bay SoCs. Hence add a dependency on ARCH_KEEMBAY, to prevent asking the user about this driver when configuring a kernel without Intel Keem Bay platform support. Fixes: c544912bcc2dc806 ("ASoC: Intel: Add makefiles and kconfig changes for KeemBay") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20201110145001.3280479-1-geert+renesas@glider.be Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: fsl: SND_SOC_FSL_AUD2HTX should depend on ARCH_MXCGeert Uytterhoeven2020-11-171-0/+1
| | | | | | | | | | | | The Freescale/NXP AUDIO TO HDMI TX module is only present on NXP i.MX 8 Series SoCs. Hence add a dependency on ARCH_MXC, to prevent asking the user about this driver when configuring a kernel without i.MX 8 platform support. Fixes: 8a24c834c053ef1b ("ASoC: fsl_aud2htx: Add aud2htx module driver") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20201110145120.3280658-1-geert+renesas@glider.be Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoc: adi: Kconfig: Remove depends on for ADI reference designsBogdan Togorean2020-11-171-1/+0
| | | | | | | | | | | | | | Audio ADI reference designs are also used on some ZynqMP boards, and can also be used on Intel FPGA boards and also on some more complex FPGA combinations (FPGA cards connected through PCIe). This change removes the dependency on Microblaze and Zynq architectures to allow the usage of this driver for the systems described above. Signed-off-by: Bogdan Togorean <bogdan.togorean@analog.com> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Link: https://lore.kernel.org/r/20201110152213.37811-1-alexandru.ardelean@analog.com Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: adau1977: convert text binding to yaml formatAlexandru Ardelean2020-11-172-61/+92
| | | | | | | | | | This change converts the old device-tree binding for ADAU1977 from text format to the new yaml format. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20201110084754.46756-1-alexandru.ardelean@analog.com Signed-off-by: Mark Brown <broonie@kernel.org>
* Merge series "ASoC: Intel: catpt: Offload fixes and code optimization" from ↵Mark Brown2020-11-164-123/+74
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cezary Rojewski <cezary.rojewski@intel.com>: First two of the series address bugs connected mainly to offload streams: - scenarios with very low buffer sizes: RESET_STREAM IPC timeouts - fix lp clock selection when switching between PAUSE <-> RESUME states: glitches on first offload when no additional stream is opened simultaneously Follow ups are: code reduction and optimization oriented patches. This has been foretold in: [PATCH v10 00/14] ASoC: Intel: Catpt - Lynx and Wildcat point https://www.spinics.net/lists/alsa-devel/msg116440.html Note: LPT power up/down sequences might get aligned with WPT once enough testing is done as capabilities are shared for both DSPs. First, optimize applying of user settings - prevent redundand calls from happening - and then as mentioned above, streamline power on/off sequence for LPT and WPT. Cezary Rojewski (5): ASoC: Intel: catpt: Skip position update for unprepared streams ASoC: Intel: catpt: Correct clock selection for dai trigger ASoC: Intel: catpt: Optimize applying user settings ASoC: Intel: catpt: Streamline power routines across LPT and WPT ASoC: Intel: catpt: Cleanup after power routines streamlining sound/soc/intel/catpt/core.h | 10 ++- sound/soc/intel/catpt/device.c | 18 +++--- sound/soc/intel/catpt/dsp.c | 56 ++-------------- sound/soc/intel/catpt/pcm.c | 113 ++++++++++++++++----------------- 4 files changed, 74 insertions(+), 123 deletions(-) -- 2.17.1 base-commit: 3650b228f83adda7e5ee532e2b90429c03f7b9ec
| * ASoC: Intel: catpt: Cleanup after power routines streamliningCezary Rojewski2020-11-162-50/+0
| | | | | | | | | | | | | | | | | | With LPT switching to WPT-based power on/off routines, functions that have been previously used by it are rendered redundant so remove them. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201116133332.8530-6-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: Intel: catpt: Streamline power routines across LPT and WPTCezary Rojewski2020-11-163-16/+18
| | | | | | | | | | | | | | | | | | | | There is no need for separate power on/off routines for LPT and WPT as as the protocol is shared for both platforms. Make WPT routines generic and reuse them in LPT case too. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201116133332.8530-5-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: Intel: catpt: Optimize applying user settingsCezary Rojewski2020-11-161-52/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial user settings such as volume control need to be applied only once after stream is allocated. As prepare() operation can be invoked multiple times during the stream's lifetime, relocate catpt_dai_apply_usettings() and call it directly within catpt_dai_hw_params() rather than on every catpt_dai_prepare(). catpt_dai_apply_usettings() remains unchanged. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201116133332.8530-4-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: Intel: catpt: Correct clock selection for dai triggerCezary Rojewski2020-11-161-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | During stream start DSP firmware requires LPCS disabled as that moment in time is resource heavy. Currently high-clock is selected on start of second stream onwards while low-clock is re-selected before stream actually leaves RESUME state i.e. PAUSE_STREAM call. Fix this by always updating clock before RESUME_STREAM and directly after PAUSE_STREAM. Fixes: a126750fc865 ("ASoC: Intel: catpt: PCM operations") Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201116133332.8530-3-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * ASoC: Intel: catpt: Skip position update for unprepared streamsCezary Rojewski2020-11-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Playing with very low period sizes may lead to timeouts when awaiting RESET_STREAM reply for offload streams. This is caused by NOTIFY_POSITION appearing in the middle of trigger(stop). Stream is unprepared during trigger(stop) where PAUSE_STREAM IPC gets invoked. However, all data that is already mixed in DSP firmware's mixer stream will still be played regardless of the pause. For offload streams, this means possibility for another NOTIFY_POSITION to process. Keep these notifications in check by only handling them when stream is in prepared state. Fixes: a126750fc865 ("ASoC: Intel: catpt: PCM operations") Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20201116133332.8530-2-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge series "ASoC: pcm512x: Patch series to set fmt from `set_fmt()`" from ↵Mark Brown2020-11-161-50/+84
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kirill Marinushkin <kmarinushkin@birdec.com>: Set format from `set_fmt()` func instead of `hw_params()`, plus supportive commits Kirill Marinushkin (4): ASoC: pcm512x: Fix not setting word length if DAIFMT_CBS_CFS ASoC: pcm512x: Rearrange operations in `hw_params()` ASoC: pcm512x: Move format check into `set_fmt()` ASoC: pcm512x: Add support for more data formats sound/soc/codecs/pcm512x.c | 134 ++++++++++++++++++++++++++++----------------- 1 file changed, 84 insertions(+), 50 deletions(-) -- 2.13.6
| * | ASoC: pcm512x: Add support for more data formatsKirill Marinushkin2020-11-161-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, pcm512x driver supports only I2S data format. This commit adds RJ, LJ, DSP_A and DSP_B as well. I don't expect regression WRT existing sound cards, because: * default value in corresponding register of pcm512x codec is 0 == I2S * existing in-tree sound cards with pcm512x codec are configured for I2S * i don't see how existing off-tree sound cards with pcm512x codec could be configured differently - it would not work * tested explicitly, that there is no regression with Raspberry Pi + sound card `sound/soc/bcm/hifiberry_dacplus.c` Signed-off-by: Kirill Marinushkin <kmarinushkin@birdec.com> Cc: Mark Brown <broonie@kernel.org> Cc: Takashi Iwai <tiwai@suse.com> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Matthias Reichl <hias@horus.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20201115122306.18164-5-kmarinushkin@birdec.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: pcm512x: Move format check into `set_fmt()`Kirill Marinushkin2020-11-161-25/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I would like to describe the reasoning by quoting Peter Ujfalusi <peter.ujfalusi@ti.com> from his review of this patch series v1 [1]: > When you bind a link you will use set_fmt for the two sides to see if > they can agree, that both can support what has been asked. > > The pcm512x driver just saves the fmt and say back to that card: > whatever, I'm fine with it. But runtime during hw_params it can fail due > to unsupported bus format, which it actually acked to be ok. > > This is the difference. > > Sure, some device have constraint based on the fmt towards the hw_params > and it is perfectly OK to do such a checks and rejections or build > rules/constraints based on fmt, but failing hw_params just because > set_fmt did not checked that the bus format is not even supported is not > a nice thing to do. [1] https://patchwork.kernel.org/project/alsa-devel/patch/ 20201109212133.25869-1-kmarinushkin@birdec.com/ Signed-off-by: Kirill Marinushkin <kmarinushkin@birdec.com> Cc: Mark Brown <broonie@kernel.org> Cc: Takashi Iwai <tiwai@suse.com> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Matthias Reichl <hias@horus.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20201115122306.18164-4-kmarinushkin@birdec.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: pcm512x: Rearrange operations in `hw_params()`Kirill Marinushkin2020-11-161-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a preparation for the next patch in the series. It's goal is to make format check easy-to-move-out. Theoretically, more butifications are possile in `hw_params()` func, but my intention in this commit is to keep behaviour unchanged. Signed-off-by: Kirill Marinushkin <kmarinushkin@birdec.com> Cc: Mark Brown <broonie@kernel.org> Cc: Takashi Iwai <tiwai@suse.com> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Matthias Reichl <hias@horus.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20201115122306.18164-3-kmarinushkin@birdec.com Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: pcm512x: Fix not setting word length if DAIFMT_CBS_CFSKirill Marinushkin2020-11-161-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In `pcm512x_hw_params()`, the following switch-case: ~~~~ switch (pcm512x->fmt & SND_SOC_DAIFMT_MASTER_MASK) { case SND_SOC_DAIFMT_CBS_CFS: ~~~~ returns 0, which was preventing word length from being written into codecs register. Fixed by writing it into register before checking `SND_SOC_DAIFMT_MASTER_MASK`. Tested with Raspberry Pi + sound card `hifiberry_dacplus` in CBS_CFS format Signed-off-by: Kirill Marinushkin <kmarinushkin@birdec.com> Cc: Mark Brown <broonie@kernel.org> Cc: Takashi Iwai <tiwai@suse.com> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Matthias Reichl <hias@horus.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20201115122306.18164-2-kmarinushkin@birdec.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ASoC: qcom: sc7180: Register shutdown handler for lpass platformV Sujith Kumar Reddy2020-11-163-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register shutdown handler to stop sc7180 lpass platform driver and to disable audio clocks. Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org> Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org> Link: https://lore.kernel.org/r/1605292702-25046-1-git-send-email-srivasam@codeaurora.org Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ASoC: qcom: lpass-sc7180: Add 32 bit format support for captureV Sujith Kumar Reddy2020-11-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add 32 bit format support for capture in lpass-sc7180 snd_soc_dai_driver capabilities. Need to add contstraints in machine driver so that only specific format allowed. Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org> Signed-off-by: Srinivasa Rao Manidadapu <srivasam@codeaurora.org> Link: https://lore.kernel.org/r/1605512955-7017-1-git-send-email-srivasam@codeaurora.org Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ASoC: SOF: Intel: initial support for Alderlake-SKai Vehmanen2020-11-164-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Kconfig entries, PCI ID and chip info for Alderlake-S product. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-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/20201116142642.2106067-1-kai.vehmanen@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ASoC: meson: fix COMPILE_TEST errorJerome Brunet2020-11-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compiled with CONFIG_HAVE_CLK, the kernel need to get provider for the clock API. This is usually selected by the platform and the sound drivers should not really care about this. However COMPILE_TEST is special and the platform required may not have been selected, leading to this type of error: > aiu-encoder-spdif.c:(.text+0x3a0): undefined reference to `clk_set_parent' Since we need a sane provider of the API with COMPILE_TEST, depends on COMMON_CLK. Fixes: 6dc4fa179fb8 ("ASoC: meson: add axg fifo base driver") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://lore.kernel.org/r/20201116172423.546855-1-jbrunet@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
* | | ASoC: qcom: sc7180: initialize the "no_headphone" variableDan Carpenter2020-11-161-1/+1
|/ / | | | | | | | | | | | | | | | | | | The "no_headphone" variable is never set to "false" so it could be uninitialized. Fixes: e936619b7ce7 ("ASoC: qcom: sc7180: Modify machine driver for sound card") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Link: https://lore.kernel.org/r/20201116125950.GA44063@mwanda Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge series "ASoC: use inclusive language for bclk/fsync/topology" from ↵Mark Brown2020-11-139-69/+89
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>: The SOF (Sound Open Firmware) tree contains a lot of references in topology files to 'codec_slave'/'codec_master' terms, which in turn come from alsa-lib and ALSA/ASoC topology support at the kernel level. These terms are no longer compatible with the guidelines adopted by the kernel community [1], standard organizations, and need to change in backwards-compatible ways. The main/secondary terms typically suggested in guidelines don't mean anything for clocks, this patchset suggests instead the use of 'provider' and 'consumer' terms, with the 'codec' prefix kept to make it clear that the codec is the reference. The CM/CS suffixes are also replaced by CP/CC. It can be argued that the change of suffix is invasive, but finding a replacement that keeps the M and S shortcuts has proven difficult in quite a few contexts. The previous definitions are kept for backwards-compatibility so this change should not have any functional impact. It is suggested that new contributions only use the new terms but there is no requirement to transition immediately to the new definitions for existing code. Intel will however update all its past contributions related to bit clock/frame sync configurations immediately. This patchset contains the kernel changes only, the alsa-lib changes were shared separately. Feedback welcome ~Pierre [1] https://lkml.org/lkml/2020/7/4/229 Pierre-Louis Bossart (4): ASoC: topology: use inclusive language for bclk and fsync ASoC: SOF: use inclusive language for bclk and fsync ASoC: Intel: atom: use inclusive language for SSP bclk/fsync ASoC: Intel: keembay: use inclusive language for bclk and fsync include/sound/soc-dai.h | 32 +++++++++++++++--------- include/sound/sof/dai.h | 16 ++++++++---- include/uapi/sound/asoc.h | 22 ++++++++++------ sound/soc/intel/atom/sst-atom-controls.c | 12 ++++----- sound/soc/intel/atom/sst-atom-controls.h | 4 +-- sound/soc/intel/keembay/kmb_platform.c | 22 ++++++++-------- sound/soc/intel/keembay/kmb_platform.h | 8 +++--- sound/soc/soc-topology.c | 24 +++++++++--------- sound/soc/sof/topology.c | 18 ++++++------- 9 files changed, 89 insertions(+), 69 deletions(-) -- 2.25.1
| * | ASoC: Intel: keembay: use inclusive language for bclk and fsyncPierre-Louis Bossart2020-11-132-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | Use 'clock provider' and 'clock consumer' terms. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20201112163100.5081-5-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>