Christophe JAILLET
ddfd534528
ASoC: codecs: Fix an error handling path in (rx|tx|va)_macro_probe()
...
After a successful lpass_macro_pds_init() call, lpass_macro_pds_exit() must
be called.
Add the missing call in the error handling path of the probe function and
use it.
Fixes: 9e3d83c528 ("ASoC: codecs: Add power domains support in digital macro codecs")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Link: https://lore.kernel.org/r/5b5a015a9b1dc8011c6a4053fa49da1f2531e47c.1648969065.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-04-08 15:43:55 +01:00
Takashi Iwai
646b907e15
Merge tag 'asoc-v5.18' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
...
ASoC: Updates for v5.18
Quite a quiet release for ASoC, lots of work on drivers and platforms
but nothing too groundbreaking but not much on the core itself:
- Start of moving SoF to support multiple IPC mechanisms.
- Use of NHLT ACPI table to reduce the amount of quirking required for
Intel systems.
- Some building blocks for use in forthcoming Intel AVS driver for
legacy Intel DSP firmwares.
- Support for AMD PDM, Atmel PDMC, Awinic AW8738, i.MX cards with
TLV320AIC31xx, Intel machines with CS35L41 and ESSX8336, Mediatek
MT8181 wideband bluetooth, nVidia Tegra234, Qualcomm SC7280, Renesas
RZ/V2L, Texas Instruments TAS585M
2022-03-21 16:19:21 +01:00
Srinivasa Rao Mandadapu
9e3d83c528
ASoC: codecs: Add power domains support in digital macro codecs
...
Add support for enabling required power domains in digital macro codecs.
macro and dcodec power domains are being requested as clocks by HLOS
in ADSP based architectures and ADSP internally handling as powerdomains.
In ADSP bypass case need to handle them as power domains explicitly.
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com >
Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com >
Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com >
Reported-by: kernel test robot <lkp@intel.com >
Link: https://lore.kernel.org/r/1645898959-11231-2-git-send-email-quic_srivasam@quicinc.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-28 13:30:37 +00:00
Srinivas Kandagatla
366ff79ed5
ASoC: codecs: rx-macro: add runtime pm support
...
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220224111718.6264-13-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-25 13:51:10 +00:00
Srinivas Kandagatla
eaba113430
ASoC: codecs: rx-macro: setup soundwire clks correctly
...
For SoundWire Frame sync to be generated correctly we need both MCLK
and MCLKx2 (npl). Without pm runtime enabled these two clocks will remain on,
however after adding pm runtime support its possible that NPl clock could be
turned off even when SoundWire controller is active.
Fix this by enabling mclk and npl clk when SoundWire clks are enabled.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220224111718.6264-10-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-25 13:51:07 +00:00
Srinivas Kandagatla
43b647d994
ASoC: codecs: rx-macro: move to individual clks from bulk
...
Using bulk clocks and referencing them individually using array index is
not great for readers.
So move them to individual clocks handling and also remove some unnecessary
error handling in the code.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220224111718.6264-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-25 13:51:01 +00:00
Srinivas Kandagatla
70a5e96bad
ASoC: codecs: rx-macro: move clk provider to managed variants
...
move clk provider registration to managed api variants, this should help
with some code tidyup.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220224111718.6264-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-25 13:50:59 +00:00
Srinivas Kandagatla
bcfe5f76cc
ASoC: codecs: rx-macro: fix accessing array out of bounds for enum type
...
Accessing enums using integer would result in array out of bounds access
on platforms like aarch64 where sizeof(long) is 8 compared to enum size
which is 4 bytes.
Fixes: 4f692926f5 ("ASoC: codecs: lpass-rx-macro: add dapm widgets and route")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220222183212.11580-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-23 02:04:03 +00:00
Srinivas Kandagatla
42c709c4e1
ASoC: codecs: rx-macro: fix accessing compander for aux
...
AUX interpolator does not have compander, so check before accessing
compander data for this.
Without this checkan array of out bounds access will be made in
comp_enabled[] array.
Fixes: 4f692926f5 ("ASoC: codecs: lpass-rx-macro: add dapm widgets and route")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220222183212.11580-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-02-23 02:04:02 +00:00
Srinivas Kandagatla
fca041a3ab
ASoC: codecs: lpass-rx-macro: fix sidetone register offsets
...
For some reason we ended up with incorrect register offfset calcuations
for sidetone. regmap clearly throw errors when accessing these incorrect
registers as these do not belong to any read/write ranges.
so fix them to point to correct register offsets.
Fixes: f3ce6f3c9a ("ASoC: codecs: lpass-rx-macro: add iir widgets")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20220126113549.8853-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-01-26 13:31:38 +00:00
Jiasheng Jiang
aa505ecccf
ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
...
Since the potential failure of the devm_regmap_init_mmio(), it will
return error pointer and be assigned to the regmap.
Then the error pointer will be dereferenced.
For example rx->regmap will be used in rx_macro_mclk_enable().
Therefore, it should be better to check it.
Fixes: af3d54b997 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Fixes: c39667ddcf ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: 809bcbcece ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn >
Link: https://lore.kernel.org/r/20220121171031.2826198-1-jiasheng@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-01-24 13:32:00 +00:00
Srinivas Kandagatla
cb04d8cd0b
ASoC: codecs: lpass-rx-macro: fix HPHR setting CLSH mask
...
For some reason we ended up using snd_soc_component_write_field
for HPHL and snd_soc_component_update_bits for HPHR, so fix this.
Fixes: af3d54b997 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20211116114623.11891-4-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-11-16 14:29:53 +00:00
Srinivasa Rao Mandadapu
9f589cf0f9
ASoC: codecs: Change bulk clock voting to optional voting in digital codecs
...
Change bulk clock frequency voting to optional bulk voting in va, rx and tx macros
to accommodate both ADSP and ADSP bypass based lpass architectures.
Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org >
Co-developed-by: Venkata Prasad Potturu <potturu@codeaurora.org >
Signed-off-by: Venkata Prasad Potturu <potturu@codeaurora.org >
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/1635234188-7746-6-git-send-email-srivasam@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-10-26 12:35:21 +01:00
Srinivasa Rao Mandadapu
9d8c69814d
ASoC: qcom: Add compatible names in va,wsa,rx,tx codec drivers for sc7280
...
Add compatible names for sc7280 based targets in digital codec drivers
va,wsa,rx and tx.
Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org >
Co-developed-by: Venkata Prasad Potturu <potturu@codeaurora.org >
Signed-off-by: Venkata Prasad Potturu <potturu@codeaurora.org >
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/1635234188-7746-2-git-send-email-srivasam@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-10-26 12:35:17 +01:00
Colin Ian King
622d9ac3d9
ASoC: codecs: lpass-rx-macro: clean up for-loop indentation in switch statement
...
The for-loop is not indented enough and needs one more level
of indentation. Add in the indentation across the block of code.
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Link: https://lore.kernel.org/r/20210709152424.460446-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-07-15 17:24:47 +01:00
Mark Brown
d4e9889b02
Merge branch 'for-5.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.14
2021-05-25 16:44:26 +01:00
Wan Jiabing
f758b9ef9a
ASoC: codecs: lpass-rx-macro: Remove unneeded semicolon
...
Fix the following coccicheck warning:
./sound/soc/codecs/lpass-rx-macro.c:2631:2-3: Unneeded semicolon
Signed-off-by: Wan Jiabing <wanjiabing@vivo.com >
Link: https://lore.kernel.org/r/20210506021005.4897-1-wanjiabing@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-05-10 13:05:37 +01:00
Srinivas Kandagatla
d4335d058f
ASoC: codecs: lpass-rx-macro: add missing MODULE_DEVICE_TABLE
...
Fix module loading by adding missing MODULE_DEVICE_TABLE.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210510103844.1532-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-05-10 13:00:22 +01:00
Mark Brown
ffc9841d52
Merge remote-tracking branch 'asoc/for-5.13' into asoc-next
2021-04-23 19:01:02 +01:00
Pierre-Louis Bossart
36924a12c3
ASoC: codecs: lpass-rx-macro: remove useless return
...
cppcheck warning:
sound/soc/codecs/lpass-rx-macro.c:1626:9: warning: Identical condition
and return expression 'ret', return value is always 0
[identicalConditionAfterEarlyExit]
return ret;
^
sound/soc/codecs/lpass-rx-macro.c:1623:6: note: If condition 'ret' is
true, the function will return/exit
if (ret)
^
sound/soc/codecs/lpass-rx-macro.c:1626:9: note: Returning identical
expression 'ret'
return ret;
^
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Daniel Baluta <daniel.baluta@gmail.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20210416191144.27006-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-04-19 14:03:32 +01:00
Ye Bin
857b602a34
ASoC: codecs: lpass-rx-macro: constify static struct snd_soc_dai_ops
...
The snd_soc_dai_ops structures is only stored in the ops field of a
snd_soc_dai_driver structure, so make the snd_soc_dai_ops structure
const to allow the compiler to put it in read-only memory.
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Ye Bin <yebin10@huawei.com >
Link: https://lore.kernel.org/r/20210408062650.803309-1-yebin10@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-04-09 13:39:45 +01:00
Srinivas Kandagatla
adfc3ed7dc
ASoC: codecs: lpass-rx-macro: set npl clock rate correctly
...
NPL clock rate is twice the MCLK rate, so set this correctly to
avoid soundwire timeouts.
Fixes: af3d54b997 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210331171235.24824-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-04-01 12:18:09 +01:00
Yang Li
a5e78cfbd5
ASoC: codecs: fix platform_no_drv_owner.cocci warnings
...
./sound/soc/codecs/lpass-rx-macro.c:3588:3-8: No need to set .owner here.
The core will do it.
Remove .owner field if calls are used which set it automatically
Reported-by: Abaci Robot <abaci@linux.alibaba.com >
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com >
Link: https://lore.kernel.org/r/1614762481-102466-1-git-send-email-yang.lee@linux.alibaba.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-03-10 13:13:21 +00:00
Colin Ian King
ff56878543
ASoC: codecs: lpass-rx-macro: remove redundant initialization of variable hph_pwr_mode
...
The variable hph_pwr_mode is being initialized with a value that is
never read and it is being updated later with a new value. The
initialization is redundant and can be removed.
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210215200501.90697-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-03-10 13:07:17 +00:00
Colin Ian King
0c0a588378
ASoC: codecs: lpass-rx-macro: Fix uninitialized variable ec_tx
...
There is potential read of the uninitialized variable ec_tx if the call
to snd_soc_component_read fails or returns an unrecognized w->name. To
avoid this corner case, initialize ec_tx to -1 so that it is caught
later when ec_tx is bounds checked.
Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: 4f692926f5 ("ASoC: codecs: lpass-rx-macro: add dapm widgets and route")
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Link: https://lore.kernel.org/r/20210215163313.84026-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-03-10 12:48:28 +00:00
Srinivas Kandagatla
f3ce6f3c9a
ASoC: codecs: lpass-rx-macro: add iir widgets
...
This patch adds iir widgets and mixers on this codec
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210211122735.5691-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-02-11 13:11:30 +00:00
Srinivas Kandagatla
4f692926f5
ASoC: codecs: lpass-rx-macro: add dapm widgets and route
...
This patch adds dapm widgets and routes on this codec
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210211122735.5691-4-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-02-11 13:11:29 +00:00
Srinivas Kandagatla
af3d54b997
ASoC: codecs: lpass-rx-macro: add support for lpass rx macro
...
LPASS RX Codec Macro is available in Qualcomm LPASS (Low Power Audio SubSystem).
This is used for connecting with SoundWire devices like WCD938x Codecs to provide
headphone/ear/lineout functionality.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20210211122735.5691-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org >
2021-02-11 13:11:28 +00:00