summaryrefslogtreecommitdiff
path: root/sound/soc/rockchip
AgeCommit message (Collapse)AuthorFilesLines
2023-09-25ASoC: rockchip: convert not to use asoc_xxx()Kuninori Morimoto5-25/+25
ASoC is now unified asoc_xxx() into snd_soc_xxx(). This patch convert asoc_xxx() to snd_soc_xxx(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/878r9cqngq.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-15ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warningKrzysztof Kozlowski1-1/+1
'version' is an enum, thus cast of pointer on 64-bit compile test with W=1 causes: rockchip_pdm.c:587:18: error: cast to smaller integer type 'enum rk_pdm_version' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast] Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230815143204.379708-3-krzysztof.kozlowski@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14ASoC: rockchip: merge DAI call back functions into opsKuninori Morimoto4-4/+4
ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87r0od9m6i.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-07ASoC: rockchip: rockchip_rt5645: Map missing jack kcontrolsAlper Nebi Yasak1-5/+17
This driver does not properly map jack pins to kcontrols that PulseAudio and PipeWire need to handle jack detection events. The RT5645 codec used here supports detecting Headphone and Headset Mic connections. Expose both to userspace as kcontrols. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Link: https://lore.kernel.org/r/20230802175737.263412-25-alpernebiyasak@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-07ASoC: rk3399-gru-sound: Map missing Line Out jack kcontrolAlper Nebi Yasak1-1/+6
Commit d0508b4f1604 ("ASoC: rk3399_gru_sound: Add DAPM pins, kcontrols for jack detection") maps kcontrols for Headphones and Headset Mic jacks for this driver so that PulseAudio and PipeWire can handle insertion events for these peripherals. The DA7219 codec used here can also distinguish between Headphone and Line Out connections that go into the same physical port. Expose the latter to userspace as a kcontrol as well and add the necessary widget. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Link: https://lore.kernel.org/r/20230802175737.263412-24-alpernebiyasak@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-21ALSA/ASoC: Convert to platform remove callbackMark Brown4-16/+8
Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>: Hello, this series adapts the platform drivers below sound/ to use the .remove_new() callback. Compared to the traditional .remove() callback .remove_new() returns no value. This is a good thing because the driver core doesn't (and cannot) cope for errors during remove. The only effect of a non-zero return value in .remove() is that the driver core emits a warning. The device is removed anyhow and an early return from .remove() usually yields a resource leak. By changing the remove callback to return void driver authors cannot reasonably assume any more that there is some kind of cleanup later. The first two patches simplify a driver each to return zero unconditionally, and then all drivers are trivially converted to .remove_new(). There are nearly no interdependencies in this patch set---only 1 <- 11 and 2 <- 16. So even if some individual problems are found (I don't expect that), the other patches can (and from my POV should) still be applied. Best regards Uwe Uwe Kleine-König (173): ALSA: sh: aica: Drop if blocks with always false condition ASoC: amd: acp: rembrandt: Drop if blocks with always false condition ALSA: pxa2xx: Convert to platform remove callback returning void ALSA: atmel: ac97: Convert to platform remove callback returning void ALSA: mts64: Convert to platform remove callback returning void ALSA: portman2x4: Convert to platform remove callback returning void ALSA: mips/hal2: Convert to platform remove callback returning void ALSA: mips/sgio2audio: Convert to platform remove callback returning void ALSA: hda/tegra: Convert to platform remove callback returning void ALSA: ppc/powermac: Convert to platform remove callback returning void ALSA: sh: aica: Convert to platform remove callback returning void ALSA: sh_dac_audio: Convert to platform remove callback returning void ASoC: adi: axi-i2s: Convert to platform remove callback returning void ASoC: adi: axi-spdif: Convert to platform remove callback returning void ASoC: amd: acp-pcm-dma: Convert to platform remove callback returning void ASoC: amd: acp: rembrandt: Convert to platform remove callback returning void ASoC: amd: acp: renoir: Convert to platform remove callback returning void ASoC: amd: ps: Convert to platform remove callback returning void ASoC: amd: raven: acp3x-pcm-dma: Convert to platform remove callback returning void ASoC: amd: raven: acp3x-pdm-dma: Convert to platform remove callback returning void ASoC: amd: vangogh: acp5x-pcm-dma: Convert to platform remove callback returning void ASoC: amd: yc: acp6x-pdm-dma: Convert to platform remove callback returning void ASoC: apple: mca: Convert to platform remove callback returning void ASoC: atmel: atmel-i2s: Convert to platform remove callback returning void ASoC: atmel: atmel_wm8904: Convert to platform remove callback returning void ASoC: atmel: mchp-i2s-mcc: Convert to platform remove callback returning void ASoC: atmel: mchp-pdmc: Convert to platform remove callback returning void ASoC: atmel: mchp-spdifrx: Convert to platform remove callback returning void ASoC: atmel: mchp-spdiftx: Convert to platform remove callback returning void ASoC: atmel: mikroe-proto: Convert to platform remove callback returning void ASoC: atmel: sam9g20_wm8731: Convert to platform remove callback returning void ASoC: atmel: sam9x5_wm8731: Convert to platform remove callback returning void ASoC: atmel: tse850-pcm5142: Convert to platform remove callback returning void ASoC: au1x: ac97c: Convert to platform remove callback returning void ASoC: au1x: i2sc: Convert to platform remove callback returning void ASoC: au1x: psc-ac97: Convert to platform remove callback returning void ASoC: au1x: psc-i2s: Convert to platform remove callback returning void ASoC: bcm: bcm63xx-i2s-whistler: Convert to platform remove callback returning void ASoC: bcm: cygnus-ssp: Convert to platform remove callback returning void ASoC: cirrus: edb93xx: Convert to platform remove callback returning void ASoC: cirrus: ep93xx-i2s: Convert to platform remove callback returning void ASoC: codecs: cs47l15: Convert to platform remove callback returning void ASoC: codecs: cs47l24: Convert to platform remove callback returning void ASoC: codecs: cs47l35: Convert to platform remove callback returning void ASoC: codecs: cs47l85: Convert to platform remove callback returning void ASoC: codecs: cs47l90: Convert to platform remove callback returning void ASoC: codecs: cs47l92: Convert to platform remove callback returning void ASoC: codecs: inno_rk3036: Convert to platform remove callback returning void ASoC: codecs: lpass-rx-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-tx-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-va-macro: Convert to platform remove callback returning void ASoC: codecs: lpass-wsa-macro: Convert to platform remove callback returning void ASoC: codecs: msm8916-wcd-analog: Convert to platform remove callback returning void ASoC: codecs: msm8916-wcd-digital: Convert to platform remove callback returning void ASoC: codecs: rk817_codec: Convert to platform remove callback returning void ASoC: codecs: wcd938x: Convert to platform remove callback returning void ASoC: codecs: wm5102: Convert to platform remove callback returning void ASoC: codecs: wm5110: Convert to platform remove callback returning void ASoC: codecs: wm8994: Convert to platform remove callback returning void ASoC: codecs: wm8997: Convert to platform remove callback returning void ASoC: codecs: wm8998: Convert to platform remove callback returning void ASoC: dwc: dwc-i2s: Convert to platform remove callback returning void ASoC: fsl: eukrea-tlv320: Convert to platform remove callback returning void ASoC: fsl: fsl_asrc: Convert to platform remove callback returning void ASoC: fsl: fsl_aud2htx: Convert to platform remove callback returning void ASoC: fsl: fsl_audmix: Convert to platform remove callback returning void ASoC: fsl: fsl_dma: Convert to platform remove callback returning void ASoC: fsl: fsl_easrc: Convert to platform remove callback returning void ASoC: fsl: fsl_esai: Convert to platform remove callback returning void ASoC: fsl: fsl_mqs: Convert to platform remove callback returning void ASoC: fsl: fsl_rpmsg: Convert to platform remove callback returning void ASoC: fsl: fsl_sai: Convert to platform remove callback returning void ASoC: fsl: fsl_spdif: Convert to platform remove callback returning void ASoC: fsl: fsl_ssi: Convert to platform remove callback returning void ASoC: fsl: fsl_xcvr: Convert to platform remove callback returning void ASoC: fsl: imx-audmux: Convert to platform remove callback returning void ASoC: fsl: imx-pcm-rpmsg: Convert to platform remove callback returning void ASoC: fsl: imx-sgtl5000: Convert to platform remove callback returning void ASoC: fsl: mpc5200_psc_ac97: Convert to platform remove callback returning void ASoC: fsl: mpc5200_psc_i2s: Convert to platform remove callback returning void ASoC: fsl: mpc8610_hpcd: Convert to platform remove callback returning void ASoC: fsl: p1022_ds: Convert to platform remove callback returning void ASoC: fsl: p1022_rdk: Convert to platform remove callback returning void ASoC: fsl: pcm030-audio-fabric: Convert to platform remove callback returning void ASoC: generic: test-component: Convert to platform remove callback returning void ASoC: img: img-i2s-in: Convert to platform remove callback returning void ASoC: img: img-i2s-out: Convert to platform remove callback returning void ASoC: img: img-parallel-out: Convert to platform remove callback returning void ASoC: img: img-spdif-in: Convert to platform remove callback returning void ASoC: img: img-spdif-out: Convert to platform remove callback returning void ASoC: img: pistachio-internal-dac: Convert to platform remove callback returning void ASoC: Intel: sst-mfld-platform-pcm: Convert to platform remove callback returning void ASoC: Intel: sst: Convert to platform remove callback returning void ASoC: Intel: bytcht_es8316: Convert to platform remove callback returning void ASoC: Intel: bytcr_rt5640: Convert to platform remove callback returning void ASoC: Intel: boards: bytcr_rt5651: Convert to platform remove callback returning void ASoC: Intel: bytcr_wm5102: Convert to platform remove callback returning void ASoC: Intel: cht_bsw_max98090_ti: Convert to platform remove callback returning void ASoC: Intel: sof_es8336: Convert to platform remove callback returning void ASoC: Intel: sof_pcm512x: Convert to platform remove callback returning void ASoC: Intel: sof_sdw: Convert to platform remove callback returning void ASoC: Intel: sof_wm8804: Convert to platform remove callback returning void ASoC: Intel: catpt: Convert to platform remove callback returning void ASoC: Intel: skl-ssp-clk: Convert to platform remove callback returning void ASoC: kirkwood: kirkwood-i2s: Convert to platform remove callback returning void ASoC: mediatek: mtk-btcvsd: Convert to platform remove callback returning void ASoC: mediatek: mt2701-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt6797-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8173-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8183-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8188-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8192-afe-pcm: Convert to platform remove callback returning void ASoC: mediatek: mt8195-afe-pcm: Convert to platform remove callback returning void ASoC: meson: aiu: Convert to platform remove callback returning void ASoC: mxs: mxs-sgtl5000: Convert to platform remove callback returning void ASoC: pxa: mmp-sspa: Convert to platform remove callback returning void ASoC: pxa: pxa2xx-ac97: Convert to platform remove callback returning void ASoC: qcom: qdsp6: Convert to platform remove callback returning void ASoC: rockchip: rockchip_i2s: Convert to platform remove callback returning void ASoC: rockchip: rockchip_i2s_tdm: Convert to platform remove callback returning void ASoC: rockchip: rockchip_pdm: Convert to platform remove callback returning void ASoC: rockchip: rockchip_rt5645: Convert to platform remove callback returning void ASoC: rockchip: rockchip_spdif: Convert to platform remove callback returning void ASoC: samsung: arndale: Convert to platform remove callback returning void ASoC: samsung: i2s: Convert to platform remove callback returning void ASoC: samsung: odroid: Convert to platform remove callback returning void ASoC: samsung: pcm: Convert to platform remove callback returning void ASoC: samsung: snow: Convert to platform remove callback returning void ASoC: samsung: spdif: Convert to platform remove callback returning void ASoC: sh: fsi: Convert to platform remove callback returning void ASoC: sh: hac: Convert to platform remove callback returning void ASoC: sh: rcar: Convert to platform remove callback returning void ASoC: sh: rz-ssi: Convert to platform remove callback returning void ASoC: sh: siu_dai: Convert to platform remove callback returning void ASoC: sprd: sprd-mcdt: Convert to platform remove callback returning void ASoC: stm: stm32_adfsdm: Convert to platform remove callback returning void ASoC: stm: stm32_i2s: Convert to platform remove callback returning void ASoC: stm: stm32_sai_sub: Convert to platform remove callback returning void ASoC: stm: stm32_spdifrx: Convert to platform remove callback returning void ASoC: sunxi: sun4i-codec: Convert to platform remove callback returning void ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning void ASoC: sunxi: sun4i-spdif: Convert to platform remove callback returning void ASoC: sunxi: sun50i-dmic: Convert to platform remove callback returning void ASoC: sunxi: sun8i-codec: Convert to platform remove callback returning void ASoC: tegra: tegra186_asrc: Convert to platform remove callback returning void ASoC: tegra: tegra186_dspk: Convert to platform remove callback returning void ASoC: tegra: tegra20_ac97: Convert to platform remove callback returning void ASoC: tegra: tegra20_i2s: Convert to platform remove callback returning void ASoC: tegra: tegra210_admaif: Convert to platform remove callback returning void ASoC: tegra: tegra210_adx: Convert to platform remove callback returning void ASoC: tegra: tegra210_ahub: Convert to platform remove callback returning void ASoC: tegra: tegra210_amx: Convert to platform remove callback returning void ASoC: tegra: tegra210_dmic: Convert to platform remove callback returning void ASoC: tegra: tegra210_i2s: Convert to platform remove callback returning void ASoC: tegra: tegra210_mixer: Convert to platform remove callback returning void ASoC: tegra: tegra210_mvc: Convert to platform remove callback returning void ASoC: tegra: tegra210_ope: Convert to platform remove callback returning void ASoC: tegra: tegra210_sfc: Convert to platform remove callback returning void ASoC: tegra: tegra30_ahub: Convert to platform remove callback returning void ASoC: tegra: tegra30_i2s: Convert to platform remove callback returning void ASoC: ti: ams-delta: Convert to platform remove callback returning void ASoC: ti: davinci-i2s: Convert to platform remove callback returning void ASoC: ti: davinci-mcasp: Convert to platform remove callback returning void ASoC: ti: omap-hdmi: Convert to platform remove callback returning void ASoC: ti: omap-mcbsp: Convert to platform remove callback returning void ASoC: uniphier: evea: Convert to platform remove callback returning void ASoC: ux500: mop500: Convert to platform remove callback returning void ASoC: ux500: ux500_msp_dai: Convert to platform remove callback returning void ASoC: xilinx: xlnx_formatter_pcm: Convert to platform remove callback returning void ASoC: xilinx: xlnx_spdif: Convert to platform remove callback returning void ASoC: xtensa: xtfpga-i2s: Convert to platform remove callback returning void ALSA: sparc/cs4231: Convert to platform remove callback returning void ALSA: sparc/dbri: Convert to platform remove callback returning void sound/arm/pxa2xx-ac97.c | 6 ++---- sound/atmel/ac97c.c | 6 ++---- sound/drivers/mts64.c | 6 ++---- sound/drivers/portman2x4.c | 6 ++---- sound/mips/hal2.c | 5 ++--- sound/mips/sgio2audio.c | 5 ++--- sound/pci/hda/hda_tegra.c | 6 ++---- sound/ppc/powermac.c | 5 ++--- sound/sh/aica.c | 7 ++----- sound/sh/sh_dac_audio.c | 5 ++--- sound/soc/adi/axi-i2s.c | 6 ++---- sound/soc/adi/axi-spdif.c | 6 ++---- sound/soc/amd/acp-pcm-dma.c | 6 ++---- sound/soc/amd/acp/acp-rembrandt.c | 13 +++---------- sound/soc/amd/acp/acp-renoir.c | 5 ++--- sound/soc/amd/ps/ps-pdm-dma.c | 5 ++--- sound/soc/amd/raven/acp3x-pcm-dma.c | 5 ++--- sound/soc/amd/renoir/acp3x-pdm-dma.c | 5 ++--- sound/soc/amd/vangogh/acp5x-pcm-dma.c | 5 ++--- sound/soc/amd/yc/acp6x-pdm-dma.c | 5 ++--- sound/soc/apple/mca.c | 5 ++--- sound/soc/atmel/atmel-i2s.c | 6 ++---- sound/soc/atmel/atmel_wm8904.c | 6 ++---- sound/soc/atmel/mchp-i2s-mcc.c | 6 ++---- sound/soc/atmel/mchp-pdmc.c | 6 ++---- sound/soc/atmel/mchp-spdifrx.c | 6 ++---- sound/soc/atmel/mchp-spdiftx.c | 6 ++---- sound/soc/atmel/mikroe-proto.c | 6 ++---- sound/soc/atmel/sam9g20_wm8731.c | 6 ++---- sound/soc/atmel/sam9x5_wm8731.c | 6 ++---- sound/soc/atmel/tse850-pcm5142.c | 6 ++---- sound/soc/au1x/ac97c.c | 6 ++---- sound/soc/au1x/i2sc.c | 6 ++---- sound/soc/au1x/psc-ac97.c | 6 ++---- sound/soc/au1x/psc-i2s.c | 6 ++---- sound/soc/bcm/bcm63xx-i2s-whistler.c | 5 ++--- sound/soc/bcm/cygnus-ssp.c | 6 ++---- sound/soc/cirrus/edb93xx.c | 6 ++---- sound/soc/cirrus/ep93xx-i2s.c | 5 ++--- sound/soc/codecs/cs47l15.c | 6 ++---- sound/soc/codecs/cs47l24.c | 6 ++---- sound/soc/codecs/cs47l35.c | 6 ++---- sound/soc/codecs/cs47l85.c | 6 ++---- sound/soc/codecs/cs47l90.c | 6 ++---- sound/soc/codecs/cs47l92.c | 6 ++---- sound/soc/codecs/inno_rk3036.c | 6 ++---- sound/soc/codecs/lpass-rx-macro.c | 6 ++---- sound/soc/codecs/lpass-tx-macro.c | 6 ++---- sound/soc/codecs/lpass-va-macro.c | 6 ++---- sound/soc/codecs/lpass-wsa-macro.c | 6 ++---- sound/soc/codecs/msm8916-wcd-analog.c | 6 ++---- sound/soc/codecs/msm8916-wcd-digital.c | 6 ++---- sound/soc/codecs/rk817_codec.c | 6 ++---- sound/soc/codecs/wcd938x.c | 6 ++---- sound/soc/codecs/wm5102.c | 6 ++---- sound/soc/codecs/wm5110.c | 6 ++---- sound/soc/codecs/wm8994.c | 6 ++---- sound/soc/codecs/wm8997.c | 6 ++---- sound/soc/codecs/wm8998.c | 6 ++---- sound/soc/dwc/dwc-i2s.c | 5 ++--- sound/soc/fsl/eukrea-tlv320.c | 6 ++---- sound/soc/fsl/fsl_asrc.c | 6 ++---- sound/soc/fsl/fsl_aud2htx.c | 6 ++---- sound/soc/fsl/fsl_audmix.c | 6 ++---- sound/soc/fsl/fsl_dma.c | 6 ++---- sound/soc/fsl/fsl_easrc.c | 6 ++---- sound/soc/fsl/fsl_esai.c | 6 ++---- sound/soc/fsl/fsl_mqs.c | 5 ++--- sound/soc/fsl/fsl_rpmsg.c | 6 ++---- sound/soc/fsl/fsl_sai.c | 6 ++---- sound/soc/fsl/fsl_spdif.c | 6 ++---- sound/soc/fsl/fsl_ssi.c | 6 ++---- sound/soc/fsl/fsl_xcvr.c | 5 ++--- sound/soc/fsl/imx-audmux.c | 6 ++---- sound/soc/fsl/imx-pcm-rpmsg.c | 6 ++---- sound/soc/fsl/imx-sgtl5000.c | 6 ++---- sound/soc/fsl/mpc5200_psc_ac97.c | 5 ++--- sound/soc/fsl/mpc5200_psc_i2s.c | 5 ++--- sound/soc/fsl/mpc8610_hpcd.c | 6 ++---- sound/soc/fsl/p1022_ds.c | 6 ++---- sound/soc/fsl/p1022_rdk.c | 6 ++---- sound/soc/fsl/pcm030-audio-fabric.c | 6 ++---- sound/soc/generic/test-component.c | 6 ++---- sound/soc/img/img-i2s-in.c | 6 ++---- sound/soc/img/img-i2s-out.c | 6 ++---- sound/soc/img/img-parallel-out.c | 6 ++---- sound/soc/img/img-spdif-in.c | 6 ++---- sound/soc/img/img-spdif-out.c | 6 ++---- sound/soc/img/pistachio-internal-dac.c | 6 ++---- sound/soc/intel/atom/sst-mfld-platform-pcm.c | 5 ++--- sound/soc/intel/atom/sst/sst_acpi.c | 5 ++--- sound/soc/intel/boards/bytcht_es8316.c | 5 ++--- sound/soc/intel/boards/bytcr_rt5640.c | 5 ++--- sound/soc/intel/boards/bytcr_rt5651.c | 5 ++--- sound/soc/intel/boards/bytcr_wm5102.c | 5 ++--- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 6 ++---- sound/soc/intel/boards/sof_es8336.c | 6 ++---- sound/soc/intel/boards/sof_pcm512x.c | 6 ++---- sound/soc/intel/boards/sof_sdw.c | 6 ++---- sound/soc/intel/boards/sof_wm8804.c | 5 ++--- sound/soc/intel/catpt/device.c | 6 ++---- sound/soc/intel/skylake/skl-ssp-clk.c | 6 ++---- sound/soc/kirkwood/kirkwood-i2s.c | 6 ++---- sound/soc/mediatek/common/mtk-btcvsd.c | 5 ++--- sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 5 ++--- sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 6 ++---- sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 5 ++--- sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 5 ++--- sound/soc/meson/aiu.c | 6 ++---- sound/soc/mxs/mxs-sgtl5000.c | 6 ++---- sound/soc/pxa/mmp-sspa.c | 7 +++---- sound/soc/pxa/pxa2xx-ac97.c | 5 ++--- sound/soc/qcom/qdsp6/q6routing.c | 6 ++---- sound/soc/rockchip/rockchip_i2s.c | 6 ++---- sound/soc/rockchip/rockchip_i2s_tdm.c | 6 ++---- sound/soc/rockchip/rockchip_pdm.c | 6 ++---- sound/soc/rockchip/rockchip_rt5645.c | 6 ++---- sound/soc/rockchip/rockchip_spdif.c | 6 ++---- sound/soc/samsung/arndale.c | 5 ++--- sound/soc/samsung/i2s.c | 8 +++----- sound/soc/samsung/odroid.c | 6 ++---- sound/soc/samsung/pcm.c | 6 ++---- sound/soc/samsung/snow.c | 6 ++---- sound/soc/samsung/spdif.c | 6 ++---- sound/soc/sh/fsi.c | 6 ++---- sound/soc/sh/hac.c | 5 ++--- sound/soc/sh/rcar/core.c | 6 ++---- sound/soc/sh/rz-ssi.c | 6 ++---- sound/soc/sh/siu_dai.c | 5 ++--- sound/soc/sprd/sprd-mcdt.c | 6 ++---- sound/soc/stm/stm32_adfsdm.c | 6 ++---- sound/soc/stm/stm32_i2s.c | 6 ++---- sound/soc/stm/stm32_sai_sub.c | 6 ++---- sound/soc/stm/stm32_spdifrx.c | 6 ++---- sound/soc/sunxi/sun4i-codec.c | 6 ++---- sound/soc/sunxi/sun4i-i2s.c | 6 ++---- sound/soc/sunxi/sun4i-spdif.c | 6 ++---- sound/soc/sunxi/sun50i-dmic.c | 6 ++---- sound/soc/sunxi/sun8i-codec.c | 6 ++---- sound/soc/tegra/tegra186_asrc.c | 6 ++---- sound/soc/tegra/tegra186_dspk.c | 6 ++---- sound/soc/tegra/tegra20_ac97.c | 6 ++---- sound/soc/tegra/tegra20_i2s.c | 6 ++---- sound/soc/tegra/tegra210_admaif.c | 6 ++---- sound/soc/tegra/tegra210_adx.c | 6 ++---- sound/soc/tegra/tegra210_ahub.c | 6 ++---- sound/soc/tegra/tegra210_amx.c | 6 ++---- sound/soc/tegra/tegra210_dmic.c | 6 ++---- sound/soc/tegra/tegra210_i2s.c | 6 ++---- sound/soc/tegra/tegra210_mixer.c | 6 ++---- sound/soc/tegra/tegra210_mvc.c | 6 ++---- sound/soc/tegra/tegra210_ope.c | 6 ++---- sound/soc/tegra/tegra210_sfc.c | 6 ++---- sound/soc/tegra/tegra30_ahub.c | 6 ++---- sound/soc/tegra/tegra30_i2s.c | 6 ++---- sound/soc/ti/ams-delta.c | 5 ++--- sound/soc/ti/davinci-i2s.c | 6 ++---- sound/soc/ti/davinci-mcasp.c | 6 ++---- sound/soc/ti/omap-hdmi.c | 5 ++--- sound/soc/ti/omap-mcbsp.c | 6 ++---- sound/soc/uniphier/evea.c | 6 ++---- sound/soc/ux500/mop500.c | 6 ++---- sound/soc/ux500/ux500_msp_dai.c | 6 ++---- sound/soc/xilinx/xlnx_formatter_pcm.c | 5 ++--- sound/soc/xilinx/xlnx_spdif.c | 5 ++--- sound/soc/xtensa/xtfpga-i2s.c | 5 ++--- sound/sparc/cs4231.c | 6 ++---- sound/sparc/dbri.c | 6 ++---- 171 files changed, 345 insertions(+), 654 deletions(-) base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6 -- 2.39.2
2023-03-20ASoC: rockchip: i2s: Add compatible for RK3588Cristian Ciocaltea1-0/+1
The Rockchip I2S driver supports the RK3588/RK3588S SoCs, hence add the corresponding compatible string. Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> Link: https://lore.kernel.org/r/20230315114806.3819515-9-cristian.ciocaltea@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20ASoC: rockchip: rockchip_spdif: Convert to platform remove callback ↵Uwe Kleine-König1-4/+2
returning void The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-124-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20ASoC: rockchip: rockchip_rt5645: Convert to platform remove callback ↵Uwe Kleine-König1-4/+2
returning void The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-123-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20ASoC: rockchip: rockchip_pdm: Convert to platform remove callback returning voidUwe Kleine-König1-4/+2
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-122-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20ASoC: rockchip: rockchip_i2s: Convert to platform remove callback returning voidUwe Kleine-König1-4/+2
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-120-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-31ASoC: rockchip: use helper functionKuninori Morimoto3-4/+4
Current ASoC has many helper function. This patch use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87pmavea3l.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-25ASoC: Kconfig: fix spelling of "up to"Randy Dunlap1-1/+1
Fix spelling in sound/soc/ Kconfig files: s/upto/up to/ (reported by codespell) Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Reviewed-by: Heiko Stuebner <heiko@sntech.de> #rockchip Link: https://lore.kernel.org/r/20230124181746.19028-1-rdunlap@infradead.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-12-12ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in ↵Wang Jingjin1-0/+1
rk_spdif_runtime_resume() rk_spdif_runtime_resume() may have called clk_prepare_enable() before return from failed branches, add missing clk_disable_unprepare() in this case. Fixes: f874b80e1571 ("ASoC: rockchip: Add rockchip SPDIF transceiver driver") Signed-off-by: Wang Jingjin <wangjingjin1@huawei.com> Link: https://lore.kernel.org/r/20221208063900.4180790-1-wangjingjin1@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-12-07ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in ↵Wang Jingjin1-0/+1
rockchip_pdm_runtime_resume() The clk_disable_unprepare() should be called in the error handling of rockchip_pdm_runtime_resume(). Fixes: fc05a5b22253 ("ASoC: rockchip: add support for pdm controller") Signed-off-by: Wang Jingjin <wangjingjin1@huawei.com> Link: https://lore.kernel.org/r/20221205032802.2422983-1-wangjingjin1@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-25ASoC: rockchip: i2s_tdm: Add support for RK3588Nicolas Frattaroli1-1/+2
This adds support for the RK3588 SoC to the I2S/TDM driver. Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com> Link: https://lore.kernel.org/r/20221025124132.399729-5-frattaroli.nicolas@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-25ASoC: rockchip: i2s_tdm: Make the grf property optionalNicolas Frattaroli1-4/+12
Only IO Multiplex and two TRCM modes need access to the GRF, so making it a hard requirement is not a wise idea, as it complicates support for newer SoCs which do not do these things. Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com> Link: https://lore.kernel.org/r/20221025124132.399729-3-frattaroli.nicolas@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-07ASoC: rockchip: Drop da7219_aad_jack_det() usageCezary Rojewski1-2/+1
Do not access the internal function directly, do so through component->set_jack() instead. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20221031160227.2352630-5-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-09-30ASoC: rockchip: i2s: use regmap_read_poll_timeout_atomic to poll I2S_CLRJudy Hsiao1-12/+12
1. Uses regmap_read_poll_timeout_atomic to poll I2S_CLR as it is called within a spin lock. 2. Fixes the typo of break condition in regmap_read_poll_timeout_atomic. Fixes: fbb0ec656ee5 ("ASoC: rockchip: i2s: use regmap_read_poll_timeout to poll I2S_CLR") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Link: https://lore.kernel.org/r/20220930151546.2017667-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-09-14ASoC: rockchip: i2s: use regmap_read_poll_timeout to poll I2S_CLRJudy Hsiao1-25/+16
Use regmap_read_poll_timeout to poll I2S_CLR. It also fixes the 'rockchip-i2s ff070000.i2s; fail to clear' when the read of I2S_CLR exceeds the retry limit. Fixes: 0ff9f8b9f592 ("ASoC: rockchip: i2s: Fix error code when fail to read I2S_CLR") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Reviewed-by: Brian Norris <briannorris@chromium.org> Link: https://lore.kernel.org/r/20220914031234.2250298-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-07-11ASoC: Merge up fixesMark Brown1-1/+0
Needed for the Rockchip driver.
2022-07-11ASoC: rockchip: i2s: Fix NULL pointer dereference when pinctrl is not foundAlexandru Elisei1-1/+4
Commit a5450aba737d ("ASoC: rockchip: i2s: switch BCLK to GPIO") switched BCLK to GPIO functions when probing the i2s bus interface, but missed adding a check for when devm_pinctrl_get() returns an error. This can lead to the following NULL pointer dereference on a rockpro64-v2 if there are no "pinctrl" properties in the i2s device tree node. Check that i2s->pinctrl is valid before attempting to search for the bclk_on and bclk_off pinctrl states. Fixes: a5450aba737d ("ASoC: rockchip: i2s: switch BCLK to GPIO") Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20220711130522.401551-1-alexandru.elisei@arm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-07-05ASoC: rockchip: i2s: Fix error code when fail to read I2S_CLRJudy Hsiao1-0/+2
Add the error code '-EBUSY' when fail to read I2S_CLR in rockchip_snd_rxctrl() and rockchip_snd_txctrl() Fixes: 44f362c2cc6d ("ASoC: rockchip: i2s: switch BCLK to GPIO") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Reviewed-by: Brian Norris <briannorris@chromium.org> Link: https://lore.kernel.org/r/20220701021427.3120549-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-29ASoC: Refactor non_legacy_dai_naming flagMark Brown4-0/+4
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>: Historically, the legacy DAI naming scheme was applied to platform drivers and the newer scheme to CODEC drivers. During componentisation the core lost the knowledge of if a driver was a CODEC or platform, they were all now components. To continue to support the legacy naming on older platform drivers a flag was added to the snd_soc_component_driver structure, non_legacy_dai_naming, to indicate to use the new scheme and this was applied to all CODECs as part of the migration. However, a slight issue appears to be developing with respect to this flag being opt in for the non-legacy scheme, which presumably we want to be the primary scheme used. Many codec drivers appear to forget to include this flag: grep -l -r "snd_soc_component_driver" sound/soc/codecs/*.c | xargs grep -L "non_legacy_dai_naming" | wc 48 48 556 Whilst in many cases the configuration of the DAIs themselves will cause the core to apply the new scheme anyway, it would seem more sensible to change the flag to legacy_dai_naming making the new scheme opt out. This patch series migrates across to such a scheme.
2022-06-29ASoC: rockchip: i2s: Remove unwanted dma settings in rockchip_i2s_probeJudy Hsiao1-8/+0
Remove the unwanted dma settings in rockchip_i2s_probe. Fixes: 44f362c2cc6d ("ASoC: rockchip: i2s: switch BCLK to GPIO") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Link: https://lore.kernel.org/r/20220629080421.2427933-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-29ASoC: rockchip: i2s: Fix the debug level on missing pinctrlJudy Hsiao1-1/+1
Use dev_dbg on missing i2s->pinctrl as the pinctrl property is optional. Fixes: 44f362c2cc6d ("ASoC: rockchip: i2s: switch BCLK to GPIO") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Link: https://lore.kernel.org/r/20220629080345.2427872-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-27ASoC: rockchip: pdm: use pm_runtime_resume_and_get()Pierre-Louis Bossart1-4/+2
Simplify the flow. 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> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20220616220427.136036-10-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-27ASoC: rockchip: i2s_tdm: use pm_runtime_resume_and_get()Pierre-Louis Bossart1-4/+2
simplify the flow. No functionality change, except that on -EACCESS the reference count will be decreased. 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> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20220616220427.136036-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-27ASoC: rockchip: Migrate to new style legacy DAI naming flagCharles Keepax4-0/+4
Change the legacy DAI naming flag from opting in to the new scheme (non_legacy_dai_naming), to opting out of it (legacy_dai_naming). These drivers appear to be on the CPU side of the DAI link and currently uses the legacy naming, so add the new flag. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220623125250.2355471-27-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-24ASoC: rockchip: i2s: switch BCLK to GPIOJudy Hsiao1-31/+129
We discoverd that the state of BCLK on, LRCLK off and SD_MODE on may cause the speaker melting issue. Removing LRCLK while BCLK is present can cause unexpected output behavior including a large DC output voltage as described in the Max98357a datasheet. In order to: 1. prevent BCLK from turning on by other component. 2. keep BCLK and LRCLK being present at the same time This patch switches BCLK to GPIO func before LRCLK output, and configures BCLK func back during LRCLK is output. Without this fix, BCLK is turned on 11 ms earlier than LRCK by the da7219. With this fix, BCLK is turned on only 0.4 ms earlier than LRCK by the rockchip codec. Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Link: https://lore.kernel.org/r/20220615045643.3137287-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-24ASoC: rockchip: i2s: Fix missing error code in rockchip_i2s_probe()Jiapeng Chong1-0/+1
The error code is missing in this code scenario, add the error code '-EINVAL' to the return value 'ret'. This was found by coccicheck: sound/soc/rockchip/rockchip_i2s.c:810 rockchip_i2s_probe() warn: missing error code 'ret'. Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com> Link: https://lore.kernel.org/r/20220624082745.68367-1-jiapeng.chong@linux.alibaba.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-22ASoC: rockchip: i2s: switch BCLK to GPIOMark Brown1-45/+35
Merge series from Judy Hsiao <judyhsiao@chromium.org>: The patches series is to fix the unexpected large DC output voltage of Max98357a that burns the speakers on the rockchip platform when BCLK and SD_MODE are ON but LRCLK is OFF.
2022-06-22ASoC: rockchip: i2s: Fix crash on missing pinctrlChen-Yu Tsai1-15/+14
Commit 44f362c2cc6d ("ASoC: rockchip: i2s: switch BCLK to GPIO") added pinctrl lookups, but did not skip the lookup if there was no pinctrl device tied to the I2S controller. As a result, the lookup was done on an invalid pointer in such cases, causing a kernel panic. Only do the subsequent pinctrl state lookups and switch if a pinctrl device was found. i2s_pinctrl_select_bclk_{on,off} already guard against missing pinctrl device or pinctrl state, so those two functions aren't touched. Fixes: 44f362c2cc6d ("ASoC: rockchip: i2s: switch BCLK to GPIO") Signed-off-by: Chen-Yu Tsai <wens@csie.org> Link: https://lore.kernel.org/r/20220621185747.2782-1-wens@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-22ASoC: Merge fixesMark Brown1-31/+129
Needed for new development.
2022-06-21ASoC: rockchip: i2s: switch BCLK to GPIOJudy Hsiao1-46/+123
We discoverd that the state of BCLK on, LRCLK off and SD_MODE on may cause the speaker melting issue. Removing LRCLK while BCLK is present can cause unexpected output behavior including a large DC output voltage as described in the Max98357a datasheet. In order to: 1. prevent BCLK from turning on by other component. 2. keep BCLK and LRCLK being present at the same time This patch switches BCLK to GPIO func before LRCLK output, and configures BCLK func back during LRCLK is output. Without this fix, BCLK is turned on 11 ms earlier than LRCK by the da7219. With this fix, BCLK is turned on only 0.4 ms earlier than LRCK by the rockchip codec. Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Reviewed-by: Brian Norris <briannorris@chromium.org> Link: https://lore.kernel.org/r/20220619095324.492678-2-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-20ASoC: rockchip: i2s: switch BCLK to GPIOJudy Hsiao1-31/+129
We discoverd that the state of BCLK on, LRCLK off and SD_MODE on may cause the speaker melting issue. Removing LRCLK while BCLK is present can cause unexpected output behavior including a large DC output voltage as described in the Max98357a datasheet. In order to: 1. prevent BCLK from turning on by other component. 2. keep BCLK and LRCLK being present at the same time This patch switches BCLK to GPIO func before LRCLK output, and configures BCLK func back during LRCLK is output. Without this fix, BCLK is turned on 11 ms earlier than LRCK by the da7219. With this fix, BCLK is turned on only 0.4 ms earlier than LRCK by the rockchip codec. Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> Link: https://lore.kernel.org/r/20220615045643.3137287-1-judyhsiao@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-09Specify clock provider directly to CPU DAIsMark Brown2-6/+6
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>: Currently the set_fmt callback always passes clock provider/consumer with respect to the CODEC. This made sense when the framework was directly broken down into platforms and CODECs. However, as things are now broken down into components which can be connected as either the CPU or CODEC side of a DAI link it simplifies things if each side of the link is just told if it is provider or consumer of the clocks. Making this change allows us to remove one of the last parts of the ASoC core that needs to know if a driver is a CODEC driver, where it flips the clock format specifier if a CODEC driver is used on the CPU side of a DAI link, as well as just being conceptually more consistent with componentisation. The basic idea of this patch chain is to change the set_fmt callback from specifying if the CODEC is provider/consumer into directly specifying if the component is provider/consumer. To do this we add some new defines, and then to preserve bisectability, the migration is done by adding a new callback, converting over all existing CPU side drivers, converting the core, and then finally reverting back to the old callback. Converting the platform drivers makes sense as the existing defines are from the perspective of the CODEC and there are more CODEC drivers than platform drivers. Obviously a fair amount of this patch chain I was only able to build test, so any testing that can be done would be greatly appreciated.
2022-06-06ASoC: rockchip: simplify error handlingPierre-Louis Bossart1-2/+2
cppcheck warning: sound/soc/rockchip/rk3288_hdmi_analog.c:256:9: warning: Identical condition and return expression 'ret', return value is always 0 [identicalConditionAfterEarlyExit] return ret; ^ sound/soc/rockchip/rk3288_hdmi_analog.c:252:6: note: If condition 'ret' is true, the function will return/exit if (ret) ^ sound/soc/rockchip/rk3288_hdmi_analog.c:256:9: note: Returning identical expression 'ret' return ret; ^ Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20220520211719.607543-15-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-06ASoC: rockchip: Rename set_fmt_new back to set_fmtCharles Keepax2-2/+2
Now the core has been migrated across to the new direct clock specification we can move the drivers back to the normal set_fmt callback. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220519154318.2153729-46-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-06ASoC: rockchip: Update to use set_fmt_new callbackCharles Keepax2-8/+8
As part of updating the core to directly tell drivers if they are clock provider or consumer update these CPU side drivers to use the new direct callback. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Tested-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com> Link: https://lore.kernel.org/r/20220519154318.2153729-19-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-04-14ASoC: soc-card: Create jack kcontrol without pinsAkihiko Odaki4-21/+21
snd_soc_card_jack_new() allowed to create jack kcontrol without pins, but did not create kcontrols. The jack would not have kcontrols if pins were not going to be added. This renames the old snd_soc_card_jack_new() to snd_soc_card_jack_new_pins() for use when pins are provided or will be added later. The new snd_soc_card_jack_new() appropriately creates a jack for use without pins and adds a kcontrol. Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> Link: https://lore.kernel.org/r/20220408041114.6024-1-akihiko.odaki@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-03-23ASoC: rockchip: i2s_tdm: Fixup config for SND_SOC_DAIFMT_DSP_A/BMeng Tang1-5/+5
SND_SOC_DAIFMT_DSP_A: PCM delay 1 bit mode, L data MSB after FRM LRC SND_SOC_DAIFMT_DSP_B: PCM no delay mode, L data MSB during FRM LRC Fixes: 081068fd64140 (ASoC: rockchip: add support for i2s-tdm controller) Signed-off-by: Meng Tang <tangmeng@uniontech.com> Link: https://lore.kernel.org/r/20220318100146.23991-1-tangmeng@uniontech.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-03-16ASoC: rockchip: Fix PM usage reference of rockchip_i2s_tdm_resumezhangqilong1-1/+1
pm_runtime_get_sync will increment pm usage counter even it failed. Forgetting to putting operation will result in reference leak here. We fix it by replacing it with pm_runtime_resume_and_get to keep usage counter balanced. Fixes:081068fd64140 ("ASoC: rockchip: add support for i2s-tdm controller") Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com> Link: https://lore.kernel.org/r/20220315025415.2593762-1-zhangqilong3@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-03-08ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probeMiaoqian Lin1-5/+10
Fix the missing clk_disable_unprepare() before return from rockchip_i2s_probe() in the error handling case. Fixes: 01605ad12875 ("ASoC: rockchip-i2s: enable "hclk" for rockchip I2S controller") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Link: https://lore.kernel.org/r/20220307083553.26009-1-linmq006@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2022-01-28ASoC: rk3399_gru_sound: Wire up DP jack detectionBrian Norris1-0/+20
Now that the cdn-dp driver supports plug-change callbacks, let's wire it up. Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Link: https://lore.kernel.org/r/20220114150129.v2.3.I3c79b1466c14b02980071221e5b99283cd26ec77@changeid Signed-off-by: Mark Brown <broonie@kernel.org>
2021-12-20ASoC: rockchip: Use dev_err_probe() helperKuninori Morimoto1-7/+3
Use the dev_err_probe() helper, instead of open-coding the same operation. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/20211214020843.2225831-20-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-11-30ASoC: rockchip: i2s_tdm: Dup static DAI templateNicolas Frattaroli1-21/+31
Previously, the DAI template was used directly, which lead to fun bugs such as "why is my channels_max changing?" when one instantiated more than one i2s_tdm IP block in a device tree. This change makes it so that we instead duplicate the template struct, and then use that. Fixes: 081068fd6414 ("ASoC: rockchip: add support for i2s-tdm controller") Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com> Link: https://lore.kernel.org/r/20211125084900.417102-1-frattaroli.nicolas@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-10-27ASoC: rockchip: i2s_tdm: improve return value handlingPierre-Louis Bossart1-1/+1
cppcheck reports the following warning: sound/soc/rockchip/rockchip_i2s_tdm.c:599:9: warning: Identical condition and return expression 'ret', return value is always 0 [identicalConditionAfterEarlyExit] return ret; ^ sound/soc/rockchip/rockchip_i2s_tdm.c:594:6: note: If condition 'ret' is true, the function will return/exit if (ret) ^ sound/soc/rockchip/rockchip_i2s_tdm.c:599:9: note: Returning identical expression 'ret' return ret; ^ While the code is not wrong, it's clearer to return 0 directly. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20211025185933.144327-9-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
2021-10-21Merge branch 'asoc-5.15' into asoc-5.16Mark Brown4-60/+3
2021-10-20ASoC: rockchip: Use generic dmaengine codeSugar Zhang4-59/+2
This reverts commit 75b31192fe6ad20b42276b20ee3bdf1493216d63. 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.com Signed-off-by: Mark Brown <broonie@kernel.org>