Currently drvdata->clks is not being checked for an allocation failure,
leading to potential null pointer dereferencing. Fix this by adding a
check and returning -ENOMEM if an error occurred.
Fixes: 1220f6a76e ("ASoC: qcom: Add common array to initialize soc based core clocks")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Rohit kumar <rohitkr@codeaurora.org>
Addresses-Coverity: ("Dereference null return value")
Link: https://lore.kernel.org/r/20200819160103.164893-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Due to a mistake made while reordering patches, commit 90cac93297
("ASoC: sun8i-codec: Fix DAPM to match the hardware topology") added
the sun8i_codec_component_probe function without referencing it from
the component definition. Add the reference so the probe function gets
called as expected.
Fixes: 90cac93297 ("ASoC: sun8i-codec: Fix DAPM to match the hardware topology")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Link: https://lore.kernel.org/r/20200819034038.46418-1-samuel@sholland.org
Signed-off-by: Mark Brown <broonie@kernel.org>
The constant requires indirectly including a machine header file,
but it's not actually used any more since commit 87b132bc03 ("ASoC:
samsung: s3c24{xx,12}-i2s: port to use generic dmaengine API"), so
remove it completely.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-27-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Avoid machine specific headers by using a gpio lookup table
combined with a platform_driver for this board.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-26-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Avoid machine specific headers by using a gpio lookup table
combined with a platform_driver for this board.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-25-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Avoid machine specific headers by using a gpio lookup table
combined with a platform_driver for this board.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-24-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Add version and class information explicitly to prepare for support
for new devices.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200818141435.29205-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
It seems the datasheet has never used the word slave for this error
status bit and has always used the term address error. So update the
driver to match the datasheets and also in the process align a bit
better with avoiding the use of such words where possible.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200818160126.4852-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This patchset adds gapless compressed audio support on q6asm.
Gapless on q6asm is implemented using 2 streams in a single q6asm session.
First few patches such as stream id per each command, gapless flags
and silence meta data are for preparedness for adding gapless support.
Last patch implements copy callback to allow finer control over buffer offsets,
specially in partial drain cases.
This patchset is tested on RB3 aka DB845c platform.
This patchset as it is will support gapless however QDSP can also
support switching decoders on a single stream. Patches to support such feature
are send in different patchset which involves adding generic interfaces.
Thanks,
srini
Changes since v2:(mostly suggested by Pierre)
- removed unnessary kernel style comments,
- moved TIMESTAMP flag to respective patch.
- move preparatory code from gapless support patch to new one.
- fix subject prefix of one patch.
- add comments to clarify valid stream_ids
Srinivas Kandagatla (10):
ASoC: q6asm: rename misleading session id variable
ASoC: q6asm: make commands specific to streams
ASoC: q6asm: use flags directly from q6asm-dai
ASoC: q6asm: add length to write command token
ASoC: q6asm: add support to remove intial and trailing silence
ASoC: q6asm: add support to gapless flag in q6asm open
ASoC: q6asm-dai: add next track metadata support
ASoC: q6asm-dai: prepare set params to accept profile change
ASoC: q6asm-dai: add gapless support
ASoC: q6asm-dai: add support to copy callback
sound/soc/qcom/qdsp6/q6asm-dai.c | 414 +++++++++++++++++++++++--------
sound/soc/qcom/qdsp6/q6asm.c | 169 +++++++++----
sound/soc/qcom/qdsp6/q6asm.h | 49 ++--
3 files changed, 469 insertions(+), 163 deletions(-)
--
2.21.0
This patch set reorganises and fixes device and codec level probe/remove
handling within the driver, to allow clean probe and remove at the codec level.
This set relates to an issue raised by Yong Zhi where a codec level re-probe
would fail due to clks still being registered from the previous instantiation.
In addition some improvements around regulator handling and soft reset have
also been included.
Adam Thomson (3):
ASoC: da7219: Move required devm_* allocations to device level code
ASoC: da7219: Move soft reset handling to codec level probe
ASoC: da7219: Fix clock handling around codec level probe
sound/soc/codecs/da7219-aad.c | 85 +++++---
sound/soc/codecs/da7219-aad.h | 3 +
sound/soc/codecs/da7219.c | 493 +++++++++++++++++++++++-------------------
sound/soc/codecs/da7219.h | 1 +
4 files changed, 328 insertions(+), 254 deletions(-)
--
1.9.1
This patch series enables some features on the tlv3204 codec and also fixes some issues faced while testing
v2: Fixed the build error from snd_soc_component_read32
v1: initial ASoC: codec: tlv3204: Codec workaround series
Michael Sit Wei Hong (3):
ASoC: codec: tlv3204: Enable 24 bit audio support
ASoC: codec: tlv3204: Increased maximum supported channels
ASoC: codec: tlv3204: Moving GPIO reset and add ADC reset
sound/soc/codecs/tlv320aic32x4.c | 60 +++++++++++++++++++++++---------
1 file changed, 44 insertions(+), 16 deletions(-)
--
2.17.1
This series performs some minor cleanup on the driver for the analog
codec in the Allwinner A64, and hooks up the existing mute switches to
DAPM widgets, in order to provide improved power management.
Changes since v1:
- Collected Acked-by/Reviewed-by tags
- Used SOC_MIXER_NAMED_CTL_ARRAY to avoid naming a widget "Earpiece"
Samuel Holland (8):
ASoC: sun50i-codec-analog: Fix duplicate use of ADC enable bits
ASoC: sun50i-codec-analog: Gate the amplifier clock during suspend
ASoC: sun50i-codec-analog: Group and sort mixer routes
ASoC: sun50i-codec-analog: Make headphone routes stereo
ASoC: sun50i-codec-analog: Enable DAPM for headphone switch
ASoC: sun50i-codec-analog: Make line out routes stereo
ASoC: sun50i-codec-analog: Enable DAPM for line out switch
ASoC: sun50i-codec-analog: Enable DAPM for earpiece switch
sound/soc/sunxi/sun50i-codec-analog.c | 176 ++++++++++++++++----------
1 file changed, 111 insertions(+), 65 deletions(-)
--
2.26.2
This series fixes a couple of issues with the digital audio codec in the
Allwinner A64 SoC:
1) Left/right channels were swapped when playing/recording audio
2) DAPM topology was wrong, breaking some kcontrols
This is the minimum set of changes necessary to fix these issues in a
backward-compatible way. For that reason, some DAPM widgets still have
incorrect or confusing names; those and other issues will be fixed in
later patch sets.
Samuel Holland (7):
ASoC: dt-bindings: Add a new compatible for the A64 codec
ASoC: sun8i-codec: Fix DAPM to match the hardware topology
ASoC: sun8i-codec: Add missing mixer routes
ASoC: sun8i-codec: Add a quirk for LRCK inversion
ARM: dts: sun8i: a33: Update codec widget names
arm64: dts: allwinner: a64: Update codec widget names
arm64: dts: allwinner: a64: Update the audio codec compatible
.../sound/allwinner,sun8i-a33-codec.yaml | 6 +-
arch/arm/boot/dts/sun8i-a33-olinuxino.dts | 4 +-
arch/arm/boot/dts/sun8i-a33.dtsi | 4 +-
.../dts/allwinner/sun50i-a64-bananapi-m64.dts | 8 +-
.../dts/allwinner/sun50i-a64-orangepi-win.dts | 8 +-
.../boot/dts/allwinner/sun50i-a64-pine64.dts | 8 +-
.../dts/allwinner/sun50i-a64-pinebook.dts | 8 +-
.../dts/allwinner/sun50i-a64-pinephone.dtsi | 8 +-
.../boot/dts/allwinner/sun50i-a64-pinetab.dts | 8 +-
.../allwinner/sun50i-a64-sopine-baseboard.dts | 8 +-
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 8 +-
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 11 +-
sound/soc/sunxi/sun8i-codec.c | 137 ++++++++++++++----
13 files changed, 155 insertions(+), 71 deletions(-)
--
2.26.2
This patch series drops a printk message down to dev_dbg() because it
was noisy and then migrates this driver to use clk_hw based APIs instead
of clk based APIs because this device is a clk provider, not a clk
consumer. I've only lightly tested the last two patches but I don't have
all combinations of clks for this device.
Cc: Cheng-Yi Chiang <cychiang@chromium.org>
Cc: Shuming Fan <shumingf@realtek.com>
Stephen Boyd (3):
ASoC: rt5682: Use dev_dbg() in rt5682_clk_check()
ASoC: rt5682: Drop usage of __clk_get_name()
ASoC: rt5682: Use clk_hw based APIs for registration
sound/soc/codecs/rt5682.c | 73 ++++++++++++---------------------------
sound/soc/codecs/rt5682.h | 2 --
2 files changed, 23 insertions(+), 52 deletions(-)
Based on the last patch to this driver in linux-next.
base-commit: 6301adf942
--
Sent by a computer, using git, on the internet
On some platform(.e.g. i.MX8QM MEK), the "extal" clock is different
with the mclk of codec, then the clock rate is also different.
So it is better to get clock rate of "extal" rate by clk_get_rate,
don't reuse the clock rate of mclk.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1597047103-6863-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Currently list of Qualcomm drivers is growing, so put them in to a
proper menu so that it does not mix up with other ASOC configs in menuconfig.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200811105818.7890-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This allows solutions like ALSA UCM to utilize hardware mono downmix
for cases where mono output to a single speaker is desired only in
specific situations (like on a mobile phone).
Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/3662154.EqNIRYjrc8@pliszka
Signed-off-by: Mark Brown <broonie@kernel.org>
There are a couple of occurrences of "the the" in the Kconfig
text. Fix these.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/20200817224706.6139-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Drop the repeated words {that, the} in comments.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org
Link: https://lore.kernel.org/r/20200808012156.10827-1-rdunlap@infradead.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Follow recommendation in Documentation/scheduler/completion.rst and
use macro to declare local 'struct completion'
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200813175442.59067-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Use the new common snd_soc_of_parse_aux_devs() helper function
to parse auxiliary devices from the device tree. The new helper
is just a copy of meson_card_add_aux_devices() so there is no
functional change.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20200801100257.22658-3-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Use the new common snd_soc_of_parse_aux_devs() helper function
to parse auxiliary devices from the device tree. The code is slightly
different but the binding that is parsed is exactly the same.
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20200801100257.22658-2-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
simple-card.c and meson-card-utils.c use pretty much the same
helper function to parse auxiliary devices from the device tree.
Make it easier for other drivers to parse these from the device tree
as well by adding a shared helper function to soc-core.c.
snd_soc_of_parse_aux_devs() is pretty much a copy of
meson_card_add_aux_devices() from meson-card-utils.c
with two minor changes:
- Make property name configurable as parameter
- Change dev_err() message slightly for consistency with other
error messages in soc-core.c
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200801100257.22658-1-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
"AVDD" is for analog power supply, "DVDD" is for digital power
supply, they can improve the power management.
As the regulator is enabled in pm runtime resume, which is
behind the component driver probe, so accessing registers in
component driver probe will fail. Fix this issue by enabling
regcache_cache_only after pm_runtime_enable.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1597397561-2426-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add an binary mixer 'ELD' to each HDMI PCM device so user space
could read the ELD data of external HDMI display.
Signed-off-by: Brent Lu <brent.lu@intel.com>
Link: https://lore.kernel.org/r/20200818004413.12852-1-brent.lu@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warning:
sound/soc/intel/skylake/skl-topology.c:2879:29: style: Variable
'block_size' is assigned a value that is never used. [unreadVariable]
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-21-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Cppcheck complains about possible NULL pointer dereferences but the
assignments are actually not needed before walking through lists.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-20-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warning:
sound/soc/intel/skylake/skl-sst-utils.c:240:10: style: Variable 'ret'
is assigned a value that is never used. [unreadVariable]
int ret = 0;
^
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-19-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warning:
sound/soc/intel/skylake/skl-sst-cldma.c:248:10: style: Variable 'ret'
is assigned a value that is never used. [unreadVariable]
int ret = 0;
^
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-18-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warning:
sound/soc/intel/skylake/skl-nhlt.c:203:21: style: Variable 'rate' is
assigned a value that is never used. [unreadVariable]
unsigned long rate = 0;
^
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-17-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warnings:
sound/soc/intel/haswell/sst-haswell-ipc.c:430:8: style: Variable 'i'
is assigned a value that is never used. [unreadVariable]
sound/soc/intel/haswell/sst-haswell-ipc.c:1792:8: style: Variable 'id'
is assigned a value that is never used. [unreadVariable]
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-16-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Fix cppcheck warning:
sound/soc/intel/atom/sst/sst_loader.c:401:43: style: Redundant
condition: If 'EXPR == 4', the comparison 'EXPR != 3' is always
true. [redundantCondition]
if (sst_drv_ctx->sst_state != SST_RESET ||
^
In this case, if sst_state == SST_SHUTDOWN then the first test is
already true. 2014 bug, yay.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200813200147.61990-10-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>