OSDN Git Service
Cheng-Yi Chiang [Tue, 22 Sep 2020 06:23:16 +0000 (14:23 +0800)]
ASoC: hdmi-codec: Use set_jack ops to set jack
Use set_jack ops to set jack so machine drivers do not need to include
hdmi-codec.h explicitly.
Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200922062316.1172935-1-cychiang@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Mon, 21 Sep 2020 22:57:25 +0000 (23:57 +0100)]
Merge series "ASoC: SOF: fix kcontrol size checks" from Kai Vehmanen <kai.vehmanen@linux.intel.com>:
Series that fixes checks for 'size' in kcontrol get/put ext_bytes methods
for SOF. The gaps in these checks were discovered via cppcheck warnings
on unused variable values.
Pierre-Louis Bossart (5):
ASoC: SOF: control: fix size checks for ext_bytes control .get()
ASoC: SOF: control: fix size checks for volatile ext_bytes control
.get()
ASoC: SOF: control: add size checks for ext_bytes control .put()
ASoC: SOF: control: remove const in sizeof()
ASoC: SOF: topology: remove const in sizeof()
sound/soc/sof/control.c | 53 +++++++++++++++++++++++++++++++---------
sound/soc/sof/topology.c | 2 +-
2 files changed, 43 insertions(+), 12 deletions(-)
--
2.27.0
Kai Vehmanen [Mon, 21 Sep 2020 10:08:41 +0000 (13:08 +0300)]
ASoC: hdac: make SOF HDA codec driver probe deterministic
To provide backward compatibility to older systems, the SOF HDA driver
allows user to specify which HDMI codec driver to use at runtime via
kernel parameter. This mechanism has a subtle flaw in that it assumes
the codec drivers not to be loaded when the SOF PCI driver is loaded.
The problem is rooted in use of the hdev->type field.
snd_hdac_ext_bus_device_init() initializes this field to HDA_DEV_ASOC.
This signals the HDA core that ASoC drivers should be considered in
driver matching (hda_bus_match()). The SOF and SST drivers continue by
overriding this field to HDA_DEV_LEGACY and proceeding to load driver
modules with request_module(). Correct drivers will get loaded and
attached.
If however the codec drivers are already loaded when
snd_hdac_ext_bus_device_init() is called, the matching will not work as
expected as device type is still set to HDA_DEV_ASOC. Specifically if
hdac-hdmi is attached when machine driver is configured to use hdac-hda,
this leads to out-of-bounds memory access in
hda_dsp_hdmi_build_controls().
Fix the issue by adding codec type as a parameter to
snd_hdac_ext_bus_device_init() and ensuring type is set correctly from
the start.
Fixes:
139c7febad1a ("ASoC: SOF: Intel: add support for snd-hda-codec-hdmi")
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200921100841.2882662-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:48 +0000 (14:05 -0500)]
ASoC: tas2770: Refactor sample rate function
Refactor the tas2770_set_samplerate to simplify the code and access the
I2C bus only once per rate request. The ramp rate and sample rate bits
are contained in the same register so a single call to the
snd_soc_update_bits function is all that is needed
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-9-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:47 +0000 (14:05 -0500)]
ASoC: tas2770: Fix the spacing and new lines
Fix up the spacing for argument alignment and add new lines to separate
code. Eliminate unneccessary goto statements when the error code could
just be returned.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-8-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:45 +0000 (14:05 -0500)]
ASoC: tas2770: Convert bit mask to GENMASK in header
Update the hardcoded masks with the GENMASK macro. Also update some of
the hardcoded bits with the BIT macro
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-6-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:44 +0000 (14:05 -0500)]
ASoC: tas2770: Fix unbalanced calls to pm_runtime
Fix the unbalanced call to the pm_runtime_disable when removing the
module. pm_runtime_enable is not called nor is the pm_runtime setup in
the code. Remove the i2c_remove function and the pm_runtime_disable.
Fixes:
1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-5-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:42 +0000 (14:05 -0500)]
dt-bindings: tas2770: Fix I2C addresses for the TAS2770
The I2C addresses listed in the yaml are not correct. The addresses can
range from 0x41 through 0x48 based on register configurations. Fix the
example and the description.
Fixes:
4b7151dadfd4 ("dt-bindings: ASoC: Add tas2770 smart PA dt bindings")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-3-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Mon, 21 Sep 2020 15:38:20 +0000 (10:38 -0500)]
ASoC: tas2562: Add the TAS2110 class-D amplifier
Add the TAS2110 amplifier to the TAS2562 driver. The TAS2110 is register
and bitmap compatible. The chips differ in that the TAS2110 does not
have the I/V Sense feedback path. Since these features do not exist the
device needs to be registered without these controls.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200921153820.18357-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Mon, 21 Sep 2020 15:38:19 +0000 (10:38 -0500)]
dt-bindings: tas2562: Add the TAS2110 amplifier
Add the TAS2110 amplifier compatible.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200921153820.18357-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Mon, 21 Sep 2020 11:08:12 +0000 (14:08 +0300)]
ASoC: SOF: control: add size checks for ext_bytes control .put()
Make sure the TLV header and size are consistent before copying from
userspace.
Fixes:
c3078f5397046 ('ASoC: SOF: Add Sound Open Firmware KControl support')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200921110814.2910477-4-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Mon, 21 Sep 2020 11:08:11 +0000 (14:08 +0300)]
ASoC: SOF: control: fix size checks for volatile ext_bytes control .get()
Mirror addition of checks for regular ext_bytes controls.
Fixes:
783560d02dd61 ('ASoC: SOF: Implement snd_sof_bytes_ext_volatile_get kcontrol IO')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200921110814.2910477-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Mon, 21 Sep 2020 11:08:10 +0000 (14:08 +0300)]
ASoC: SOF: control: fix size checks for ext_bytes control .get()
cppcheck complains twice:
sound/soc/sof/control.c:436:2: style: Assignment of function parameter
has no effect outside the function. [uselessAssignmentArg]
size -= sizeof(const struct snd_ctl_tlv);
^
sound/soc/sof/control.c:436:7: style: Variable 'size' is assigned a
value that is never used. [unreadVariable]
size -= sizeof(const struct snd_ctl_tlv);
Somehow we dropped the checks for the size argument when upstreaming
the code, somewhere between v5 and v6.
Re-add a size check to avoid providing userspace with more data that
it asked for.
Also fix all error codes, we should return -ENOSPC instead of -EINVAL.
Fixes:
c3078f5397046 ('ASoC: SOF: Add Sound Open Firmware KControl support')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200921110814.2910477-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Mon, 21 Sep 2020 21:37:14 +0000 (22:37 +0100)]
Merge branch 'asoc-5.9' into asoc-5.10
Miquel Raynal [Fri, 11 Sep 2020 17:31:40 +0000 (19:31 +0200)]
ASoC: tlv320aic32x4: Enable fast charge
At power-up the analog circuits may take up to one full second before
being charged with the default configuration. Using the analog blocks
before they are ready generates a *very* crappy sound.
Enable the fast charge feature, which will require a bit more power
than normal charge but will definitely speed up the starting operation
by shrinking this delay to up to 40 ms.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20200911173140.29984-4-miquel.raynal@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Miquel Raynal [Fri, 11 Sep 2020 17:31:39 +0000 (19:31 +0200)]
ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
Current code expects a single channel to be always used. Fix this
situation by forwarding the number of channels used. Then fix the
derivation of the bdiv clock rate.
Fixes:
96c3bb00239d ("ASoC: tlv320aic32x4: Dynamically Determine Clocking")
Suggested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20200911173140.29984-3-miquel.raynal@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Miquel Raynal [Fri, 11 Sep 2020 17:31:38 +0000 (19:31 +0200)]
ASoC: tlv320aic32x4: Ensure a minimum delay before clock stabilization
As indicated in the datasheet, a 10ms delay must be observed after
programming the divisors.
The lack of delay prevents the codec to work properly and the playback
appears extremely slow and totally un-audible on a custom sama5 based
board.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20200911173140.29984-2-miquel.raynal@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shuming Fan [Mon, 21 Sep 2020 09:43:08 +0000 (17:43 +0800)]
ASoC: rt711: wait for the delayed work to finish when the system suspends
To avoid the IO error, we need to cancel the delayed work and wait for it to finish.
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200921094308.31921-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:46 +0000 (14:05 -0500)]
ASoC: tas2770: Fix error handling with update_bits
snd_soc_update_bits returns a 1 when the bit was successfully updated,
returns a 0 is no update was needed and a negative if the call failed.
The code is currently failing the case of a successful update by just
checking for a non-zero number. Modify these checks and return the error
code only if there is a negative.
Fixes:
1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-7-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:43 +0000 (14:05 -0500)]
ASoC: tas2770: Fix required DT properties in the code
The devicetree binding indicates that the ti,asi-format, ti,imon-slot-no
and ti,vmon-slot-no are not required but the driver requires them or it
fails to probe. Honor the binding and allow these entries to be optional
and set the corresponding values to the default values for each as defined
in the data sheet.
Fixes:
1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-4-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:41 +0000 (14:05 -0500)]
ASoC: tas2770: Add missing bias level power states
Add the BIAS_STANDBY and BIAS_PREPARE to the set_bias_level or else the
driver will return -EINVAL which is not correct as they are valid
states.
Fixes:
1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 19:05:40 +0000 (14:05 -0500)]
ASoC: tas2770: Fix calling reset in probe
tas2770_reset is called during i2c probe. The reset calls the
snd_soc_component_write which depends on the tas2770->component being
available. The component pointer is not set until codec_probe so move
the reset to the codec_probe after the pointer is set.
Fixes:
1a476abc723e6 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918190548.12598-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shuming Fan [Mon, 21 Sep 2020 09:42:44 +0000 (17:42 +0800)]
ASoC: rt700: wait for the delayed work to finish when the system suspends
To avoid the IO error, we need to cancel the delayed work and wait for it to finish.
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200921094244.31869-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 15:01:30 +0000 (10:01 -0500)]
ASoC: tas2562: Add the TAS2564 compatible
Add the TAS2564 as a supported amplifier. This amplifier is register,
bitmap and feature compatible to the TAS2562.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918150130.21015-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Fri, 18 Sep 2020 15:01:29 +0000 (10:01 -0500)]
dt-bindings: tas2562: Add TAS2564 to binding
Add the TAS2564 compatible and data sheet link to the binding.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918150130.21015-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Kai Vehmanen [Mon, 21 Sep 2020 10:47:46 +0000 (13:47 +0300)]
ASoC: SOF: imx: add missing MODULE_LICENSE() for imx-common
Fix build warning:
WARNING: modpost: missing MODULE_LICENSE() in sound/soc/sof/imx/imx-common.o
Fixes:
18ebffe4d043 ("ASoC: SOF: imx: Add debug support for imx platforms")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@gmail.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200921104746.2903507-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Daniel Baluta [Mon, 21 Sep 2020 10:50:38 +0000 (13:50 +0300)]
ASoC: SOF: pm: Fix prepare callback behavior for OF usecase
On i.MX platforms PM is not managed via ACPI although CONFIG_ACPI
can be set. So, in order to correctly set the system target state
we introduce a flag for platforms that require to use acpi target
states.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200921105038.2909899-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Guillermo Rodríguez [Fri, 18 Sep 2020 13:43:16 +0000 (15:43 +0200)]
ASoC: cs42l51: add additional ADC volume controls
Add volume controls for:
- Analog programmable gain amplifier (PGA) (-3 .. +12 dB)
- ADC attenuator (0 .. -96 dB)
Signed-off-by: Guillermo Rodríguez <guille.rodriguez@gmail.com>
Acked-by: David Rhodes <David.rhodes@cirrus.com>
Link: https://lore.kernel.org/r/20200918134317.22574-1-guille.rodriguez@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Keyon Jie [Mon, 21 Sep 2020 10:45:44 +0000 (13:45 +0300)]
ASoC: SOF: topology: fix the process being scheduled on core0 always
In commit
783898ce68de ("ASoC: SOF: append extended data to
sof_ipc_comp_process") the process components are set to run on the
fixed core 0, this break us from scheduling components on any other DSP
core.
Since we can get the DSP core index from swidget->core, it is duplicated
to pass the extra 'core' argument for those sof_widget_load_xx()
functions.
Here removes the duplicate 'core' argument and get component core from
swidget->core directly to fix the issue mentioned above.
Fixes:
783898ce68de ("ASoC: SOF: append extended data to sof_ipc_comp_process")
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200921104544.2897112-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Camel Guo [Fri, 18 Sep 2020 11:40:25 +0000 (13:40 +0200)]
ASoC: tlv320adcx140: Add support for configuring GPIO pin
Add support to configure the GPIO pin to the specific configuration.
The GPIO pin can be configured as GPO, IRQ, SDOUT2, PDMCLK, MICBASE_EN,
GPI, MCLK, SDIN, PDMDIN1, PDMDIN2, PDMDIN3 or PDMDIN4 and the output
drive can be configured with various configuration.
Signed-off-by: Camel Guo <camelg@axis.com>
Link: https://lore.kernel.org/r/20200918114025.18205-2-camel.guo@axis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Camel Guo [Fri, 18 Sep 2020 11:40:24 +0000 (13:40 +0200)]
dt-bindings: tlv320adcx140: Add GPIO config and drive config
Add properties for configuring the General Purpose Input Output (GPIO).
There are 2 settings for GPIO, configuration and the output drive type.
Signed-off-by: Camel Guo <camelg@axis.com>
Acked-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200918114025.18205-1-camel.guo@axis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 17 Sep 2020 16:40:16 +0000 (17:40 +0100)]
Merge series "ASoC: fsl_sai: update the register list" from Shengjiu Wang <shengjiu.wang@nxp.com>:
As sai ip is upgraded, so update sai register list.
Shengjiu Wang (3):
ASoC: fsl_sai: Add new added registers and new bit definition
ASoC: fsl_sai: Add fsl_sai_check_version function
ASoC: fsl_sai: Set MCLK input or output direction
changes in v2:
- update commit message for first commit
- Add acked-by Nicolin
sound/soc/fsl/fsl_sai.c | 77 ++++++++++++++++++++++++++++++++++++
sound/soc/fsl/fsl_sai.h | 87 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 164 insertions(+)
--
2.27.0
Mark Brown [Thu, 17 Sep 2020 16:40:15 +0000 (17:40 +0100)]
Merge series "ASoC: SOF: small fixes for 5.10" from Kai Vehmanen <kai.vehmanen@linux.intel.com>:
Series that adds debug support for IMX platforms, more details to
FW version information, adds missing -EACCESS handling to
pm_runtime_get_sync() calls and a set of minor cosmetic, trace
verbosity and coding style issues.
Guennadi Liakhovetski (3):
ASoC: SOF: (cosmetic) remove redundant "ret" variable uses
ASoC: SOF: remove several superfluous type-casts
ASoC: SOF: fix range checks
Iulian Olaru (1):
ASoC: SOF: imx: Add debug support for imx platforms
Karol Trzcinski (1):
ASoC: SOF: Add `src_hash` to `sof_ipc_fw_version` structure
Pierre-Louis Bossart (3):
ASoC: SOF: debug: update test for pm_runtime_get_sync()
ASoC: SOF: control: update test for pm_runtime_get_sync()
ASoC: SOF: Intel: hda: reduce verbosity of boot error logs
include/sound/sof/info.h | 4 +-
sound/soc/sof/control.c | 62 +++++++++++++--------------
sound/soc/sof/debug.c | 2 +-
sound/soc/sof/imx/Kconfig | 8 ++++
sound/soc/sof/imx/Makefile | 3 ++
sound/soc/sof/imx/imx-common.c | 72 ++++++++++++++++++++++++++++++++
sound/soc/sof/imx/imx-common.h | 16 +++++++
sound/soc/sof/imx/imx8.c | 23 +++++++++-
sound/soc/sof/imx/imx8m.c | 17 +++++++-
sound/soc/sof/intel/hda-loader.c | 16 +++----
sound/soc/sof/intel/hda.c | 12 ++++--
sound/soc/sof/intel/hda.h | 2 +
sound/soc/sof/sof-audio.c | 6 +--
sound/soc/sof/sof-priv.h | 8 ++++
sound/soc/sof/topology.c | 44 ++++++++++---------
15 files changed, 226 insertions(+), 69 deletions(-)
create mode 100644 sound/soc/sof/imx/imx-common.c
create mode 100644 sound/soc/sof/imx/imx-common.h
--
2.27.0
Mark Brown [Thu, 17 Sep 2020 16:40:14 +0000 (17:40 +0100)]
Merge series "ASoC: q6afe: add clocks support" from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
q6afe already exposes clocks using apis, but not as proper
clock controller driver. This patch puts those clocks
in to a proper clock controller so that other drivers that
depend on those clocks can be properly expressed.
Srinivas Kandagatla (2):
ASoC: q6afe: dt-bindings: add q6afe clock bindings
ASoC: q6afe-clocks: add q6afe clock controller
.../devicetree/bindings/sound/qcom,q6afe.txt | 23 ++
include/dt-bindings/sound/qcom,q6afe.h | 74 ++++-
sound/soc/qcom/Kconfig | 4 +
sound/soc/qcom/qdsp6/Makefile | 1 +
sound/soc/qcom/qdsp6/q6afe-clocks.c | 270 ++++++++++++++++++
5 files changed, 371 insertions(+), 1 deletion(-)
create mode 100644 sound/soc/qcom/qdsp6/q6afe-clocks.c
--
2.21.0
Shengjiu Wang [Tue, 15 Sep 2020 13:57:00 +0000 (21:57 +0800)]
ASoC: ak4458: Add DSD support for ak4458 and ak4497
Ak4458 can't support DSD512 format, but ak4497 can, so add
a new enum variable (enum ak4458_type) in ak4458_drvdata to
distinguish these two platforms.
Ak4497 has two kinds of DSD input pin, it can be selected by
the dsd-path property from DT.
In hw_params(), bit clock is calculated according to different
DSD format (DSD64, DSD128, DSD256, DSD512), then registers
are configured.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1600178220-28973-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Tue, 15 Sep 2020 13:56:59 +0000 (21:56 +0800)]
ASoC: dt-bindings: ak4458: Add dsd-path property
Add "dsd-path" property, which is used for ak4497 codec
to select the DSD input pin.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1600178220-28973-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 15 Sep 2020 19:06:03 +0000 (14:06 -0500)]
ASoC: tlv320adcx140: Add ASI Tx drive
Add a property to indicate if the device is to go into a High-z state on
the Tx ASI output pins when the device is idle.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200915190606.1744-3-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 15 Sep 2020 19:06:04 +0000 (14:06 -0500)]
ASoC: tlv320adcx140: Add the config to configure Tx ASI output
Add code to allow the ASI Tx output to be placed into High-z mode
during unused ASI cycles. This allows for other devices that may be on
the bus to drive the ASI out. By default the 320adcx140 sends 0's for
unused cycles.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200915190606.1744-4-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Douglas Anderson [Wed, 16 Sep 2020 18:15:55 +0000 (11:15 -0700)]
ASoC: qcom: lpass-sc7180: Add MODULE_DEVICE_TABLE
The lpass-sc7180 driver can be built as a module but is lacking a
MODULE_DEVICE_TABLE. This means it won't auto-load. Fix this
oversight.
Fixes:
24caf8d9eb10 ("ASoC: qcom: lpass-sc7180: Add platform driver for lpass audio")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20200916111545.1.I4c3758817d94c433bafeac344a395e21ea6657e3@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
Rander Wang [Thu, 17 Sep 2020 10:36:09 +0000 (13:36 +0300)]
ASoC: SOF: Intel: Add support for tgl-h
SOF will support tgl-h and tgl-lp in different FW binaries due to
hardware difference, so create another dev_desc entry with FW name
of sof-tgl-h.ri and dsp_desc named tglh_chip_info for tgl-h.
Fixes:
c8d2e2bfaeffa ("ASoC: SOF: Intel: add PCI IDs for ICL-H and TGL-H")
Signed-off-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917103609.2559916-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Matthias Schiffer [Wed, 2 Sep 2020 13:30:43 +0000 (15:30 +0200)]
ASoC: codec: tlv320aic32x4: do software reset before clock registration
To avoid the actual PLL settings to differ from the state expected by
the clock driver, the codec should only be fully reset before the clocks
are registered. But we also need to ensure that the software reset
happens at all before clock registration, as not all boards have a reset
GPIO.
Move the software reset from aic32x4_component_probe() to
aic32x4_probe() and reorder the reset and registration sequence:
1. Reset via GPIO (if available)
2. Reset via software
3. Register component
4. Register clocks
Note that aic32x4_component_probe() is only called after aic32x4_probe()
has finished, so the reset in aic32x4_component_probe() was happening too
late.
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Link: https://lore.kernel.org/r/20200902133043.19504-2-matthias.schiffer@ew.tq-group.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Matthias Schiffer [Wed, 2 Sep 2020 13:30:42 +0000 (15:30 +0200)]
ASoC: codec: tlv320aic32x4: fix missing aic32x4_disable_regulators() in error path
The regulators need to be disabled in the aic32x4_register_clocks()
failure case as well.
Fixes:
9d4befff5a95 ("ASoC: codec: tlv3204: Moving GPIO reset and add ADC reset")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Link: https://lore.kernel.org/r/20200902133043.19504-1-matthias.schiffer@ew.tq-group.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Tue, 8 Sep 2020 14:59:54 +0000 (16:59 +0200)]
ASoC: dt-bindings: Correct interrupt flags in examples
GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
These are simple defines so they could be used in DTS but they will not
have the same meaning:
1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
2. GPIO_ACTIVE_LOW = 1 = IRQ_TYPE_EDGE_RISING
Correct the interrupt flags, assuming the author of the code wanted some
logical behavior behind the name "ACTIVE_xxx", this is:
ACTIVE_HIGH => IRQ_TYPE_LEVEL_HIGH
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200908145954.4629-1-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Krzysztof Kozlowski [Wed, 2 Sep 2020 16:00:25 +0000 (18:00 +0200)]
ASoC: dt-bindings: aries-wm8994: Match compatibles with enum
The common pattern for enumerating compatibles is enum, not oneOf.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200902160025.20922-1-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 17 Sep 2020 15:35:38 +0000 (16:35 +0100)]
Merge branch 'asoc-5.9' into asoc-5.10
Shengjiu Wang [Thu, 17 Sep 2020 06:11:19 +0000 (14:11 +0800)]
ASoC: fsl_sai: Set MCLK input or output direction
SAI support select MCLK direction with version.major > 3
and version.minor > 1, the default direction is input,
set it to be output according to DT property.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/1600323079-5317-4-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 17 Sep 2020 06:11:18 +0000 (14:11 +0800)]
ASoC: fsl_sai: Add fsl_sai_check_version function
fsl_sai_check_version can help to parse the version info
in VERID and PARAM registers.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/1600323079-5317-3-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Shengjiu Wang [Thu, 17 Sep 2020 06:11:17 +0000 (14:11 +0800)]
ASoC: fsl_sai: Add new added registers and new bit definition
On i.MX8MQ/i.MX8MN/i.MX8MM platform, the sai IP is upgraded.
There are some new registers and new bit definition. This
patch is to complete the register list.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/1600323079-5317-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 13:57:08 +0000 (14:57 +0100)]
ASoC: q6afe-clocks: add q6afe clock controller
q6afe already exposes lpass clocks, however this was not presented
as proper clock controller driver. This patch basically adds clock
controller support for q6afe clocks.
This is useful for other drivers like lpass digital codec or lpass
lowpower island drivers to request or vote for these clocks.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910135708.14842-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 13:57:07 +0000 (14:57 +0100)]
ASoC: q6afe: dt-bindings: add q6afe clock bindings
q6afe exposes various lpass clocks controls via q6dsp q6afe commands.
This patch adds bindings required for this clock controller.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910135708.14842-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 17 Sep 2020 10:56:33 +0000 (13:56 +0300)]
ASoC: SOF: Intel: hda: reduce verbosity of boot error logs
Previous commits reduced the verbosity of errors during boot
iterations, but there are still a couple remaining which generate
false positives. Errors should only be logged when after last attempt
to download firmware failed.
Duplicating logs and assigning them different levels based on the
iteration number isn't really elegant, use macro as suggested by
Guennadi.
Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@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: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-9-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Guennadi Liakhovetski [Thu, 17 Sep 2020 10:56:32 +0000 (13:56 +0300)]
ASoC: SOF: fix range checks
On multiple locations checks are performed of untrusted values after adding
a constant to them. This is wrong, because the addition might overflow and
the result can then pass the check, although the original value is invalid.
Fix multiple such issues by checking the actual value and not a sum of it
and a constant.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-8-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Guennadi Liakhovetski [Thu, 17 Sep 2020 10:56:31 +0000 (13:56 +0300)]
ASoC: SOF: remove several superfluous type-casts
No need to type-cast assignments between void and other pointers in C.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-7-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Guennadi Liakhovetski [Thu, 17 Sep 2020 10:56:30 +0000 (13:56 +0300)]
ASoC: SOF: (cosmetic) remove redundant "ret" variable uses
In some cases no "ret" variable is even needed, those functions always
return 0 anyway, in other cases "ret" initialisation is redundant.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-6-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 17 Sep 2020 10:56:29 +0000 (13:56 +0300)]
ASoC: SOF: control: update test for pm_runtime_get_sync()
We need to avoid reporting an error for -EACCESS when pm_runtime is
not enabled.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-5-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 17 Sep 2020 10:56:28 +0000 (13:56 +0300)]
ASoC: SOF: debug: update test for pm_runtime_get_sync()
We need to avoid reporting an error for -EACCESS when pm_runtime is
not enabled.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-4-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Karol Trzcinski [Thu, 17 Sep 2020 10:56:27 +0000 (13:56 +0300)]
ASoC: SOF: Add `src_hash` to `sof_ipc_fw_version` structure
This field will be used to compare ldc file with loaded fw version,
to assert validity of trace logs. Value used in sof-logger.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Iulian Olaru [Thu, 17 Sep 2020 10:56:26 +0000 (13:56 +0300)]
ASoC: SOF: imx: Add debug support for imx platforms
This patch adds debug support for imx platforms. This is important in
order to gather information about the state of the DSP in case of an
oops and the reason for the oops.
This is done by checking if a message with a panic code has been placed
in the debug box, in the imx8_dsp_handle_request function from sof/imx.
If positive, the function imx8_dump, added in common, will be called.
The first step is to gather information about the registers, filename,
line number and stack by calling the imx8_get_registers, added in common.
Then the information will be printed to the console by calling the
get_status function.
Signed-off-by: Iulian Olaru <iulianolaru249@yahoo.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@gmail.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917105633.2579047-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 15 Sep 2020 19:06:02 +0000 (14:06 -0500)]
ASoC: tlv320adcx140: Fix BCLK inversion for DSP modes
Fix the BCLK inversion for DSP modes
This is how it is defined by ASoC:
* BCLK:
* - "normal" polarity means signal is available at rising edge of BCLK
* - "inverted" polarity means signal is available at falling edge of BCLK
The adcx140 defines the BCLK edge based on coding type.
The PCM (DSP_A/B) should drive on rising and sample on falling edge, so
from ASoC pov, it is IB_NF. But from the codec pov if it is configured in
DSP mode, then the BCLK should not be inverted, defaults to the coding
standard.
For i2s, it is NB_NF from ASoC pov (drive on falling, sample on rising).
>From the codec's pov BCLK should not invert either, as this is the default
for the coding.
So, inversion must take the format into account:
IB_NF + DSP_A/B == the codec bclk inversion should be disabled
NB_NF + DSP_A/B == the codec bclk inversion should be enabled
NB_NF + I2S == the codec bclk inversion should be disabled
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200915190606.1744-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Dan Murphy [Tue, 15 Sep 2020 19:06:01 +0000 (14:06 -0500)]
ASoC: tlv320adcx140: Idle the device while writing registers
It was observed that if the device was active and register writes were
performed there were some unwanted behaviors particularly when writing
the word length and some filter options. So when writing to the device
the device should be placed in sleep mode and then exit sleep mode once
the register update is complete.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200915190606.1744-1-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Camel Guo [Tue, 8 Sep 2020 09:04:17 +0000 (11:04 +0200)]
ASoC: tlv320adcx140: Fix digital gain range
According to its datasheet, the digital gain should be -100 dB when
CHx_DVOL is 1 and 27 dB when CHx_DVOL is 255. But with the current
dig_vol_tlv, "Digital CHx Out Volume" shows 27.5 dB if CHx_DVOL is 255
and -95.5 dB if CHx_DVOL is 1. This commit fixes this bug.
Fixes:
689c7655b50c ("ASoC: tlv320adcx140: Add the tlv320adcx140 codec driver family")
Signed-off-by: Camel Guo <camelg@axis.com>
Link: https://lore.kernel.org/r/20200908090417.16695-1-camel.guo@axis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 17 Sep 2020 10:39:12 +0000 (13:39 +0300)]
ASoC: topology: disable size checks for bytes_ext controls if needed
When CONFIG_SND_CTL_VALIDATION is set, accesses to extended bytes
control generate spurious error messages when the size exceeds 512
bytes, such as
[ 11.224223] sof_sdw sof_sdw: control 2:0:0:EQIIR5.0 eqiir_coef_5:0:
invalid count 1024
In addition the error check returns -EINVAL which has the nasty side
effect of preventing applications accessing controls from working,
e.g.
root@plb:~# alsamixer
cannot load mixer controls: Invalid argument
It's agreed that the control interface has been abused since 2014, but
forcing a check should not prevent existing solutions from working.
This patch skips the checks conditionally if CONFIG_SND_CTL_VALIDATION
is set and the byte array provided by topology is > 512. This
preserves the checks for all other cases.
Fixes:
1a3232d2f61d2 ('ASoC: topology: Add support for TLV bytes controls')
BugLink: https://github.com/thesofproject/linux/issues/2430
Reported-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200917103912.2565907-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Viorel Suman [Mon, 14 Sep 2020 17:24:34 +0000 (20:24 +0300)]
ASoC: fsl_audmix: make clock and output src write only
"alsactl -f state.conf store/restore" sequence fails because setting
"mixing clock source" and "output source" requires active TDM clock
being started for configuration propagation. Make these two controls
write only so that their values are not stored at "alsactl store".
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/1600104274-13110-1-git-send-email-viorel.suman@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
derek.fang [Mon, 14 Sep 2020 08:57:19 +0000 (16:57 +0800)]
ASoC: rt1015: Fix the failure to flush DAC data before playback
Fix the failure to flush DAC data before playback.
Signed-off-by: derek.fang <derek.fang@realtek.com>
Link: https://lore.kernel.org/r/1600073839-6762-2-git-send-email-derek.fang@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
derek.fang [Mon, 14 Sep 2020 08:57:18 +0000 (16:57 +0800)]
ASoC: rt1015: Fix DC calibration on bypass boost mode
Fix the DC calibration unsuccessful issue on rt1015
bypass boost mode.
Signed-off-by: derek.fang <derek.fang@realtek.com>
Link: https://lore.kernel.org/r/1600073839-6762-1-git-send-email-derek.fang@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Fri, 11 Sep 2020 14:52:24 +0000 (15:52 +0100)]
Merge series "ASoC: SOF: DSP core management fixes for 5.10" from Kai Vehmanen <kai.vehmanen@linux.intel.com>:
This series contains some improvements to how DSP core management
is done in SOF, and adds a distinction between cores managed by
the host versus cores managed by the DSP.
Pierre-Louis Bossart (1):
ASoC: SOF: Intel: hda-loader: s/master/primary
Ranjani Sridharan (3):
ASoC: SOF: rename cores_mask to host_managed_cores_mask
ASoC: SOF: Intel: hda: modify core_power_up/down op
ASoC: SOF: Intel: remove the HDA_DSP_CORE_MASK() macro
sound/soc/sof/intel/apl.c | 2 +-
sound/soc/sof/intel/bdw.c | 2 +-
sound/soc/sof/intel/byt.c | 6 +++---
sound/soc/sof/intel/cnl.c | 15 ++++-----------
sound/soc/sof/intel/hda-dsp.c | 20 +++++++++++++++++---
sound/soc/sof/intel/hda-loader.c | 11 +++++------
sound/soc/sof/intel/hda.c | 2 +-
sound/soc/sof/intel/hda.h | 3 ---
sound/soc/sof/intel/shim.h | 2 +-
sound/soc/sof/intel/tgl.c | 2 +-
10 files changed, 34 insertions(+), 31 deletions(-)
--
2.27.0
Mark Brown [Fri, 11 Sep 2020 14:52:23 +0000 (15:52 +0100)]
Merge series "ASoC: mediatek: mt8183-da7219: support machine driver for rt1015p" from Tzung-Bi Shih <tzungbi@google.com>:
The series reuses mt8183-da7219-max98357.c for supporting machine
driver with rt1015p speaker amplifier.
The 1st patch adds document for the new proposed compatible string.
The 2nd patch changes the machine driver to support "RT1015P" codec.
Tzung-Bi Shih (2):
ASoC: dt-bindings: mt8183-da7219: add compatible string for using
rt1015p
ASoC: mediatek: mt8183-da7219: support machine driver with rt1015p
.../bindings/sound/mt8183-da7219-max98357.txt | 1 +
sound/soc/mediatek/Kconfig | 1 +
.../mediatek/mt8183/mt8183-da7219-max98357.c | 40 +++++++++++++++++++
3 files changed, 42 insertions(+)
--
2.28.0.526.ge36021eeef-goog
Mark Brown [Fri, 11 Sep 2020 14:52:22 +0000 (15:52 +0100)]
Merge series "ASoC: ti: j721e-evm: Support for j7200 variant" from Peter Ujfalusi <peter.ujfalusi@ti.com>:
Hi,
Changes since v1:
- Suffix the
2359296000 constant with 'u' to silence C90 warning
When j7200 SOM is connected to the CPB, the audio setup is a bit different:
Only 48KHz family have clock path, 44.1KHz is not supported.
Update the binding documentation and add support for the j7200 version of CPB
to the driver.
Regards,
Peter
---
Peter Ujfalusi (2):
ASoC: dt-bindings: ti,j721e-cpb-audio: Document support for j7200-cpb
ASoC: ti: j721e-evm: Add support for j7200-cpb audio
.../bindings/sound/ti,j721e-cpb-audio.yaml | 92 ++++++++++++++-----
sound/soc/ti/j721e-evm.c | 11 +++
2 files changed, 81 insertions(+), 22 deletions(-)
--
Peter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID:
0615521-4. Kotipaikka/Domicile: Helsinki
Olivier Moysan [Fri, 11 Sep 2020 08:15:07 +0000 (10:15 +0200)]
ASoC: stm32: sai: add pm_runtime support
Enable support of pm_runtime on STM32 SAI driver to allow
SAI power state monitoring.
pm_runtime_put_autosuspend() is called from ASoC framework
on pcm device close.
The pmdown_time delay is available in runtime context, and may be set
in SAI driver to take into account shutdown delay on playback.
However, this shutdown delay is already handled in the DAPMs
of the audio codec linked to SAI CPU DAI.
So, the choice is made, not to support this delay on CPU DAI side.
Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Link: https://lore.kernel.org/r/20200911081507.7276-1-olivier.moysan@st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Tuo Li [Mon, 7 Sep 2020 13:09:37 +0000 (21:09 +0800)]
ALSA: rockchip_i2s: fix a possible divide-by-zero bug in rockchip_i2s_hw_params()
The variable bclk_rate is checked in:
if (bclk_rate && mclk_rate % bclk_rate)
This indicates that bclk_rate can be zero.
If so, a divide-by-zero bug will occur:
div_bclk = mclk_rate / bclk_rate;
To fix this possible bug, the function returns -EINVAL when bclk_rate is
zero.
Signed-off-by: Tuo Li <tuoli96@outlook.com>
Link: https://lore.kernel.org/r/TY2PR04MB4029799E60A5BCAAD5B7B5BBB8280@TY2PR04MB4029.apcprd04.prod.outlook.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Sathyanarayana Nujella [Thu, 10 Sep 2020 16:27:05 +0000 (19:27 +0300)]
ASoC: SOF: Intel: Use DMI oem string search for tgl_max98373_rt5682
DMI product name is used to support system variants based out of
tgl_max98373_rt5682 in current implementation. Replace this DMI search with
DMI_OEM_STRING. Coreboot(BIOS used in these systems) is
setting the needed DMI_OEM_STRING field to uniquely identify these
systems.
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200910162705.2026036-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Pierre-Louis Bossart [Thu, 10 Sep 2020 16:41:25 +0000 (19:41 +0300)]
ASoC: SOF: Intel: hda-loader: s/master/primary
Use inclusive language for DSP cores.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Reviewed-by: Seppo Ingalsuo <seppo.ingalsuo@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200910164125.2033062-5-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ranjani Sridharan [Thu, 10 Sep 2020 16:41:24 +0000 (19:41 +0300)]
ASoC: SOF: Intel: remove the HDA_DSP_CORE_MASK() macro
Remove the HDA_DSP_CORE_MASK() macro and use BIT() and GENMASK()
macros directly for more clarity.
Signed-off-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>
Reviewed-by: Keyon Jie <yang.jie@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200910164125.2033062-4-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ranjani Sridharan [Thu, 10 Sep 2020 16:41:23 +0000 (19:41 +0300)]
ASoC: SOF: Intel: hda: modify core_power_up/down op
Modify the core_power_up/down ops for HDA platforms to restrict
the core_mask to the ones allowed by chip->cores_mask. This is needed
because on some HDA platforms not all cores can be powered up/down
by the host and this must be handled internally in the FW.
Signed-off-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>
Reviewed-by: Keyon Jie <yang.jie@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200910164125.2033062-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Ranjani Sridharan [Thu, 10 Sep 2020 16:41:22 +0000 (19:41 +0300)]
ASoC: SOF: rename cores_mask to host_managed_cores_mask
Rename the cores_mask in struct sof_intel_dsp_desc to
host_managed_cores_mask to be more indicative of the fact that
only these cores can be powered up/down by the host.
Signed-off-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>
Reviewed-by: Keyon Jie <yang.jie@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200910164125.2033062-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Peter Ujfalusi [Thu, 10 Sep 2020 12:41:10 +0000 (15:41 +0300)]
ASoC: ti: j721e-evm: Add support for j7200-cpb audio
When j7200 SOM is attached to the CPB we only have parent clock for 48KHz
family and the rate of the parent clock is 2359296000Hz.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20200910124110.19361-3-peter.ujfalusi@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Peter Ujfalusi [Thu, 10 Sep 2020 12:41:09 +0000 (15:41 +0300)]
ASoC: dt-bindings: ti, j721e-cpb-audio: Document support for j7200-cpb
j721e or j7200 SOM can be attached to the same Common Processor Board (CPB)
With the j7200 SOM only the 48KHz family parent clock is available and
McASP0 is used for the audio.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20200910124110.19361-2-peter.ujfalusi@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Tzung-Bi Shih [Fri, 11 Sep 2020 02:48:33 +0000 (10:48 +0800)]
ASoC: mediatek: mt8183-da7219: support machine driver with rt1015p
Supports machine driver with rt1015p ("mt8183_da7219_rt1015p").
Embeds in the existing mt8183-da7219-max98357.c because they share
most of the code.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200911024833.1673961-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Tzung-Bi Shih [Fri, 11 Sep 2020 02:48:32 +0000 (10:48 +0800)]
ASoC: dt-bindings: mt8183-da7219: add compatible string for using rt1015p
Machines with rt1015p should use the compatible string
"mediatek,mt8183_da7219_rt1015p".
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200911024833.1673961-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Thu, 10 Sep 2020 12:29:30 +0000 (13:29 +0100)]
Merge series "ASoC: q6dsp: Add support to Codec Ports." from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
LPASS IP on SoCs like SM8250 has Digital Codec part integrated into it.
This ports are exposed in Q6DSP as Codec ports. This patchset adds
support to those q6afe ports along with q6routing and q6afe-dai.
This patchset has been tested along with other patches on
Qualcomm Robotics RB5 Platform with Soundwire and WSA8815 Codec.
Thanks,
srini
Srinivas Kandagatla (8):
ASoC: q6dsp: q6afe: add support to Codec DMA ports
ASoC: q6dsp: q6routing: add support to Codec DMA ports
ASoC: q6dsp: q6afe: prepare afe_apr_send_pkt to take response opcode
ASoC: q6dsp: q6afe: add global q6afe waitqueue
ASoC: q6dsp: q6afe: add lpass hw voting support
ASoC: q6dsp: q6afe: update q6afe_set_param to support global clocks
ASoC: q6dsp: q6afe: add codec lpass clocks
ASoC: q6dsp: q6afe-dai: add support to Codec DMA ports
include/dt-bindings/sound/qcom,q6afe.h | 22 ++
sound/soc/qcom/qdsp6/q6afe-dai.c | 229 ++++++++++++++++++
sound/soc/qcom/qdsp6/q6afe.c | 308 +++++++++++++++++++++++--
sound/soc/qcom/qdsp6/q6afe.h | 33 ++-
sound/soc/qcom/qdsp6/q6routing.c | 121 +++++++++-
5 files changed, 689 insertions(+), 24 deletions(-)
--
2.21.0
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:32 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe-dai: add support to Codec DMA ports
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-9-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:31 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: add codec lpass clocks
LPASS now has integrated codec control whose clocks are controlled by Q6DSP.
This patch adds support to those clocks.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-8-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:30 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: update q6afe_set_param to support global clocks
Previously there was no case where we need to set clock or send commands
that are not associated with q6afe ports, now we have cases like clock
voting and clock consumers like codecs that needed these clocks.
update q6afe_set_param() to support such cases, including token passing.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-7-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:29 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: add lpass hw voting support
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-6-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:28 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: add global q6afe waitqueue
In some cases like clocks q6afe would have to process commands
without an associated q6afe port, in such cases waitqueue is
required at global level to wait for the command to finish.
This patch also adds the command result to go with this waitqueue.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:27 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: prepare afe_apr_send_pkt to take response opcode
Update afe_apr_send_pkt() to take response opcode that it should wait for.
This is helpful in cases where we expect response other than the
actual command opcode.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-4-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:26 +0000 (11:17 +0100)]
ASoC: q6dsp: q6routing: add support to Codec DMA ports
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Srinivas Kandagatla [Thu, 10 Sep 2020 10:17:25 +0000 (11:17 +0100)]
ASoC: q6dsp: q6afe: add support to Codec DMA ports
New LPASS supports various codec macros, DSP firmware already
has support to those ports. Add corresponding configuration
support to those ports in adsp drivers.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200910101732.23484-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Tzung-Bi Shih [Thu, 10 Sep 2020 04:29:49 +0000 (12:29 +0800)]
ASoC: dt-bindings: rt1015p: add document
Adds DT binding document for rt1015p.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200910042949.3795682-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Tzung-Bi Shih [Thu, 10 Sep 2020 04:29:48 +0000 (12:29 +0800)]
ASoC: rt1015p: add codec driver
Adds rt1015p codec driver.
Rt1015p is a rt1015 variant.
- It doesn't support I2C.
- It only supports S24, 48kHz, 64FS.
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200910042949.3795682-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Codrin Ciubotariu [Wed, 9 Sep 2020 14:53:47 +0000 (17:53 +0300)]
ASoC: add DT bindings for Microchip S/PDIF TX Controller
This patch adds DT bindings for the new Microchip S/PDIF TX Controller
embedded inside sama7g5 SoCs.
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200909145348.367033-1-codrin.ciubotariu@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Codrin Ciubotariu [Wed, 9 Sep 2020 14:53:48 +0000 (17:53 +0300)]
ASoC: mchp-spdiftx: add driver for S/PDIF TX Controller
The new SPDIF TX controller is a serial port compliant with the IEC-
60958 standard. It also supports programmable User Data and Channel
Status fields.
This IP is embedded in Microchip's sama7g5 SoC.
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Link: https://lore.kernel.org/r/20200909145348.367033-2-codrin.ciubotariu@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Thu, 3 Sep 2020 10:47:49 +0000 (12:47 +0200)]
ASoC: txx9: Replace tasklet with work
The tasklet is an old API that should be deprecated, usually can be
converted to another decent API. In ASoC TXx9 ACLC driver, a tasklet
is still used for offloading the hardware reset function. It can be
achieved gracefully with a work queued, too.
This patch replaces the tasklet usage in TXx9 ACLC driver with a
simple work. The conversion is fairly straightforward.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200903104749.21435-4-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Thu, 3 Sep 2020 10:47:48 +0000 (12:47 +0200)]
ASoC: sh: Replace tasklet with work
The tasklet is an old API that should be deprecated, usually can be
converted to another decent API. In ASoC SH SIU driver, a tasklet is
still used for offloading the hardware reset function. It can be
achieved gracefully with a work queued, too.
This patch replaces the tasklet usage in SH SIU driver with a simple
work. The conversion is fairly straightforward.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200903104749.21435-3-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Takashi Iwai [Thu, 3 Sep 2020 10:47:47 +0000 (12:47 +0200)]
ASoC: fsl: Replace tasklet with work
The tasklet is an old API that should be deprecated, usually can be
converted to another decent API. In ASoC FSL ESAI CPU DAI driver, a
tasklet is still used for offloading the hardware reset function.
It can be achieved gracefully with a work queued, too.
This patch replaces the tasklet usage in fsl esai driver with a simple
work. The conversion is fairly straightforward.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200903104749.21435-2-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Wed, 9 Sep 2020 14:20:17 +0000 (15:20 +0100)]
Merge branch 'topic/tasklet-convert' of https://git./linux/kernel/git/tiwai/sound into asoc-5.10
Camel Guo [Tue, 8 Sep 2020 08:35:21 +0000 (10:35 +0200)]
ASoC: tlv320adcx140: Wake up codec before accessing register
According to its datasheet, after reset this codec goes into sleep
mode. In this mode, any register accessing should be avoided except for
exiting sleep mode. Hence this commit moves SLEEP_CFG access before any
register accessing.
Signed-off-by: Camel Guo <camelg@axis.com>
Acked-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200908083521.14105-2-camel.guo@axis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Tue, 8 Sep 2020 14:50:13 +0000 (15:50 +0100)]
Merge series "ASoC: qcom: common: Parse auxiliary devices from device tree" from Stephan Gerhold <stephan@gerhold.net>:
In some cases we need to probe additional audio components that do
not appear as part of the DAI links specified in the device tree.
Examples for this are auxiliary devices such as analog amplifiers
or codecs.
The ASoC core provides a way to probe these components by adding
them to snd_soc_card->aux_dev.
This patch set allows specifying them in the device tree through
a new "aux-devs" property.
v1: https://lore.kernel.org/linux-arm-msm/
20200819091533.2334-1-stephan@gerhold.net/
Changes in v2:
- Fix value type in device tree bindings:
aux-devs should be array of phandles without any arguments, so change
<phandles with arguments> -> <array of phandles>
Stephan Gerhold (2):
ASoC: dt-bindings: qcom: Document "aux-devs" property
ASoC: qcom: common: Parse auxiliary devices from device tree
.../devicetree/bindings/sound/qcom,apq8016-sbc.txt | 7 +++++++
Documentation/devicetree/bindings/sound/qcom,apq8096.txt | 8 ++++++++
Documentation/devicetree/bindings/sound/qcom,sdm845.txt | 8 ++++++++
sound/soc/qcom/common.c | 4 ++++
4 files changed, 27 insertions(+)
--
2.28.0
Yu Kuai [Tue, 25 Aug 2020 13:02:24 +0000 (21:02 +0800)]
ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
if of_find_device_by_node() succeed, imx_es8328_probe() doesn't have
a corresponding put_device(). Thus add a jump target to fix the exception
handling for this function implementation.
Fixes:
7e7292dba215 ("ASoC: fsl: add imx-es8328 machine driver")
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20200825130224.1488694-1-yukuai3@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Stephan Gerhold [Wed, 26 Aug 2020 09:51:41 +0000 (11:51 +0200)]
ASoC: qcom: common: Parse auxiliary devices from device tree
In some cases we need to probe additional audio components that do
not appear as part of the DAI links specified in the device tree.
Examples for this are auxiliary devices such as analog amplifiers
or codecs.
The ASoC core provides a way to probe these components by adding
them to snd_soc_card->aux_dev. We can use the snd_soc_of_parse_aux_devs()
function to parse them from the device tree.
As an example for this, some MSM8916 smartphones have an analog
speaker amplifier connected to the HPHR output. With the new property
this can be modelled as follows:
speaker-amp: audio-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&msmgpio 114 GPIO_ACTIVE_HIGH>;
sound-name-prefix = "Speaker Amp";
};
&sound {
aux-devs = <&speaker_amp>;
audio-routing = "Speaker Amp IN", "HPHR";
};
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20200826095141.94017-3-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>