platform/kernel/linux-starfive.git
6 years agoASoC: audio-graph-card.c: convert to SPDX identifiers
Kuninori Morimoto [Mon, 2 Jul 2018 06:31:16 +0000 (06:31 +0000)]
ASoC: audio-graph-card.c: convert to SPDX identifiers

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-scu-card.c: convert to SPDX identifiers
Kuninori Morimoto [Mon, 2 Jul 2018 06:30:58 +0000 (06:30 +0000)]
ASoC: simple-scu-card.c: convert to SPDX identifiers

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-card-utils: convert to SPDX identifiers
Kuninori Morimoto [Mon, 2 Jul 2018 06:30:44 +0000 (06:30 +0000)]
ASoC: simple-card-utils: convert to SPDX identifiers

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-card: convert to SPDX identifiers
Kuninori Morimoto [Mon, 2 Jul 2018 06:30:28 +0000 (06:30 +0000)]
ASoC: simple-card: convert to SPDX identifiers

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: mt6797: sub dai use list_head
KaiChieh Chuang [Fri, 29 Jun 2018 12:29:45 +0000 (20:29 +0800)]
ASoC: mt6797: sub dai use list_head

Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: mediatek: sub dai use list_head
KaiChieh Chuang [Fri, 29 Jun 2018 12:29:44 +0000 (20:29 +0800)]
ASoC: mediatek: sub dai use list_head

use list_head for sub_dais,
since original sub_dais array is sparsely occupied

Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: make SND_PXA2XX_SOC_I2S selectable
Daniel Mack [Wed, 27 Jun 2018 19:33:59 +0000 (21:33 +0200)]
ASoC: pxa: make SND_PXA2XX_SOC_I2S selectable

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: remove bindings from pxa2xx-pcm
Daniel Mack [Wed, 27 Jun 2018 19:33:58 +0000 (21:33 +0200)]
ASoC: pxa: remove bindings from pxa2xx-pcm

This platform is no longer needed on DT boards, so let's remove them to
avoid confusion. DT bindings should use the CPU DAIs (I2S/SSP/AC97)
directly.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: provide PCM ops for ssp, i2s and ac97 components
Daniel Mack [Wed, 27 Jun 2018 19:33:57 +0000 (21:33 +0200)]
ASoC: pxa: provide PCM ops for ssp, i2s and ac97 components

Now that the functions are now available through pxa2xx-lib, hook them up
to pxa-sspi, pxa-ac97 and pxa-i2s. This allows DT platforms to use the DAIs
without a platform driver.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa2xx-pcm-lib: fix indenting
Daniel Mack [Wed, 27 Jun 2018 19:33:56 +0000 (21:33 +0200)]
ASoC: pxa2xx-pcm-lib: fix indenting

While at it, also fix some indenting.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: move some functions to pxa2xx-lib
Daniel Mack [Wed, 27 Jun 2018 19:33:55 +0000 (21:33 +0200)]
ASoC: pxa: move some functions to pxa2xx-lib

To get rid of some intermediate platform layers, move pxa2xx_soc_pcm_new()
and pxa2xx_pcm_ops in pxa2xx-lib.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: clean up function names in pxa2xx-lib
Daniel Mack [Wed, 27 Jun 2018 19:33:54 +0000 (21:33 +0200)]
ASoC: pxa: clean up function names in pxa2xx-lib

Clean up the namespace a bit and drop the __ prefix of all functions
exported by pxa2xx-lib. This improves the readability of the code.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fold pxa2xx-pcm into its only user, pxa2xx-ac97
Daniel Mack [Wed, 27 Jun 2018 19:33:53 +0000 (21:33 +0200)]
ASoC: fold pxa2xx-pcm into its only user, pxa2xx-ac97

Now that the PXA SSP bits are ported over to generic DMA, the pxa2xx-pcm
code only has a single user left. This patch folds the remaining bits into
its only user and removes the unnecessary glue layer along with its header
file.

The include dependency to linux/dma/pxa-dma.h is also gone now.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: remove the dmaengine compat need
Robert Jarzmik [Thu, 28 Jun 2018 20:08:37 +0000 (22:08 +0200)]
ASoC: pxa: remove the dmaengine compat need

As the pxa architecture switched towards the dmaengine slave map, the
old compatibility mechanism to acquire the dma requestor line number and
priority are not needed anymore.

This patch simplifies the dma resource acquisition, using the more
generic function dma_request_slave_channel().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dpcm: extend channel merging to the backend cpu dai
Jerome Brunet [Wed, 27 Jun 2018 09:48:18 +0000 (11:48 +0200)]
ASoC: dpcm: extend channel merging to the backend cpu dai

Extend dpcm_merge_chan to also check backend cpu dai channels
capabilities. Apply the same policy as soc_pcm_init_runtime_hw() for
multicodec links and only check cpu dai in this case.

Cc: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: qdafe: fix some off by one bugs
Dan Carpenter [Wed, 27 Jun 2018 08:56:53 +0000 (11:56 +0300)]
ASoC: qdsp6: qdafe: fix some off by one bugs

The > should be >= or we could read one element beyond the end of the
port_maps[] array.

Fixes: 7fa2d70f9766 ("ASoC: qdsp6: q6afe: Add q6afe driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dpcm: improve runtime update predictability
Jerome Brunet [Tue, 26 Jun 2018 10:07:25 +0000 (12:07 +0200)]
ASoC: dpcm: improve runtime update predictability

As it is, dpcm_runtime_update() performs the old path and new path
update of a frontend before going on to the next frontend DAI.
Depending the order of the FEs within the rtd list, the result of
the update might be different.

For example:
 * Frontend A connected to backend C, with a 48kHz playback
 * Frontend B connected to backend D, with a 44.1kHz playback
 * FE A appears before FE B in the rtd list of the card.

If we reparent BE C to FE B (disconnecting BE D):
* old path update of FE A will run first, and BE C will get hw_free()
  and shutdown()
* new path update of FE B will run after and BE C, which is stopped,
  so it will be configured at 44.1kHz, as expected

If we reparent BE D to FE A (disconnecting BE C):
* new path update of FE A will run first but since BE D is still running
  at 44.1kHz, it won't be reconfigured (no call to startup() or
  hw_params())
* old path update of FE B runs after, nothing happens
* In this case, we end up with a BE playing at 44.1kHz a stream which is
  supposed to be played at 48Khz (too slow)

To improve this situation, this patch performs all the FE old paths update
before going on to update the new paths. With this, the result should
no longer depend on the order of the FE within the card rtd list.

Please note that there might be a small performance penalty since
dpcm_process_paths() is called twice per stream direction.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tas517x: add tas5707 support
Jerome Brunet [Wed, 27 Jun 2018 07:39:37 +0000 (09:39 +0200)]
ASoC: tas517x: add tas5707 support

Add support for the tas5707 audio power amplifier.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tas571x: add tas5707 compatible
Jerome Brunet [Wed, 27 Jun 2018 07:39:36 +0000 (09:39 +0200)]
ASoC: tas571x: add tas5707 compatible

Add the tas5707 to the available compatibles of the tas571x driver

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-amplifer: add simple-amplifier compatible
Jerome Brunet [Tue, 26 Jun 2018 12:11:28 +0000 (14:11 +0200)]
ASoC: simple-amplifer: add simple-amplifier compatible

Add simple-audio-amplifier to the list of available compatible

Suggested-by: Nicolò Veronese <nicveronese@gmail.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-amplifier: rename dio2125 to simple-amplifer
Jerome Brunet [Tue, 26 Jun 2018 12:11:27 +0000 (14:11 +0200)]
ASoC: simple-amplifier: rename dio2125 to simple-amplifer

The dio2125 is simple enough that we can make it a generic component.
Just rename and sed the dio2125 amplifier driver to simple_amplifier.

Suggested-by: Nicolò Veronese <nicveronese@gmail.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-amplifier: remame dio2125 documentation
Jerome Brunet [Tue, 26 Jun 2018 12:11:26 +0000 (14:11 +0200)]
ASoC: simple-amplifier: remame dio2125 documentation

The dio2125 is simple enough that we can make it a generic component.
Rename the the dio2125 documentation to simple-amplifier to
prepare this change.

Suggested-by: Nicolò Veronese <nicveronese@gmail.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Sort DMI table entries alphabetically
Hans de Goede [Sun, 24 Jun 2018 14:06:34 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Sort DMI table entries alphabetically

As we get more entries in the DMI quirk table it is nice to have some
sort of ordering in the table, sort it alphabetically.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Add BYT_RT5651_HP_LR_SWAPPED quirk
Hans de Goede [Sun, 24 Jun 2018 14:06:33 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_HP_LR_SWAPPED quirk

One some models (Chuwi Vi8 Plus, Chuwi Hi8 Pro) the headphone output has
left and right swapped. This can be fixed in with special mixer settings
in the UCM profile, bit this requires these devices loading a different
UCM profile.

This commit adds a BYT_RT5651_HP_LR_SWAPPED quirk for this and postfixes
the longname with "-hp-swapped" if set, so that a different UCM profile
will be loaded.

We can safely do this without causing regressions (UCM profile not found
due to the longname change) as the UCM profiles are not in upstream
alsa-lib yet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Simplify card long-name
Hans de Goede [Sun, 24 Jun 2018 14:06:32 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Simplify card long-name

Now that the headset-mic is always IN3 there is no reason to have
the headset-mic mapping in the long-name.

This commit simplifies the long name to "bytcr-rt5651-<intmic-map>-mic".

We can safely do this without causing regressions (UCM profile not found
due to the longname change) as the UCM profiles are not in upstream
alsa-lib yet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Fix DMIC map headsetmic mapping
Hans de Goede [Sun, 24 Jun 2018 14:06:31 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Fix DMIC map headsetmic mapping

The initial bytcr_rt5651 machine driver commit mapped IN2 as the headset
mic. In retrospect this is not correct as all known boards have the headset
mic on IN3.

This commit fixes the original DMIC mapping to correctly have the headset
mic on IN3.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Fix IN1 map headsetmic mapping
Hans de Goede [Sun, 24 Jun 2018 14:06:30 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Fix IN1 map headsetmic mapping

The initial bytcr_rt5651 machine driver commit mapped IN2 as the headset
mic. In retrospect this is not correct as all known boards have the headset
mic on IN3. To workaround this special IN?_HS_IN3 mappings were added.

This commit fixes the original IN1 mapping to correctly have the headset
mic on IN3, moves all users of the IN1_HS_IN3 mapping over to the fixed
IN1_MAP and drops the now no longer needed IN1_HS_IN3 mapping.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Remove IN2 input mappings
Hans de Goede [Sun, 24 Jun 2018 14:06:29 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Remove IN2 input mappings

BYT_RT5651_IN2_MAP was introduced in commit 39712db878a4 ("SoC: intel: byt:
Introduce new custom IN2 map"), uses in commit 2fe30129b0a6 ("ASoC: intel:
byt: Enable IN2 map quirk for a KIANO laptop"), only to be replaced by a
new BYT_RT5651_IN1_IN2_MAP quirk in commit ea261bd02a67 ("ASoC: intel:
byt: Introduce new map for dual mics") quickly afterwards, because the
KIANO laptop has 2 internal mics on IN1 and IN2 and the headset mic is
not in IN1 where the BYT_RT5651_IN2_MAP maps it, but on IN3.

Now that the KIANO quirk entry uses BYT_RT5651_IN1_IN2_MAP, there are no
users of BYT_RT5651_IN2_MAP left. This makes sense since the headset mic
seems to always be connected to IN3, so BYT_RT5651_IN2_MAP is not useful.

To deal with BYT_RT5651_IN2_MAP wrongly mapping the headset mic to IN1,
BYT_RT5651_IN2_HS_IN3_MAP was added in commit f026e0631780 ("ASoC: Intel:
bytcr_rt5651: Add new IN2_HS_IN3 input map and a quirk using it"). This
was based on the assumption then some devices have the internal mic
connected to IN2 only. Further testing has shown that this is wrong and the
internal mic is always connected to IN1 and sometimes to both IN1 and IN2.

TL;DR: Both BYT_RT5651_IN2_MAP and BYT_RT5651_IN2_HS_IN3_MAP are based on
on wrong assumptions from the past and are no longer useful now, so they
can both be removed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Fix IN1_IN2_MAP quirk not being logged
Hans de Goede [Sun, 24 Jun 2018 14:06:28 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Fix IN1_IN2_MAP quirk not being logged

Fix the quirk logging code not logging the IN1_IN2_MAP quirk.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Change default input map from in2 to in1
Hans de Goede [Sun, 24 Jun 2018 14:06:27 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Change default input map from in2 to in1

Further testing on all 6 model x86 tablets with a rt5651 which I have
access to for testing has shown that their single (mono) microphone is
connected to both IN1 *and* IN2.

The previous default mapping of IN2 was based on testing on the same 6
tablets, where the internal mic works fine with a mapping of IN2. But it
works fine too with a mapping of IN1.

This commit changes the default input mapping to to use IN1 instead of
IN2, to match the mapping used for the other mono devices in the DMI quirk
table. So that we need less different mappings.

The same change is made to the Chuwi Vi8 Plus quirks, which is one of the
6 models tested.

This is a preparation patch for simplifying the maps in a follow-up commit.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5651: Add BYT_RT5651_DEFAULT_QUIRKS define
Hans de Goede [Sun, 24 Jun 2018 14:06:26 +0000 (16:06 +0200)]
ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_DEFAULT_QUIRKS define

Almost all boards use the mclk and use the same jack-detect settings, add
a BYT_RT5651_DEFAULT_QUIRKS define for this.

This shaves of some lines and makes it easier to see which settings are
unique to a certain model.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6asm: remove unused struct q6asm member
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:16 +0000 (10:20 +0100)]
ASoC: qdsp6: q6asm: remove unused struct q6asm member

pcmdev in struct q6asm seems be left over and unused, so just remove it.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6routing: add proper error check
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:15 +0000 (10:20 +0100)]
ASoC: qdsp6: q6routing: add proper error check

q6adm_open can return error pointer or a null in error cases.
Fix the return handling.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: apq8096: remove redundant owner assignment
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:14 +0000 (10:20 +0100)]
ASoC: qcom: apq8096: remove redundant owner assignment

module owner is already set in platform_driver_register(), so remove this
redundant assignment.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6routing: support dt based module loading
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:13 +0000 (10:20 +0100)]
ASoC: qdsp6: q6routing: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6asm-dai: support dt based module loading
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:12 +0000 (10:20 +0100)]
ASoC: qdsp6: q6asm-dai: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6afe-dai: support dt based module loading
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:11 +0000 (10:20 +0100)]
ASoC: qdsp6: q6afe-dai: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6afe: use of_platform_populate/depopulate()
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:10 +0000 (10:20 +0100)]
ASoC: qdsp6: q6afe: use of_platform_populate/depopulate()

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6asm: use of_platform_populate/depopulate()
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:09 +0000 (10:20 +0100)]
ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qdsp6: q6adm: use of_platform_populate/depopulate()
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:08 +0000 (10:20 +0100)]
ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: q6afe: dt-bindings: add compatible string to dais
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:07 +0000 (10:20 +0100)]
ASoC: q6afe: dt-bindings: add compatible string to dais

Add compatible string to dais so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: q6asm: dt-bindings: add compatible string to dais
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:06 +0000 (10:20 +0100)]
ASoC: q6asm: dt-bindings: add compatible string to dais

Add compatible string to dais so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: q6adm: dt-bindings: add compatible string to routing
Srinivas Kandagatla [Tue, 26 Jun 2018 09:20:05 +0000 (10:20 +0100)]
ASoC: q6adm: dt-bindings: add compatible string to routing

Add compatible string to routing so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge tag 'pxa-for-4.19-dma_slave_map' of
Mark Brown [Mon, 25 Jun 2018 13:05:18 +0000 (14:05 +0100)]
Merge tag 'pxa-for-4.19-dma_slave_map' of
https://github.com/rjarzmik/linux into asoc-4.19 for ac'97 deps

6 years agoASoC: cx20442: Don't ignore regulator_get() errors.
Janusz Krzysztofik [Sun, 24 Jun 2018 18:14:41 +0000 (20:14 +0200)]
ASoC: cx20442: Don't ignore regulator_get() errors.

In its current shape, the driver just ignores errors returned by
regulator_get() at component_probe().  This doesn't hurt on Amstrad
Delta board as long as it registers the codec device at late_initcall,
when the regulator which depends on basic-mmio-gpio device (probed as
late as at dev_initcall) is already available.  Otherwise the driver
may end up trying to control a codec which is not powered up.

Remove that dependency on initialization order by handling the error.
If the regulator is not yet available and -ENODEV is returned, convert
it to -EPROBE_DEFER to get another chance.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: soc-pcm: DPCM cares BE channel constraint
Jiada Wang [Wed, 20 Jun 2018 09:25:20 +0000 (18:25 +0900)]
ASoC: soc-pcm: DPCM cares BE channel constraint

Current DPCM is caring only FE channel configuration. Sometimes
it will be trouble if user selects channel which isn't supported
by BE.

This patch adds new .dpcm_merged_chan on struct snd_soc_dai_link.
DPCM will use FE / BE merged channel if struct snd_soc_dai_link
has it.

Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: add hp-det-gpio and mic-det-gpio to audio graph card binding
Katsuhiro Suzuki [Wed, 20 Jun 2018 01:59:59 +0000 (10:59 +0900)]
ASoC: add hp-det-gpio and mic-det-gpio to audio graph card binding

Add headphone and microphone detection GPIO support to audio graph
card same as supported in simple card.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: AMD: Configure channel 1 or channel 0 for capture
Akshu Agrawal [Thu, 21 Jun 2018 04:58:17 +0000 (12:58 +0800)]
ASoC: AMD: Configure channel 1 or channel 0 for capture

ST/CZ SoC have 2 channels for capture in the I2SSP path.
The DMA though these channels is done using the same dma
descriptors.
We configure the channel and enable it on the basis of
channel selected by machine driver. Machine driver knows
which codec sits on which channel and thus sends the information
to dma driver.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge branch 'asoc-4.18' into asoc-4.19 for amd dep
Mark Brown [Fri, 22 Jun 2018 14:47:23 +0000 (15:47 +0100)]
Merge branch 'asoc-4.18' into asoc-4.19 for amd dep

6 years agoASoC: AMD: Change codec to channel link as per hardware redesign
Agrawal, Akshu [Thu, 21 Jun 2018 04:58:16 +0000 (12:58 +0800)]
ASoC: AMD: Change codec to channel link as per hardware redesign

This is a correction to match acutal hardware configuration.
The hardware configuration looks like:
I2S_BT -> SPK(Max) + DMIC(Adau)
I2S_SP -> DA7219 Headset

No actual products have been shipped with previous configuration.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: uniphier: remove redundant check of PLL ID
Katsuhiro Suzuki [Thu, 21 Jun 2018 02:56:28 +0000 (11:56 +0900)]
ASoC: uniphier: remove redundant check of PLL ID

This patch removes redudant check of PLL ID. struct uniphier_aio_pll
enable member has already been checked at is_valid_pll().

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt1305: use devm_snd_soc_register_component()
Wei Yongjun [Fri, 22 Jun 2018 02:23:34 +0000 (02:23 +0000)]
ASoC: rt1305: use devm_snd_soc_register_component()

Using devm_snd_soc_register_component() and drop all of the code
related to .remove hook.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5682: use devm_snd_soc_register_component()
Wei Yongjun [Fri, 22 Jun 2018 02:23:24 +0000 (02:23 +0000)]
ASoC: rt5682: use devm_snd_soc_register_component()

Using devm_snd_soc_register_component() and drop all of the code
related to .remove hook.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: fix missing rename from 'reef' to 'sof'
Pierre-Louis Bossart [Thu, 21 Jun 2018 20:47:35 +0000 (15:47 -0500)]
ASoC: Intel: common: fix missing rename from 'reef' to 'sof'

Somehow I missed the Nau8824 support which was added in 4.17. Oops

Fixes: 4f722a6a736 ("ASoC: Intel: common: rename 'reef' to 'sof' in ACPI matching table")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: rename 'reef' to 'sof' in ACPI matching table
Pierre-Louis Bossart [Tue, 19 Jun 2018 19:00:37 +0000 (14:00 -0500)]
ASoC: Intel: common: rename 'reef' to 'sof' in ACPI matching table

Align with firmware tools, no functionality change

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: arizona: Set compressed IRQ to a wake source
Charles Keepax [Wed, 20 Jun 2018 10:56:20 +0000 (11:56 +0100)]
ASoC: arizona: Set compressed IRQ to a wake source

The current code is not setting the compressed IRQ as a wake
source.  Normally this doesn't cause any issues as the CODEC
IRQ is set as a wake source by the jack detection code and the
CODEC only produces a single IRQ line. However if the system
is not using jack detection the compressed audio IRQ should
still function as a wake source, as such directly set the
compressed audio IRQ as a wake source.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm_adsp: Simplify handling of alg offset and length
Charles Keepax [Wed, 20 Jun 2018 10:56:21 +0000 (11:56 +0100)]
ASoC: wm_adsp: Simplify handling of alg offset and length

The current code that reads the algorithm list from the DSP is
somewhat unclear, it converts directly from bytes to registers using
a hard coded divide by 2. Most offsets are usually handled in DSP
words within the driver and there is a function specifically for
converting from words to register addresses. So update the handling
to use these. This also removes the assumption that the registers
are 16-bit word addressed, which will no longer be true on some of
our newer parts.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pcm: Tidy up open/hw_params handling
Charles Keepax [Tue, 19 Jun 2018 15:22:09 +0000 (16:22 +0100)]
ASoC: pcm: Tidy up open/hw_params handling

Currently, the core will continue processing open/hw_params
component callbacks after one has failed even though it will abort
immediately afterwards. This is unnecessary and also has the issue
that close/hw_free will be called on the component which failed
open/hw_params which could result in issues if the driver doesn't
expect this behaviour.

Update the core to abort processing open/hw_params when an error
is hit and only call close/hw_free for those components that were
successfully opened.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: fix copy/paste issue with SOF/broadwell topology file
Pierre-Louis Bossart [Mon, 18 Jun 2018 18:29:42 +0000 (13:29 -0500)]
ASoC: Intel: common: fix copy/paste issue with SOF/broadwell topology file

There are two commercially-available Broadwell platforms based on I2S
(Dell XPS13 and 'Samus' Pixel 2015 Chromebook).

Fix a copy/paste issue to allow each platform to enable different
features if needed when SOF is enabled

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: add entries for SOF-based machine drivers
Pierre-Louis Bossart [Mon, 18 Jun 2018 18:29:41 +0000 (13:29 -0500)]
ASoC: Intel: common: add entries for SOF-based machine drivers

While we are at it, add entries for machine drivers that are used on
SOF-based platforms. The drivers will be submitted upstream after the
core SOF patches, but there's no harm in adding these references now.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: add firmware/topology information for SOF
Pierre-Louis Bossart [Mon, 18 Jun 2018 18:29:39 +0000 (13:29 -0500)]
ASoC: Intel: common: add firmware/topology information for SOF

No functionality change for Skylake driver, add relevant names needed
by SOF for BXT/APL, GLK and CNL.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: common: Add Geminilake Dialog+Maxim machine driver entry
Naveen Manohar [Mon, 18 Jun 2018 18:29:38 +0000 (13:29 -0500)]
ASoC: Intel: common: Add Geminilake Dialog+Maxim machine driver entry

This patch adds da7219_max98357a machine driver entry into
machine table

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: move SKL+ codec ACPI tables to common directory
Pierre-Louis Bossart [Mon, 18 Jun 2018 18:29:37 +0000 (13:29 -0500)]
ASoC: Intel: move SKL+ codec ACPI tables to common directory

No functionality change, just move to common tables to make it easier
to deal with SOF and share the same machine drivers - as done
previously for BYT/CHT/HSW/BDW.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: cleanup before moving ACPI tables
Pierre-Louis Bossart [Mon, 18 Jun 2018 18:29:36 +0000 (13:29 -0500)]
ASoC: Intel: Skylake: cleanup before moving ACPI tables

There is no need to deal with DMICs if the DSP is not present and
there is no ACPI machine ID found.

Simplify before moving these ACPI tables to sound/soc/intel/common

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: broxton: reduce machine name for bxt_da7219_max98357a
Naveen Manohar [Mon, 18 Jun 2018 18:29:35 +0000 (13:29 -0500)]
ASoC: Intel: broxton: reduce machine name for bxt_da7219_max98357a

Use truncated names in bxt id table and bxt_da7219_max98357a machine
as platform device id table expects names to be less then 20chars.

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: kbl_da7219_max98357a: add fe_ops for kbl Audio Capture Port
Mac Chiang [Tue, 19 Jun 2018 06:16:06 +0000 (14:16 +0800)]
ASoC: Intel: kbl_da7219_max98357a: add fe_ops for kbl Audio Capture Port

platform support fixed constraint hw_prams as Stereo, 48KHz, 16 bits.
This fixed the headset mic recorded noise due to mono capturing
request from some apps. e.g. online Voice Recorder

Signed-off-by: Louis Collard <louiscollard@google.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoARM: pxa: change SSP DMA channels allocation
Robert Jarzmik [Sun, 17 Jun 2018 17:02:17 +0000 (19:02 +0200)]
ARM: pxa: change SSP DMA channels allocation

Now the dma_slave_map is available for PXA architecture, switch the SSP
device to it.

This specifically means that :
- for platform data based machines, the DMA requestor channels are
  extracted from the slave map, where pxa-ssp-dai.<N> is a 1-1 match to
  ssp.<N>, and the channels are either "rx" or "tx".

- for device tree platforms, the dma node should be hooked into the
  pxa2xx-ac97 or pxa-ssp-dai node.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Daniel Mack <daniel@zonque.org>
6 years agoARM: pxa: remove the DMA IO resources
Robert Jarzmik [Sun, 17 Jun 2018 17:02:16 +0000 (19:02 +0200)]
ARM: pxa: remove the DMA IO resources

As the last driver using the former mechanism to acquire the DMA
requestor line has be converted to the dma_slave_map, remove all these
resources from the PXA devices.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
6 years agodmaengine: pxa: document pxad_param
Robert Jarzmik [Sun, 17 Jun 2018 17:02:14 +0000 (19:02 +0200)]
dmaengine: pxa: document pxad_param

Add some documentation for the pxad_param structure, and describe the
contract behind the minimal required priority of a DMA channel.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Vinod Koul <vkoul@kernel.org>
6 years agoata: pata_pxa: remove the dmaengine compat need
Robert Jarzmik [Sun, 17 Jun 2018 17:02:13 +0000 (19:02 +0200)]
ata: pata_pxa: remove the dmaengine compat need

As the pxa architecture switched towards the dmaengine slave map, the
old compatibility mechanism to acquire the dma requestor line number and
priority are not needed anymore.

This patch simplifies the dma resource acquisition, using the more
generic function dma_request_slave_channel().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
6 years agomtd: rawnand: marvell: remove the dmaengine compat need
Robert Jarzmik [Sun, 17 Jun 2018 17:02:09 +0000 (19:02 +0200)]
mtd: rawnand: marvell: remove the dmaengine compat need

As the pxa architecture switched towards the dmaengine slave map, the
old compatibility mechanism to acquire the dma requestor line number and
priority are not needed anymore.

This patch simplifies the dma resource acquisition, using the more
generic function dma_request_slave_channel().

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
6 years agomedia: pxa_camera: remove the dmaengine compat need
Robert Jarzmik [Sun, 17 Jun 2018 17:02:08 +0000 (19:02 +0200)]
media: pxa_camera: remove the dmaengine compat need

As the pxa architecture switched towards the dmaengine slave map, the
old compatibility mechanism to acquire the dma requestor line number and
priority are not needed anymore.

This patch simplifies the dma resource acquisition, using the more
generic function dma_request_slave_channel().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
6 years agommc: pxamci: remove the dmaengine compat need
Robert Jarzmik [Sun, 17 Jun 2018 17:02:07 +0000 (19:02 +0200)]
mmc: pxamci: remove the dmaengine compat need

As the pxa architecture switched towards the dmaengine slave map, the
old compatibility mechanism to acquire the dma requestor line number and
priority are not needed anymore.

This patch simplifies the dma resource acquisition, using the more
generic function dma_request_slave_channel().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
6 years agodmaengine: pxa: add a default requestor policy
Robert Jarzmik [Sun, 17 Jun 2018 17:02:06 +0000 (19:02 +0200)]
dmaengine: pxa: add a default requestor policy

As what former drcmr -1 value meant, add a this as a default to each
channel, ie. that by default no requestor line is used.

This is specifically used for network drivers smc91x and smc911x, and
needed for their port to slave maps.

Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Vinod Koul <vkoul@kernel.org>
6 years agoARM: pxa: add dma slave map
Robert Jarzmik [Sun, 17 Jun 2018 17:02:05 +0000 (19:02 +0200)]
ARM: pxa: add dma slave map

In order to remove the specific knowledge of the dma mapping from PXA
drivers, add a default slave map for pxa architectures.

This is the first step, and once all drivers are converted,
pxad_filter_fn() will be made static, and the DMA resources removed from
device.c.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reported-by: Arnd Bergmann <arnd@arndb.de>
6 years agodmaengine: pxa: use a dma slave map
Robert Jarzmik [Sun, 17 Jun 2018 17:02:04 +0000 (19:02 +0200)]
dmaengine: pxa: use a dma slave map

In order to remove the specific knowledge of the dma mapping from PXA
drivers, add a default slave map for pxa architectures.

This won't impact MMP architecture, but is aimed only at all PXA boards.

This is the first step, and once all drivers are converted,
pxad_filter_fn() will be made static, and the DMA resources removed from
device.c.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Vinod Koul <vkoul@kernel.org>
6 years agoASoC: Intel: bytcr_rt5640: Fix Acer Iconia 8 over-current detect threshold
Hans de Goede [Sun, 3 Jun 2018 13:42:32 +0000 (15:42 +0200)]
ASoC: Intel: bytcr_rt5640: Fix Acer Iconia 8 over-current detect threshold

Change the over-current detect threshold on the Acer Iconia 8 from
2000ua to 1500uA, this fixes headset button presses not being detected.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5640: Add quirk for the Nuvison/TMax TM800W560 tablet
Hans de Goede [Sun, 3 Jun 2018 13:42:31 +0000 (15:42 +0200)]
ASoC: Intel: bytcr_rt5640: Add quirk for the Nuvison/TMax TM800W560 tablet

Add a quirk for the Nuvison/TMax TM800W560 tablet, this tablet uses IN1
for the internal mic rather then the default IN3 and it uses JD2 rather
then JD1 for its not-inverted jack-detect switch.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tegra: fix device_node refcounting
Alexey Khoroshilov [Fri, 15 Jun 2018 22:22:58 +0000 (01:22 +0300)]
ASoC: tegra: fix device_node refcounting

tegra_rt5677_probe() gets a couple of device nodes with of_parse_phandle(),
but there is no release of them.

The patch adds the release to tegra_rt5677_remove() and
to error handling paths in the probe.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Reviewed-by: Nicholas Mc Guire <der.herr@hofr.at>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: add devicetree support
Robert Jarzmik [Sun, 17 Jun 2018 10:50:01 +0000 (12:50 +0200)]
ASoC: pxa: add devicetree support

Add the devicetree support, so that the driver can be used in a
devictree platform.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pxa: add binding for pxa2xx-ac97 audio complex
Robert Jarzmik [Sun, 17 Jun 2018 10:50:00 +0000 (12:50 +0200)]
ASoC: pxa: add binding for pxa2xx-ac97 audio complex

This adds a binding for the Marvell PXA audio complex, available in
pxa2xx and pxa3xx variants.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: codecs: PCM1789: unconditionally flush work
Stefan Agner [Sun, 17 Jun 2018 13:45:29 +0000 (15:45 +0200)]
ASoC: codecs: PCM1789: unconditionally flush work

Work is guaranteed to be initialized on exit. Drop the unnecessary
if statement and always call flush_work.

This fixes a warning seen with clang:
sound/soc/codecs/pcm1789.c:265:13: warning: address of 'priv->work' will
      always evaluate to 'true' [-Wpointer-bool-conversion]
        if (&priv->work)
        ~~   ~~~~~~^~~~

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5682: add rt5682 codec driver
Bard Liao [Thu, 7 Jun 2018 08:37:38 +0000 (16:37 +0800)]
ASoC: rt5682: add rt5682 codec driver

This is the initial codec driver for rt5682.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: TSCS42xx: Add headphone auto switching
Steven Eckhoff [Mon, 4 Jun 2018 20:47:02 +0000 (15:47 -0500)]
ASoC: TSCS42xx: Add headphone auto switching

Add headphone auto switching controls

Signed-off-by: Steven Eckhoff <steven.eckhoff.opensource@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: TSCS42xx: Remove Playback/Capture in names
Steven Eckhoff [Mon, 4 Jun 2018 20:46:28 +0000 (15:46 -0500)]
ASoC: TSCS42xx: Remove Playback/Capture in names

These aren't needed and some userspace apps don't work consistently with
them.

Remove Playback/Capture from control names

Signed-off-by: Steven Eckhoff <steven.eckhoff.opensource@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: TSCS42xx: Add mic bias boost control
Steven Eckhoff [Mon, 4 Jun 2018 20:45:40 +0000 (15:45 -0500)]
ASoC: TSCS42xx: Add mic bias boost control

Add mic bias boost control

Signed-off-by: Steven Eckhoff <steven.eckhoff.opensource@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: ak4458: make structure soc_codec_dev_ak4458 static const
Colin Ian King [Wed, 6 Jun 2018 10:31:23 +0000 (11:31 +0100)]
ASoC: ak4458: make structure soc_codec_dev_ak4458 static const

The structure soc_codec_dev_ak4458 is local to the source and do not
need to be in global scope and can be const, make it static const.

Cleans up sparse warnings:
warning: symbol 'soc_codec_dev_ak4458' was not declared. Should it
be static?

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: ak5558: make two structures static
Colin Ian King [Wed, 6 Jun 2018 09:57:19 +0000 (10:57 +0100)]
ASoC: ak5558: make two structures static

The structure ak5558_pm and soc_codec_dev_ak5558 are local to the
source and do not need to be in global scope, so make them static.
Also make soc_codec_dev_ak5558 static.

Cleans up sparse warnings:
warning: symbol 'ak5558_pm' was not declared. Should it be static?
warning: symbol 'soc_codec_dev_ak5558' was not declared. Should it be
static?

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: twl6040: make pointer dmic_codec_dev static
Colin Ian King [Wed, 6 Jun 2018 09:35:04 +0000 (10:35 +0100)]
ASoC: twl6040: make pointer dmic_codec_dev static

The pointer dmic_codec_dev is local to the source and does not need
to be in global scope, so make it static.

Cleans up sparse warning:
warning: symbol 'dmic_codec_dev' was not declared. Should it be static?

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: apq8096: set card as device drvdata
Rohit Kumar [Wed, 6 Jun 2018 08:55:24 +0000 (14:25 +0530)]
ASoC: qcom: apq8096: set card as device drvdata

snd_soc_card is retrieved as device drvdata during unbind().
Set it as drvdata during bind() to avoid memory corruption during
unbind().

Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rsnd: add rsnd_daidrv_get()
Kuninori Morimoto [Tue, 12 Jun 2018 05:51:46 +0000 (05:51 +0000)]
ASoC: rsnd: add rsnd_daidrv_get()

rsnd priv has many parameters. On __rsnd_dai_probe() it uses
rsnd_rdai_get() to get rdai pointer, but is using priv->daidrv
directly to get daidrvhv, but it is confusable for reader.
This patch adds rsnd_daidrv_get() to get daidrv from priv.
Now reader can understand that rdai and daidrv are related.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: audio-graph-card: add hp and mic detect gpios same as simple-card
Katsuhiro Suzuki [Mon, 11 Jun 2018 08:32:14 +0000 (17:32 +0900)]
ASoC: audio-graph-card: add hp and mic detect gpios same as simple-card

This patch adds headphone and microphone jack detection gpios as same
as simple-card driver.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-card: move hp and mic detection to soc_card probe
Katsuhiro Suzuki [Mon, 11 Jun 2018 08:32:13 +0000 (17:32 +0900)]
ASoC: simple-card: move hp and mic detection to soc_card probe

This patch moves headphone and microphone detection to probe() of
snd_soc_card from init() of snd_soc_dai_link. This is because init()
is called (and an input device /dev/input/eventX is created too)
twice or above if simple card has two or more DAI links.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: simple-card-utils: move hp and mic detect gpios from simple-card
Katsuhiro Suzuki [Mon, 11 Jun 2018 08:32:12 +0000 (17:32 +0900)]
ASoC: simple-card-utils: move hp and mic detect gpios from simple-card

This patch moves headphone and microphone jack detection gpios from
simple-card driver. It is preparing for using this feature from other
drivers.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Vi10 tablet
Hans de Goede [Fri, 8 Jun 2018 08:19:25 +0000 (10:19 +0200)]
ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Vi10 tablet

Add a quirk for the Chuwi Vi10 tablet, this tablet uses IN1 for the
internal mic rather then the default IN3 and it uses JD2 rather
then JD1 for its jack-detect switch.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt1305: Use ULL suffixes for 64-bit constants
Geert Uytterhoeven [Thu, 7 Jun 2018 13:50:48 +0000 (15:50 +0200)]
ASoC: rt1305: Use ULL suffixes for 64-bit constants

With gcc 4.1.2:

    sound/soc/codecs/rt1305.c: In function ‘rt1305_calibrate’:
    sound/soc/codecs/rt1305.c:1069: warning: integer constant is too large for ‘long’ type
    sound/soc/codecs/rt1305.c:1086: warning: integer constant is too large for ‘long’ type

Add the missing "ULL" suffixes to fix this.

Fixes: 29bc643ddd7efb74 ("ASoC: rt1305: Add RT1305/RT1306 amplifier driver")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rockchip: add config for rockchip dmaengine pcm register
Jianqun Xu [Fri, 8 Jun 2018 08:31:09 +0000 (16:31 +0800)]
ASoC: rockchip: add config for rockchip dmaengine pcm register

This patch makes the rockchip i2s pcm configurable by adding
rockchip pcm config for devm_snd_dmaengine_pcm_register.

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rockchip: put device_node on remove
Alexey Khoroshilov [Sat, 9 Jun 2018 22:20:54 +0000 (01:20 +0300)]
ASoC: rockchip: put device_node on remove

snd_rk_mc_probe() gets a couple of device nodes with of_parse_phandle(),
but there is no release of them.

The patch adds remove handler and proper error handling in the probe.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: stm32: sai: add iec958 controls support
olivier moysan [Mon, 11 Jun 2018 15:13:59 +0000 (17:13 +0200)]
ASoC: stm32: sai: add iec958 controls support

Add support of iec958 controls for STM32 SAI.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: AMD: Add NULL pointer check
Agrawal, Akshu [Thu, 7 Jun 2018 06:48:43 +0000 (14:48 +0800)]
ASoC: AMD: Add NULL pointer check

Fix crash in those platforms whose machine driver does not expose
platform_info. For those platforms we rely on default value and
select I2SSP channel.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>