platform/kernel/linux-rpi.git
5 years agoASoC: SOF: Add PM support
Liam Girdwood [Fri, 12 Apr 2019 16:05:16 +0000 (11:05 -0500)]
ASoC: SOF: Add PM support

Add support for saving and restoring DSP context in D3 to host DDR.

The suspend callback includes: suspend all pcm's stream that are running,
send CTX_SAVE ipc, drop all ipc's, release trace dma and then
power off the DSP.

And the resume callback performs the following steps: load FW, run FW,
re-initialize trace, restore pipeline, restore the kcontrol values
and finally send the ctx restore ipc to the dsp.

The streams that are suspended are resumed by the ALSA resume trigger.
If the streams are paused during system suspend, they are marked
explicitly so they can be restored during PAUSE_RELEASE.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add userspace ABI support
Liam Girdwood [Fri, 12 Apr 2019 16:05:15 +0000 (11:05 -0500)]
ASoC: SOF: Add userspace ABI support

Add userspace ABI for audio userspace application IO outside of regular
ALSA PCM and kcontrols. This is intended to be used to format
coefficients and data for custom processing components.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add firmware loader support
Liam Girdwood [Fri, 12 Apr 2019 16:05:14 +0000 (11:05 -0500)]
ASoC: SOF: Add firmware loader support

The firmware loader exports APIs that can be called by core to load and
process multiple different file formats.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add DSP HW abstraction operations
Liam Girdwood [Fri, 12 Apr 2019 16:05:13 +0000 (11:05 -0500)]
ASoC: SOF: Add DSP HW abstraction operations

Add operation pointers that can be called by core to control a wide
variety of DSP targets. The DSP HW drivers will fill in these
operations.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add DSP firmware logger support
Liam Girdwood [Fri, 12 Apr 2019 16:05:12 +0000 (11:05 -0500)]
ASoC: SOF: Add DSP firmware logger support

This patch adds support for real-time DSP logging (timestamped events
and bespoke binary data) for firmware debug. The current solution
relies on DMA transfers to system memory that is then accessed by
userspace tools such as sof-logger. For Intel platforms, two types of
DMAs are currently used (GP-DMA for Baytrail/CherryTrail and HDaudio
DMA for SKL+)

Due to historical reasons, the driver code follows the DSP firmware
conventions and refers to 'traces', but it is currently unrelated to
the Linux trace subsystem. Future solutions will include support for
more advanced hardware (e.g. MIPI Sys-T), additional formats and the
ability to enable/disable specific traces dynamically.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add support for loading topologies
Liam Girdwood [Fri, 12 Apr 2019 16:05:11 +0000 (11:05 -0500)]
ASoC: SOF: Add support for loading topologies

SOF uses topology to define the DAPM graphs and widgets, DAIs, PCMs and set
parameters for init and run time usage. This patch loads topology and
maps it to IPC commands that are build the topology on the DSP.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add PCM operations support
Liam Girdwood [Fri, 12 Apr 2019 16:05:10 +0000 (11:05 -0500)]
ASoC: SOF: Add PCM operations support

Add support for exposing PCMs to userspace. PCMs are defined by topology
and the operations in this patch map to SOF IPC calls.

The .get_module_upon_open field is set to allow for module load/unload
tests. There is no risk of the sof-pci/acpi-dev module being removed
while the platform components are in use. This may need to be
revisited when DT platforms are supported.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add support for IPC IO between DSP and Host
Liam Girdwood [Fri, 12 Apr 2019 16:05:09 +0000 (11:05 -0500)]
ASoC: SOF: Add support for IPC IO between DSP and Host

Define an IPC ABI for all host <--> DSP communication. This ABI should
be transport agnostic. i.e. it should work on MMIO and SPI/I2C style
interfaces.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add driver debug support.
Liam Girdwood [Fri, 12 Apr 2019 16:05:08 +0000 (11:05 -0500)]
ASoC: SOF: Add driver debug support.

Add debugFS files that can be used to expose DSP memories and
and peripherals to userspace to assist with firmware debugging.

Since we cannot rely on debugFS, errors are logged but don't stop
execution.

When a resource cannot be read in D3, it is optionally cached on
suspend. Copying memories from IO will increase the suspend latency,
this should only used in engineering builds w/ debug options. This
part will have to be enhanced when support for D0ix states is
provided, currently only D0 and D3 are supported.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add Sound Open Firmware KControl support
Liam Girdwood [Fri, 12 Apr 2019 16:05:07 +0000 (11:05 -0500)]
ASoC: SOF: Add Sound Open Firmware KControl support

SOF exposes regular ALSA Kcontrols that are defined by topology. This
patch converts the Kcontrol IO to DSP IPC.

The current implementation is aligned with previous Intel solutions,
but is not optimal and can be improved:
a) for every get/put the host wakes up the DSP and generates an
IPC. The kernel should cache the values and generate an IPC only when
strictly necessary.
b) the firmware can be implemented to only instantiate the pipelines
and related control-related parts that are needed at a given time, and
power-gate the relevant SRAM blocks.

The development tasks for these two improvements has started, once
validated they will be provided in an update.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: SOF: Add Sound Open Firmware driver core
Liam Girdwood [Fri, 12 Apr 2019 16:05:06 +0000 (11:05 -0500)]
ASoC: SOF: Add Sound Open Firmware driver core

The Sound Open Firmware driver core is a generic architecture
independent layer that allows SOF to be used on many different
architectures and platforms. It abstracts DSP operations and IO
methods so that the target DSP can be an internal memory mapped or
external SPI or I2C based device. This abstraction also allows SOF to
be run on many different VMs on the same physical HW.

SOF also requires some data in ASoC PCM runtime data for looking up
SOF data during ASoC PCM operations.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: stm32: sai: simplify dai driver initialisation
Arnaud Pouliquen [Tue, 23 Apr 2019 15:58:08 +0000 (17:58 +0200)]
ASoC: stm32: sai: simplify dai driver initialisation

Suppress the useless dynamic allocation of the dai driver structure.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoMerge branch 'asoc-5.1' into asoc-5.2
Mark Brown [Fri, 26 Apr 2019 10:02:03 +0000 (11:02 +0100)]
Merge branch 'asoc-5.1' into asoc-5.2

5 years agoASoC: simple-card: Read pin switches conf from devicetree
Paul Cercueil [Fri, 26 Apr 2019 02:25:50 +0000 (04:25 +0200)]
ASoC: simple-card: Read pin switches conf from devicetree

When the routing path between a widget (e.g. "Speaker") and the codec
goes through an external amplifier, having a pin switch for this widget
allows the amplifier to be disabled when the widget is not to be used
(e.g. when using headphones).

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: fsl_sai: Add missing return 0 in remove()
Nicolin Chen [Fri, 26 Apr 2019 03:20:50 +0000 (20:20 -0700)]
ASoC: fsl_sai: Add missing return 0 in remove()

Build warning being reported:
    sound/soc/fsl/fsl_sai.c: In function 'fsl_sai_remove':
    sound/soc/fsl/fsl_sai.c:921:1: warning: no return statement in
    function returning non-void [-Wreturn-type]

So this patch just adds a "return 0" to fix it.

Fixes: 812ad463e089 ("ASoC: fsl_sai: Add support for runtime pm")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: simple-card-utils: add asoc_simple_parse_pin_switches()
Paul Cercueil [Fri, 26 Apr 2019 02:25:49 +0000 (04:25 +0200)]
ASoC: simple-card-utils: add asoc_simple_parse_pin_switches()

This function is a helper that permits to create pin switch controls for
a list of widgets whose names are listed in the PREFIX "pin-switches"
devicetree property.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mediatek: btcvsd fix irq mask
KaiChieh Chuang [Fri, 26 Apr 2019 02:09:43 +0000 (10:09 +0800)]
ASoC: mediatek: btcvsd fix irq mask

disable = 1
enable = 0
prevent AP wake up, when not AP BTSCO scenario

Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: bytcr_rt5651: align quirk override handling
Pierre-Louis Bossart [Fri, 19 Apr 2019 20:12:18 +0000 (15:12 -0500)]
ASoC: Intel: bytcr_rt5651: align quirk override handling

As discussed on alsa-devel, a zero value is useful to get rid of all
quirks. Set default to -1 and align types as done in other machine
drivers.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: bytcr_rt5640: align quirk override handling
Pierre-Louis Bossart [Fri, 19 Apr 2019 20:12:17 +0000 (15:12 -0500)]
ASoC: Intel: bytcr_rt5640: align quirk override handling

As discussed on alsa-devel, a zero value is useful to get rid of all
quirks. Set default to -1 and align types as done in other machine
drivers.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: bytcht_es8316: fix compilation warning
Pierre-Louis Bossart [Fri, 19 Apr 2019 20:12:16 +0000 (15:12 -0500)]
ASoC: Intel: bytcht_es8316: fix compilation warning

Remove warning below, align with other machine drivers.

bytcht_es8316.c:508:11: warning: cast from pointer to integer of
different size [-Wpointer-to-int-cast]

   quirk = (int)dmi_id->driver_data;
           ^
Fixes: a8d218f4fe811 ('ASoC: Intel: bytcht_es8316: Add quirk for the Teclast X98+ II')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: fsl_sai: Add support for runtime pm
Daniel Baluta [Sun, 21 Apr 2019 19:39:09 +0000 (19:39 +0000)]
ASoC: fsl_sai: Add support for runtime pm

Basically the same actions as for system PM, so make use
of pm_runtime_force_suspend/pm_runtime_force_resume.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: fsl_sai: Update is_slave_mode with correct value
Daniel Baluta [Sun, 21 Apr 2019 19:39:08 +0000 (19:39 +0000)]
ASoC: fsl_sai: Update is_slave_mode with correct value

is_slave_mode defaults to false because sai structure
that contains it is kzalloc'ed.

Anyhow, if we decide to set the following configuration
SAI slave -> SAI master, is_slave_mode will remain set on true
although SAI being master it should be set to false.

Fix this by updating is_slave_mode for each call of
fsl_sai_set_dai_fmt.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: doc: simple-card: Add pin-switches property
Paul Cercueil [Sat, 20 Apr 2019 10:45:51 +0000 (12:45 +0200)]
ASoC: doc: simple-card: Add pin-switches property

The simple-audio-card,pin-switches property can contain the list of
widget names for which pin switches must be created.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: sprd: Add Spreadtrum multi-channel data transfer support
Baolin Wang [Tue, 23 Apr 2019 02:26:22 +0000 (10:26 +0800)]
ASoC: sprd: Add Spreadtrum multi-channel data transfer support

On Spreadtrum platform, the audio subsystem will use the multi-channel
data transfer controller to transfer sound stream between audio subsystem
and other AP/CP subsystem.

It can support 10 DAC channel and 10 ADC channel, and each channel has
512 bytes depth data fifo. Moreover each channel can be used DMA mode
or interrupt mode to transfer data.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agodt-bindings: ASoC: Add Spreadtrum multi-channel data transfer support
Baolin Wang [Tue, 23 Apr 2019 02:26:21 +0000 (10:26 +0800)]
dt-bindings: ASoC: Add Spreadtrum multi-channel data transfer support

On Spreadtrum platform, the audio subsystem will use the multi-channel
data transfer controller to transfer sound stream between audio subsystem
and other AP/CP subsystem.

It can support 10 DAC channel and 10 ADC channel, and each channel has
512 bytes depth data fifo. Moreover each channel can be used DMA mode
or interrupt mode to transfer data.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: codecs: rt5682: initialize mutex before using
Xun Zhang [Fri, 19 Apr 2019 20:53:49 +0000 (15:53 -0500)]
ASoC: codecs: rt5682: initialize mutex before using

In rt5682 codec driver, a mutex called "calibrate_mutex" is used
in rt5682_calibrate() before initialization, which causes warning
in lock debug. Move the initialization before the usage of mutex.

Signed-off-by: Xun Zhang <xun2.zhang@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: stm32: i2s: return the get_irq error
Fabien Dessenne [Wed, 24 Apr 2019 15:28:44 +0000 (17:28 +0200)]
ASoC: stm32: i2s: return the get_irq error

During probe, return the "get_irq" error value instead of -ENOENT. This
allows the driver to be deferred probed if needed.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: rsnd: fixup 6ch settings to 8ch
Kuninori Morimoto [Thu, 25 Apr 2019 06:16:58 +0000 (15:16 +0900)]
ASoC: rsnd: fixup 6ch settings to 8ch

rsnd need to use 8ch clock settings for 6ch for TDM.
Otherwise, it can't work correctly.
This patch fixup it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: codec: hdac_hdmi add device_link to card device
Libin Yang [Sat, 13 Apr 2019 13:18:12 +0000 (21:18 +0800)]
ASoC: codec: hdac_hdmi add device_link to card device

In resume from S3, HDAC HDMI codec driver dapm event callback may be
operated before HDMI codec driver turns on the display audio power
domain because of the contest between display driver and hdmi codec driver.

This patch adds the device_link between soc card device (consumer) and
hdmi codec device (supplier) to make sure the sequence is always correct.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
5 years agoASoC: Intel: Haswell: Remove set but not used variable 'stage_type'
YueHaibing [Thu, 18 Apr 2019 02:48:48 +0000 (10:48 +0800)]
ASoC: Intel: Haswell: Remove set but not used variable 'stage_type'

Fixes gcc '-Wunused-but-set-variable' warning:

sound/soc/intel/haswell/sst-haswell-ipc.c: In function 'hsw_stream_message':
sound/soc/intel/haswell/sst-haswell-ipc.c:669:29: warning: variable 'stage_type' set but not used [-Wunused-but-set-variable]

It is never used since introduction in
commit ba57f68235cf ("ASoC: Intel: create haswell folder and move haswell platform files in")

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: pcm: save fixed-up hw_params of BE
Libin Yang [Fri, 19 Apr 2019 01:53:12 +0000 (09:53 +0800)]
ASoC: pcm: save fixed-up hw_params of BE

Some drivers mandate setting up hw params after resuming from system sleep.
Since, the hw_params ioctl is not invoked upon resuming, the fixed-up BE
dai hw params should be saved so the driver can use it in its resume
sequence.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: tobermory: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:22:02 +0000 (12:22 +0200)]
ASoC: samsung: tobermory: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: tm2_wm5110: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:22:01 +0000 (12:22 +0200)]
ASoC: samsung: tm2_wm5110: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: speyside: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:22:00 +0000 (12:22 +0200)]
ASoC: samsung: speyside: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: spdif: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:59 +0000 (12:21 +0200)]
ASoC: samsung: spdif: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: snow: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:58 +0000 (12:21 +0200)]
ASoC: samsung: snow: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: smdk_wm8994*: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:57 +0000 (12:21 +0200)]
ASoC: samsung: smdk_wm8994*: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: smdk_wm8580: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:56 +0000 (12:21 +0200)]
ASoC: samsung: smdk_wm8580: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: smdk_spdif: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:55 +0000 (12:21 +0200)]
ASoC: samsung: smdk_spdif: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: smartq_wm8987: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:54 +0000 (12:21 +0200)]
ASoC: samsung: smartq_wm8987: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: s3c24xx_uda134x: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:53 +0000 (12:21 +0200)]
ASoC: samsung: s3c24xx_uda134x: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: s3c24xx_simtec*: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:52 +0000 (12:21 +0200)]
ASoC: samsung: s3c24xx_simtec*: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: s3c2412-i2s: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:51 +0000 (12:21 +0200)]
ASoC: samsung: s3c2412-i2s: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: rx1950_uda1380: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:50 +0000 (12:21 +0200)]
ASoC: samsung: rx1950_uda1380: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: s3c24xx-i2s: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:49 +0000 (12:21 +0200)]
ASoC: samsung: s3c24xx-i2s: Convert to SPDX License Identifier

Replace GPL v2.0(+) license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: s3c-i2s-v2: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:48 +0000 (12:21 +0200)]
ASoC: samsung: s3c-i2s-v2: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: pcm: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:47 +0000 (12:21 +0200)]
ASoC: samsung: pcm: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: odroid: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:46 +0000 (12:21 +0200)]
ASoC: samsung: odroid: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: neo1973_wm8753: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:45 +0000 (12:21 +0200)]
ASoC: samsung: neo1973_wm8753: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: lowland: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:44 +0000 (12:21 +0200)]
ASoC: samsung: lowland: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: littlemill: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:43 +0000 (12:21 +0200)]
ASoC: samsung: littlemill: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: jive_wm8750: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:42 +0000 (12:21 +0200)]
ASoC: samsung: jive_wm8750: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: idma: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:41 +0000 (12:21 +0200)]
ASoC: samsung: idma: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: i2s: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:40 +0000 (12:21 +0200)]
ASoC: samsung: i2s: Convert to SPDX License Identifier

Replace remaining GPL v2.0 license statements with SPDX license
identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: h1940_uda1380: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:39 +0000 (12:21 +0200)]
ASoC: samsung: h1940_uda1380: Convert to SPDX License Identifier

Replace GPL v2.0+ license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: dmaengine: Convert to SPDX License Indentifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:38 +0000 (12:21 +0200)]
ASoC: samsung: dmaengine: Convert to SPDX License Indentifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: bells: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:37 +0000 (12:21 +0200)]
ASoC: samsung: bells: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: samsung: arndale: Convert to SPDX License Identifier
Sylwester Nawrocki [Fri, 19 Apr 2019 10:21:36 +0000 (12:21 +0200)]
ASoC: samsung: arndale: Convert to SPDX License Identifier

Replace GPL v2.0 license statements with SPDX license identifier.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: tlv320aic32x4: Fix spacing
Annaliese McDermond [Fri, 5 Apr 2019 21:54:30 +0000 (14:54 -0700)]
ASoC: tlv320aic32x4: Fix spacing

Fix some cosmetic spacing issues reported by Julia Lawall
<julia.lawall@lip6.fr>.

Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: kbl_da7219_max98927: remove headset
Jenny TC [Tue, 26 Mar 2019 17:20:56 +0000 (22:50 +0530)]
ASoC: Intel: kbl_da7219_max98927: remove headset

kbl_da7219_max98927 supports two configurations - One with da7219 &
max98927/373 and other one with max98927/373 alone. This patch
removes the headset dais from max98927/373 configuration. Since the
snd_soc_dapm_ignore_suspend for DMIC is called from da7219_codec_init,
the code is re-arranged to invoke snd_soc_dapm_ignore_suspend from
kabylake_dmic_init.

Signed-off-by: Jenny TC <jenny.tc@intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: pcm: update module refcount if module_get_upon_open is set
Ranjani Sridharan [Fri, 5 Apr 2019 16:57:09 +0000 (09:57 -0700)]
ASoC: pcm: update module refcount if module_get_upon_open is set

Setting the module_get_upon_open field for component driver
prevents the module refcount from being incremented during
component probe(). This could lead to the module being
allowed to be unloaded when a pcm stream is open. So,
if this field is set, the module's refcount should be
incremented during pcm open to prevent module removal
when the component is in use. And, the refcount should
be decremented upon pcm close.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: core: conditionally increase module refcount on component open
Ranjani Sridharan [Fri, 5 Apr 2019 16:57:08 +0000 (09:57 -0700)]
ASoC: core: conditionally increase module refcount on component open

Recently, for Intel platforms the "ignore_module_refcount" field
was introduced for the component driver. In order to avoid a
deadlock preventing the PCI modules from being removed
even when the card was idle, the refcounts were not incremented
for the device driver module during component probe.

However, this change introduced a nasty side effect:
the device driver module can be unloaded while a pcm stream is open.

This patch proposes to change the field to be renamed as
"module_get_upon_open". When this field is set, the module
refcount should be incremented on pcm open amd decremented
upon pcm close. This will enable modules to be removed
when no PCM playback/capture happens and prevent removal
when the component is actually in use.

Also, align with the skylake component driver with the new name.

Fixes: b450b878('ASoC: core: don't increase component module refcount
                 unconditionally'
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: bytcht_es8316: Add quirk for the Teclast X98+ II
Paul Cercueil [Fri, 29 Mar 2019 21:50:45 +0000 (22:50 +0100)]
ASoC: Intel: bytcht_es8316: Add quirk for the Teclast X98+ II

The Teclast X98+ II is a Cherrytrail tablet, which require two quirks:
- it has stereo speakers,
- its jack detection mechanism is inverted.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: Intel: bytcht_es8316: Add quirk for inverted jack detect
Paul Cercueil [Fri, 29 Mar 2019 21:50:44 +0000 (22:50 +0100)]
ASoC: Intel: bytcht_es8316: Add quirk for inverted jack detect

Add a quirk to support boards whose jack detection mechanism is
inverted.

It will set the 'everest,jack-detect-inverted' boolean device property
for the es8316 codec driver.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: wm1133-ev1: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:10 +0000 (14:50 +0300)]
ASoC: wm1133-ev1: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: phycore-ac97: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:09 +0000 (14:50 +0300)]
ASoC: phycore-ac97: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: pcm030-audio-fabric: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:08 +0000 (14:50 +0300)]
ASoC: pcm030-audio-fabric: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: p1022_rdk: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:07 +0000 (14:50 +0300)]
ASoC: p1022_rdk: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: p1022_ds: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:06 +0000 (14:50 +0300)]
ASoC: p1022_ds: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mx27vis-aic32x4: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:05 +0000 (14:50 +0300)]
ASoC: mx27vis-aic32x4: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mpc8610_hpcd: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:04 +0000 (14:50 +0300)]
ASoC: mpc8610_hpcd: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mpc5200_psc_i2s: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:03 +0000 (14:50 +0300)]
ASoC: mpc5200_psc_i2s: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mpc5200_psc_ac97: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:02 +0000 (14:50 +0300)]
ASoC: mpc5200_psc_ac97: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: mpc5200_dma: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:01 +0000 (14:50 +0300)]
ASoC: mpc5200_dma: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-ssi: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:50:00 +0000 (14:50 +0300)]
ASoC: imx-ssi: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-spdif: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:59 +0000 (14:49 +0300)]
ASoC: imx-spdif: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-pcm-fiq: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:58 +0000 (14:49 +0300)]
ASoC: imx-pcm-fiq: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-mc13783: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:57 +0000 (14:49 +0300)]
ASoC: imx-mc13783: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-es8328: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:56 +0000 (14:49 +0300)]
ASoC: imx-es8328: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-audmux: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:55 +0000 (14:49 +0300)]
ASoC: imx-audmux: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: fsl-dma: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:54 +0000 (14:49 +0300)]
ASoC: fsl-dma: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: eukrea-tlv320: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:53 +0000 (14:49 +0300)]
ASoC: eukrea-tlv320: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: imx-pcm: Switch to SPDX identifier
Andra Danciu [Fri, 5 Apr 2019 11:49:51 +0000 (14:49 +0300)]
ASoC: imx-pcm: Switch to SPDX identifier

Adopt the SPDX license identifier headers to ease license compliance
management.

Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: stm32: fix sai driver name initialisation
Arnaud Pouliquen [Fri, 5 Apr 2019 09:19:11 +0000 (11:19 +0200)]
ASoC: stm32: fix sai driver name initialisation

This patch fixes the sai driver structure overwriting which results in
a cpu dai name equal NULL.

Fixes: 3e086ed ("ASoC: stm32: add SAI driver")

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: topology: Use the correct dobj to free enum control values and texts
Ranjani Sridharan [Fri, 5 Apr 2019 02:48:33 +0000 (19:48 -0700)]
ASoC: topology: Use the correct dobj to free enum control values and texts

The control values and texts of the enum kcontrol associated
with a widget need to be freed when the widget is removed.
However, both struct snd_soc_dapm_widget and struct soc_enum
contain a dobj member, which resulted in a confusion.
The existing code generates a null pointer dereference by
attempting to free the values and texts from the dobj which
belongs to the widget instead of the dobj belonging to the
enum kcontrol.

The suggested fix is to use the correct dobj member (se->dobj)
of the enum kcontrol.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: cs42l51: change mic bias DAPM
Olivier Moysan [Wed, 3 Apr 2019 13:23:35 +0000 (15:23 +0200)]
ASoC: cs42l51: change mic bias DAPM

Use SND_SOC_DAPM_SUPPLY for mic bias DAPM
instead of deprecated SND_SOC_DAPM_MICBIAS.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: fsl_esai: Support synchronous mode
S.j. Wang [Thu, 4 Apr 2019 09:40:56 +0000 (09:40 +0000)]
ASoC: fsl_esai: Support synchronous mode

In ESAI synchronous mode, the clock is generated by Tx, So
we should always set registers of Tx which relate with the
bit clock and frame clock generation (TCCR, TCR, ECR), even
there is only Rx is working.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: topology: fix big-endian check
Pierre-Louis Bossart [Thu, 4 Apr 2019 19:13:58 +0000 (14:13 -0500)]
ASoC: topology: fix big-endian check

Use an explicit define to avoid Sparse issues coming from the use of
cpu_to_be32

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: topology: fix endianness issues
Pierre-Louis Bossart [Thu, 4 Apr 2019 19:13:57 +0000 (14:13 -0500)]
ASoC: topology: fix endianness issues

Use le16/32/64_to_cpu() as needed to make Sparse happy.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: axg-tdmout: add g12a support
Jerome Brunet [Thu, 4 Apr 2019 11:17:33 +0000 (13:17 +0200)]
ASoC: meson: axg-tdmout: add g12a support

The axg tdmout driver just need a different skew offset to operate
correctly on the g12a SoC family.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: axg-tdm-formatter: rework quirks settings
Jerome Brunet [Thu, 4 Apr 2019 11:17:32 +0000 (13:17 +0200)]
ASoC: meson: axg-tdm-formatter: rework quirks settings

The g12a tdmout requires a different signal skew offset than the axg.
With this change, the skew offset is added as a parameter of the tdm
formatters to prepare the addition of the g12a support.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: axg-frddr: add g12a support
Jerome Brunet [Thu, 4 Apr 2019 11:17:31 +0000 (13:17 +0200)]
ASoC: meson: axg-frddr: add g12a support

On the axg, frddr could only be connected to 1 downstream element, so the
playback was possible on 1 interface only at a time.

On the g12a, the frddr may connect and wait for the request of up to 3
downstream elements. With this, it possible for single playback to be
played on several interfaces at the same time.

Like the toddr fifo, the g12a frddr also need to take care of resetting
the read pointer to the initial fifo address when preparing a playback.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: axg-toddr: add g12a support
Jerome Brunet [Thu, 4 Apr 2019 11:17:30 +0000 (13:17 +0200)]
ASoC: meson: axg-toddr: add g12a support

Since the g12a SoC fifo can set the fifo initial start address, we must
make sure to actually reset the write pointer to this address when
starting a capture.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: axg-fifo: add g12a support
Jerome Brunet [Thu, 4 Apr 2019 11:17:29 +0000 (13:17 +0200)]
ASoC: meson: axg-fifo: add g12a support

The g12a fifos gained the ability to set the initial address of the
pointer within the buffer, instead of defaulting to the buffer start
address.

It is not very useful to us (yet) but we need to put a copy the buffer
start address in the related register for the fifo to work properly on the
g12a SoC family

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: meson: add g12a compatibles
Jerome Brunet [Thu, 4 Apr 2019 11:17:28 +0000 (13:17 +0200)]
ASoC: meson: add g12a compatibles

Add new compatible strings for the g12a devices.
Audio wise, the g12a is fairly to close to the axg, yet some differences
need to be handled.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: core: remove link components before cleaning up card resources
Ranjani Sridharan [Fri, 5 Apr 2019 00:30:40 +0000 (17:30 -0700)]
ASoC: core: remove link components before cleaning up card resources

When the card is registered by the machine driver,
dai link components are probed after the snd_card is
created. This is done in snd_soc_bind_card() which calls
snd_soc_instantiate_card() to first create the snd_card
and then probes the link components by calling
soc_probe_link_components(). The snd_card is used by the
component driver to add the kcontrols associated
with dapm widgets to the card.

When the machine driver is unregistered, the snd_card
is freed when the card resources are cleaned up.
But the snd_card needs to be valid while unloading the
topology dapm widgets in order to remove the kcontrols
from the card.

Since, unloading topology is done when the component
driver is removed, the link components should be removed
in snd_soc_unbind_card(). This will ensure that the kcontrols
are removed before the card resources are cleaned up and
the snd_card itself is freed.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: intel: skylake: add remove() callback for component driver
Ranjani Sridharan [Fri, 5 Apr 2019 00:30:39 +0000 (17:30 -0700)]
ASoC: intel: skylake: add remove() callback for component driver

Topology is not unloaded in the core during unregister_component()
anymore. So, add the remove() callback that will unload the
topology.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: cs35l35: Disable regulators on driver removal
Charles Keepax [Thu, 4 Apr 2019 16:27:20 +0000 (17:27 +0100)]
ASoC: cs35l35: Disable regulators on driver removal

The chips main power supplies VA and VP are enabled during probe but
then never disabled, this will cause warnings from the regulator
framework on driver removal. Fix this by adding a remove callback and
disabling the supplies, whilst doing so follow best practice and put the
chip back into reset as well.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: cs42l51: add adc volume control
Olivier Moysan [Wed, 3 Apr 2019 13:23:37 +0000 (15:23 +0200)]
ASoC: cs42l51: add adc volume control

Add ADC boost volume control for CS42L51 codec.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
5 years agoASoC: cs42l51: add power management
Olivier Moysan [Wed, 3 Apr 2019 13:23:36 +0000 (15:23 +0200)]
ASoC: cs42l51: add power management

Add sleep PM callbacks to support system low power modes.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>