openwrt/staging/blogic.git
6 years agoASoC: max98373: Added 10ms sleep after amp software reset
Ryan Lee [Fri, 24 Aug 2018 01:37:08 +0000 (18:37 -0700)]
ASoC: max98373: Added 10ms sleep after amp software reset

Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5514: Fix the issue of the delay volume applied again
Oder Chiou [Wed, 15 Aug 2018 06:47:49 +0000 (14:47 +0800)]
ASoC: rt5514: Fix the issue of the delay volume applied again

After our evaluation, we need to modify the default values to make sure
the volume applied immediately.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: max98373: Added speaker FS gain cotnrol register to volatile.
Ryan Lee [Thu, 16 Aug 2018 01:53:38 +0000 (18:53 -0700)]
ASoC: max98373: Added speaker FS gain cotnrol register to volatile.

Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dapm: Fix NULL pointer deference on CODEC to CODEC DAIs
Charles Keepax [Wed, 15 Aug 2018 12:11:35 +0000 (13:11 +0100)]
ASoC: dapm: Fix NULL pointer deference on CODEC to CODEC DAIs

Commit a655de808cbde ("ASoC: core: Allow topology to override
machine driver FE DAI link config.") caused soc_dai_hw_params to
be come dependent on the substream private_data being set with
a pointer to the snd_soc_pcm_runtime. Currently, CODEC to CODEC
links don't set this, which causes a NULL pointer dereference:

[<4069de54>] (soc_dai_hw_params) from
[<40694b68>] (snd_soc_dai_link_event+0x1a0/0x380)

Since the ASoC core in general assumes that the substream
private_data will be set to a pointer to the snd_soc_pcm_runtime,
update the CODEC to CODEC links to respect this.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: Skylake: Acquire irq after RIRB allocation
Yong Zhi [Mon, 13 Aug 2018 23:15:14 +0000 (18:15 -0500)]
ASoC: Intel: Skylake: Acquire irq after RIRB allocation

Cold reboot stress test found that the hda irq could access rirb ring
buffer before its memory gets allocated which resulting in null
pointer dereference inside snd_hdac_bus_update_rirb().

Fix it by moving the skl_acquire_irq after ring buffer allocation.
While here, also change err return from -EBUSY to actual error code.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors
Dmitry V. Levin [Mon, 13 Aug 2018 15:50:02 +0000 (18:50 +0300)]
ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors

Include <linux/types.h> and consistently use types it provides
to fix the following sound/skl-tplg-interface.h userspace compilation errors:

/usr/include/sound/skl-tplg-interface.h:146:2: error: unknown type name 'u32'
  u32 set_params:2;
/usr/include/sound/skl-tplg-interface.h:147:2: error: unknown type name 'u32'
  u32 rsvd:30;
/usr/include/sound/skl-tplg-interface.h:148:2: error: unknown type name 'u32'
  u32 param_id;
/usr/include/sound/skl-tplg-interface.h:149:2: error: unknown type name 'u32'
  u32 max;
/usr/include/sound/skl-tplg-interface.h:166:2: error: unknown type name 'u16'
  u16 module_id;
/usr/include/sound/skl-tplg-interface.h:167:2: error: unknown type name 'u16'
  u16 instance_id;
/usr/include/sound/skl-tplg-interface.h:171:2: error: unknown type name 'u32'
  u32 channels;
/usr/include/sound/skl-tplg-interface.h:172:2: error: unknown type name 'u32'
  u32 freq;
/usr/include/sound/skl-tplg-interface.h:173:2: error: unknown type name 'u32'
  u32 bit_depth;
/usr/include/sound/skl-tplg-interface.h:174:2: error: unknown type name 'u32'
  u32 valid_bit_depth;
/usr/include/sound/skl-tplg-interface.h:175:2: error: unknown type name 'u32'
  u32 ch_cfg;
/usr/include/sound/skl-tplg-interface.h:176:2: error: unknown type name 'u32'
  u32 interleaving_style;
/usr/include/sound/skl-tplg-interface.h:177:2: error: unknown type name 'u32'
  u32 sample_type;
/usr/include/sound/skl-tplg-interface.h:178:2: error: unknown type name 'u32'
  u32 ch_map;
/usr/include/sound/skl-tplg-interface.h:182:2: error: unknown type name 'u32'
  u32 set_params:2;
/usr/include/sound/skl-tplg-interface.h:183:2: error: unknown type name 'u32'
  u32 rsvd:30;
/usr/include/sound/skl-tplg-interface.h:184:2: error: unknown type name 'u32'
  u32 param_id;
/usr/include/sound/skl-tplg-interface.h:185:2: error: unknown type name 'u32'
  u32 caps_size;
/usr/include/sound/skl-tplg-interface.h:186:2: error: unknown type name 'u32'
  u32 caps[HDA_SST_CFG_MAX];
/usr/include/sound/skl-tplg-interface.h:190:2: error: unknown type name 'u8'
  u8 pipe_id;
/usr/include/sound/skl-tplg-interface.h:191:2: error: unknown type name 'u8'
  u8 pipe_priority;
/usr/include/sound/skl-tplg-interface.h:192:2: error: unknown type name 'u16'
  u16 conn_type:4;
/usr/include/sound/skl-tplg-interface.h:193:2: error: unknown type name 'u16'
  u16 rsvd:4;
/usr/include/sound/skl-tplg-interface.h:194:2: error: unknown type name 'u16'
  u16 memory_pages:8;
/usr/include/sound/skl-tplg-interface.h:200:2: error: unknown type name 'u16'
  u16 module_id;
/usr/include/sound/skl-tplg-interface.h:201:2: error: unknown type name 'u16'
  u16 instance_id;
/usr/include/sound/skl-tplg-interface.h:202:2: error: unknown type name 'u32'
  u32 max_mcps;
/usr/include/sound/skl-tplg-interface.h:203:2: error: unknown type name 'u32'
  u32 mem_pages;
/usr/include/sound/skl-tplg-interface.h:204:2: error: unknown type name 'u32'
  u32 obs;
/usr/include/sound/skl-tplg-interface.h:205:2: error: unknown type name 'u32'
  u32 ibs;
/usr/include/sound/skl-tplg-interface.h:206:2: error: unknown type name 'u32'
  u32 vbus_id;
/usr/include/sound/skl-tplg-interface.h:208:2: error: unknown type name 'u32'
  u32 max_in_queue:8;
/usr/include/sound/skl-tplg-interface.h:209:2: error: unknown type name 'u32'
  u32 max_out_queue:8;
/usr/include/sound/skl-tplg-interface.h:210:2: error: unknown type name 'u32'
  u32 time_slot:8;
/usr/include/sound/skl-tplg-interface.h:211:2: error: unknown type name 'u32'
  u32 core_id:4;
/usr/include/sound/skl-tplg-interface.h:212:2: error: unknown type name 'u32'
  u32 rsvd1:4;
/usr/include/sound/skl-tplg-interface.h:214:2: error: unknown type name 'u32'
  u32 module_type:8;
/usr/include/sound/skl-tplg-interface.h:215:2: error: unknown type name 'u32'
  u32 conn_type:4;
/usr/include/sound/skl-tplg-interface.h:216:2: error: unknown type name 'u32'
  u32 dev_type:4;
/usr/include/sound/skl-tplg-interface.h:217:2: error: unknown type name 'u32'
  u32 hw_conn_type:4;
/usr/include/sound/skl-tplg-interface.h:218:2: error: unknown type name 'u32'
  u32 rsvd2:12;
/usr/include/sound/skl-tplg-interface.h:220:2: error: unknown type name 'u32'
  u32 params_fixup:8;
/usr/include/sound/skl-tplg-interface.h:221:2: error: unknown type name 'u32'
  u32 converter:8;
/usr/include/sound/skl-tplg-interface.h:222:2: error: unknown type name 'u32'
  u32 input_pin_type:1;
/usr/include/sound/skl-tplg-interface.h:223:2: error: unknown type name 'u32'
  u32 output_pin_type:1;
/usr/include/sound/skl-tplg-interface.h:224:2: error: unknown type name 'u32'
  u32 is_dynamic_in_pin:1;
/usr/include/sound/skl-tplg-interface.h:225:2: error: unknown type name 'u32'
  u32 is_dynamic_out_pin:1;
/usr/include/sound/skl-tplg-interface.h:226:2: error: unknown type name 'u32'
  u32 is_loadable:1;
/usr/include/sound/skl-tplg-interface.h:227:2: error: unknown type name 'u32'
  u32 rsvd3:11;

Fixes: 0c24fdc00244 ("ASoC: topology: Move skl-tplg-interface.h to uapi")
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: <stable@vger.kernel.org> # v4.18
6 years agoASoC: wm9712: fix replace codec to component
Marcel Ziswiler [Mon, 13 Aug 2018 22:35:56 +0000 (00:35 +0200)]
ASoC: wm9712: fix replace codec to component

Since commit 143b44845d87 ("ASoC: wm9712: replace codec to component")
"wm9712-codec" got renamed to "wm9712-component", however, this change
never got propagated down to the actual board/platform drivers. E.g. on
Colibri T20 this lead to the following spew upon boot with sound/touch
being broken:

[    2.214121] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
[    2.222137] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
...
[    2.344384] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
[    2.351885] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
...
[    2.668339] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
[    2.675811] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
...
[    3.208408] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
[    3.216312] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
...
[    3.235397] tegra-snd-wm9712 sound: ASoC: CODEC DAI wm9712-hifi not registered
[    3.248938] tegra-snd-wm9712 sound: snd_soc_register_card failed (-517)
...
[   14.970443] ALSA device list:
[   14.996628]   No soundcards found.

This commit finally fixes this again.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
6 years agoASoC: Intel: bytcr_rt5640: Add quirks for 2 more devices
Hans de Goede [Sun, 12 Aug 2018 11:42:06 +0000 (13:42 +0200)]
ASoC: Intel: bytcr_rt5640: Add quirks for 2 more devices

Add quirks to select the right input-map, jack-detect pin, etc. for:

Linx Linx7 tablet
Onda V975w tablet

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: adav80x: mark expected switch fall-through
Gustavo A. R. Silva [Wed, 8 Aug 2018 19:19:33 +0000 (14:19 -0500)]
ASoC: adav80x: mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1056531 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: da7219: Add delays to capture path to remove DC offset noise
Adam Thomson [Thu, 9 Aug 2018 09:48:50 +0000 (10:48 +0100)]
ASoC: da7219: Add delays to capture path to remove DC offset noise

On some platforms it has been noted that a pop noise can be
witnessed when capturing audio, mainly for first time after a
headset jack has been inserted. This is due to a DC offset in the
Mic PGA and so to avoid this delays are required when powering
up the capture path.

This commit rectifies the problem by adding delays post Mic PGA and
post Mixin PGA. The post Mic PGA delay is determined based on
Mic Bias voltage, and is only applied the first time after a
headset jack is inserted.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm_adsp: Make DSP name configurable by codec driver
Richard Fitzgerald [Wed, 8 Aug 2018 16:13:39 +0000 (17:13 +0100)]
ASoC: wm_adsp: Make DSP name configurable by codec driver

Instead of harcoding that a core must always be called "DSPn"
add a name member to struct wm_adsp so that the owning codec
driver can provide a custom name. This allows for re-use of
the wm_adsp driver with parts where the processing cores are
named differently.

If no name is provided the default DSPn name is used.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge branch 'asoc-4.18' into asoc-4.19 wmadsp dep
Mark Brown [Wed, 8 Aug 2018 16:32:10 +0000 (17:32 +0100)]
Merge branch 'asoc-4.18' into asoc-4.19 wmadsp dep

6 years agoASoC: wm_adsp: Declare firmware controls from codec driver
Richard Fitzgerald [Wed, 8 Aug 2018 16:13:38 +0000 (17:13 +0100)]
ASoC: wm_adsp: Declare firmware controls from codec driver

To allow for more flexibility in naming of DSP-type cores
move the creation of the firmware controls to the codec
drivers instead of having a hardcoded list in wm_adsp.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: max98373: Added software reset register to readable registers
Ryan Lee [Wed, 8 Aug 2018 03:06:38 +0000 (20:06 -0700)]
ASoC: max98373: Added software reset register to readable registers

Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm_adsp: Correct DSP pointer for preloader control
Ajit Pandey [Tue, 7 Aug 2018 17:30:42 +0000 (18:30 +0100)]
ASoC: wm_adsp: Correct DSP pointer for preloader control

The offset of the DSP core needs to be taken into account for the DSP
preloader control get and put. Currently the dsp->preloaded variable
will only ever be read/updated on the first DSP, whilst this doesn't
affect the operation of the control the readback will be incorrect.

Signed-off-by: Ajit Pandey <ajit.pandey@cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
6 years agoASoC: rt5677: Fix initialization of rt5677_of_match.data
Matthias Kaehlcke [Tue, 7 Aug 2018 17:19:40 +0000 (10:19 -0700)]
ASoC: rt5677: Fix initialization of rt5677_of_match.data

The driver expects to find the device id in rt5677_of_match.data, however
it is currently assigned to rt5677_of_match.type. Fix this.

The problem was found with the help of clang:
  sound/soc/codecs/rt5677.c:5010:36: warning: expression which evaluates to
  zero treated as a null pointer constant of type 'const void *'
  [-Wnon-literal-null-conversion]
    { .compatible = "realtek,rt5677", RT5677 },
                                      ^~~~~~

Fixes: ddc9e69b9dc2 ("ASoC: rt5677: Hide platform data in the module sources")
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: compress: make BE and FE order inline with dpcm
Srinivas Kandagatla [Fri, 3 Aug 2018 12:30:03 +0000 (13:30 +0100)]
ASoC: compress: make BE and FE order inline with dpcm

For some reason order of startup/hw_params/prepare are reversed
in dynamic compress usecase when compared to dpcm usecase. This is
a issue with platforms like QCOM where it expects the BE to be
initialized before FE.

Interestingly the compress trigger callback order is inline with dpcm.

Am not 100% sure why the compress audio case has been reversed.
This patch is making the order inline with dpcm.

If the reverse ordering is just co-incendental then this change
makes sense and will avoid inventing some new mechanism to cope
with ordering.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: AMD: Set delay value for the capture case
Akshu Agrawal [Mon, 6 Aug 2018 07:27:16 +0000 (12:57 +0530)]
ASoC: AMD: Set delay value for the capture case

ACP->SYSMEM DMA happens at every I2S->SYSMEM period
completion. Thus, there is delay of x frames till
I2S->SYSMEM reaches a period length. This delay is
communicated to user space.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: AMD: Modified DMA pointer for capture
Mukunda, Vijendar [Mon, 6 Aug 2018 07:27:15 +0000 (12:57 +0530)]
ASoC: AMD: Modified DMA pointer for capture

Give position on ACP->SYSMEM DMA channel for
the number of bytes that have been transferred on
the basis of current descriptor under service.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: AMD: Make ACP->SYSMEM DMA non circular
Akshu Agrawal [Mon, 6 Aug 2018 07:27:14 +0000 (12:57 +0530)]
ASoC: AMD: Make ACP->SYSMEM DMA non circular

In capture case we don't want ACP to SYSMEM dma
to be circular. This is because if an in place DSP
filter is applied to captured output then circular DMA
can overwrite the filter value with stale data.

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8994: Fix missing break in switch
Gustavo A. R. Silva [Mon, 6 Aug 2018 12:14:51 +0000 (07:14 -0500)]
ASoC: wm8994: Fix missing break in switch

Add missing break statement in order to prevent the code from falling
through to the default case.

Addresses-Coverity-ID: 115050 ("Missing break in switch")
Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
6 years agoASoC: qdsp6: q6afe-dai: add SLIM tx AIF_IN dapm
Srinivas Kandagatla [Mon, 6 Aug 2018 10:12:09 +0000 (11:12 +0100)]
ASoC: qdsp6: q6afe-dai: add SLIM tx AIF_IN dapm

Add missing AIF_IN dapm for slim tx ports.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: remove unused header files from common.h
Srinivas Kandagatla [Mon, 6 Aug 2018 10:12:08 +0000 (11:12 +0100)]
ASoC: qcom: remove unused header files from common.h

This patch removes unused header files from common.h.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sdm845: remove unused header files
Srinivas Kandagatla [Mon, 6 Aug 2018 10:12:07 +0000 (11:12 +0100)]
ASoC: sdm845: remove unused header files

This patch removes unused header files from the driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: apq8096: remove unused header files
Srinivas Kandagatla [Mon, 6 Aug 2018 10:12:06 +0000 (11:12 +0100)]
ASoC: apq8096: remove unused header files

This patch removes unused header files from the driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: make common.c as proper module
Srinivas Kandagatla [Mon, 6 Aug 2018 10:12:05 +0000 (11:12 +0100)]
ASoC: qcom: make common.c as proper module

This patch converts common helper functions in to proper module
and also fixes below warning.

WARNING: sound/soc/qcom/snd-soc-sdm845: 'qcom_snd_parse_of' exported twice.
Previous export was in sound/soc/qcom/snd-soc-apq8096.ko

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8903: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:56:02 +0000 (16:56 -0500)]
ASoC: wm8903: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: da9055: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:55:28 +0000 (16:55 -0500)]
ASoC: da9055: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm5100-tables: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:54:54 +0000 (16:54 -0500)]
ASoC: wm5100-tables: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: da7213: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:54:10 +0000 (16:54 -0500)]
ASoC: da7213: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: twl6040: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:53:38 +0000 (16:53 -0500)]
ASoC: twl6040: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: da7219: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:53:10 +0000 (16:53 -0500)]
ASoC: da7219: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8996: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:52:35 +0000 (16:52 -0500)]
ASoC: wm8996: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: cs4270: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:52:01 +0000 (16:52 -0500)]
ASoC: cs4270: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8990: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:51:01 +0000 (16:51 -0500)]
ASoC: wm8990: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tda7419: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:50:27 +0000 (16:50 -0500)]
ASoC: tda7419: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5631: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:49:55 +0000 (16:49 -0500)]
ASoC: rt5631: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: max9850: use true and false for boolean values
Gustavo A. R. Silva [Sat, 4 Aug 2018 21:49:02 +0000 (16:49 -0500)]
ASoC: max9850: use true and false for boolean values

Return statements in functions returning bool should use true or false
instead of an integer value.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: samsung: i2s: Mark expected switch fall-through
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:33:57 +0000 (11:33 -0500)]
ASoC: samsung: i2s: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1381093 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: omap-dmic: Mark expected switch fall-throughs
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:31:48 +0000 (11:31 -0500)]
ASoC: omap-dmic: Mark expected switch fall-throughs

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1468847 ("Missing break in switch")
Addresses-Coverity-ID: 1468849 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl_esai: Mark expected switch fall-through
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:29:53 +0000 (11:29 -0500)]
ASoC: fsl_esai: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1222121 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: core: mark expected switch fall-through
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:34:30 +0000 (11:34 -0500)]
ASoC: core: mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 146568 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: omap-mcpdm: Mark expected switch fall-throughs
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:32:52 +0000 (11:32 -0500)]
ASoC: omap-mcpdm: Mark expected switch fall-throughs

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1369526 ("Missing break in switch")
Addresses-Coverity-ID: 1369529 ("Missing break in switch")
Addresses-Coverity-ID: 1451415 ("Missing break in switch")
Addresses-Coverity-ID: 115103 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: davinci-i2s: mark expected switch fall-through
Gustavo A. R. Silva [Fri, 3 Aug 2018 16:28:24 +0000 (11:28 -0500)]
ASoC: davinci-i2s: mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1364478 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: smd845: fix memory leak
Gustavo A. R. Silva [Fri, 3 Aug 2018 13:42:11 +0000 (08:42 -0500)]
ASoC: smd845: fix memory leak

In case memory resources for *card* were allocated, release them before
return.

Addresses-Coverity-ID: 1472244 ("Resource leak")
Fixes: 6b1687bf76ef ("ASoC: qcom: add sdm845 sound card support")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: Intel: bxt: Use refcap device for mono recording
Yong Zhi [Thu, 2 Aug 2018 23:21:31 +0000 (18:21 -0500)]
ASoC: Intel: bxt: Use refcap device for mono recording

The refcap capture device supports mono recording only, this patch
adds the channel constraints.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: core: remove support for card rebind using component framework
Srinivas Kandagatla [Thu, 2 Aug 2018 15:03:38 +0000 (16:03 +0100)]
ASoC: core: remove support for card rebind using component framework

DRM based audio components get registered inside the component framework
bind callback. However component framework has a big mutex lock taken for
every call to component_add, component_del and bind, unbind callbacks.

This can lead to deadlock situation if we are trying to add new/remove
component within a bind/unbind callbacks. Which is what was happening
with bcm2837 rpi 3.

Revert this change till we sort out the mutex issue.

Reported-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Reported-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: smd845: remove auto rebinding
Srinivas Kandagatla [Thu, 2 Aug 2018 15:03:37 +0000 (16:03 +0100)]
ASoC: smd845: remove auto rebinding

Remove auto rebinding support, as component framework can deadlock
in few usecases if we are trying to add new/remove component within
a bind/unbind callbacks.

Card rebinding is ASoC core feature so all the previous component
framework stuff in q6dsp remains removed.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: apq8096: remove auto rebinding
Srinivas Kandagatla [Thu, 2 Aug 2018 15:03:36 +0000 (16:03 +0100)]
ASoC: apq8096: remove auto rebinding

Remove auto rebinding support, as component framework can deadlock
in few usecases if we are trying to add new/remove component within
a bind/unbind callbacks.

Card rebinding is ASoC core feature so all the previous component
framework stuff in q6dsp remains removed.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsi: convert to SPDX identifiers
Kuninori Morimoto [Thu, 2 Aug 2018 01:47:30 +0000 (01:47 +0000)]
ASoC: fsi: 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: qcom: Fix unmet dependency warning for SND_SOC_SDM845
Rohit kumar [Thu, 2 Aug 2018 07:02:59 +0000 (12:32 +0530)]
ASoC: qcom: Fix unmet dependency warning for SND_SOC_SDM845

Add DEPENDS_ON QCOM_APR for SND_SOC_SDM845 to fix the
warning: unmet direct dependencies detected for
SND_SOC_QDSP6.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8994: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:56:16 +0000 (14:56 -0500)]
ASoC: wm8994: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115050 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm9081: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:55:26 +0000 (14:55 -0500)]
ASoC: wm9081: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1357430 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8995: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:54:45 +0000 (14:54 -0500)]
ASoC: wm8995: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115045 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8962: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:54:03 +0000 (14:54 -0500)]
ASoC: wm8962: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115043 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8996: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:53:19 +0000 (14:53 -0500)]
ASoC: wm8996: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 146354 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8904: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:52:41 +0000 (14:52 -0500)]
ASoC: wm8904: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115042 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8960: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:51:59 +0000 (14:51 -0500)]
ASoC: wm8960: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115041 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8955: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:51:18 +0000 (14:51 -0500)]
ASoC: wm8955: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 115047 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5677: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:50:20 +0000 (14:50 -0500)]
ASoC: rt5677: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1271174 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rt5640: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:49:13 +0000 (14:49 -0500)]
ASoC: rt5640: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1056547 ("Missing break in switch")
Addresses-Coverity-ID: 1056548 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8961: Mark expected switch fall-through
Gustavo A. R. Silva [Wed, 1 Aug 2018 19:47:09 +0000 (14:47 -0500)]
ASoC: wm8961: Mark expected switch fall-through

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1271173 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: soc-pcm: Use delay set in component pointer function
Akshu Agrawal [Wed, 1 Aug 2018 10:07:33 +0000 (15:37 +0530)]
ASoC: soc-pcm: Use delay set in component pointer function

Take into account the base delay set in pointer callback.

There are cases where a pointer function populates
runtime->delay, such as:
./sound/pci/hda/hda_controller.c
./sound/soc/intel/atom/sst-mfld-platform-pcm.c

This delay was getting lost and was overwritten by delays
from codec or cpu dai delay function if exposed.

Now,
Total delay = base delay + cpu_dai delay + codec_dai delay

Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wcd9335: Fix build
Mark Brown [Wed, 1 Aug 2018 13:22:56 +0000 (14:22 +0100)]
ASoC: wcd9335: Fix build

This reverts commit e57d4ca882e28 (ASoC: wcd9335: add support to wcd9335
codec) due to build failures caused by missing dependencies.

Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wcd9335: Fix build due to CLASS-H Controller support
Mark Brown [Wed, 1 Aug 2018 13:18:50 +0000 (14:18 +0100)]
ASoC: wcd9335: Fix build due to CLASS-H Controller support

This reverts commit c8cb5f775c8dac (ASoC: vert "ASoC: wcd9335: add
CLASS-H Controller support) due to missing dependencies.

Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: stm32: remove redundant pointers 'priv' and 'rtd'
Colin Ian King [Wed, 1 Aug 2018 10:47:40 +0000 (11:47 +0100)]
ASoC: stm32: remove redundant pointers 'priv' and 'rtd'

Pointer 'priv' is assigned and not used, removing this allows
the removal of pointer 'rtd'.

Cleans up clang warning:
warning: variable 'priv' set but not used [-Wunused-but-set-variable]

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: nau8540: remove redundant variable osrate
Colin Ian King [Wed, 1 Aug 2018 10:47:39 +0000 (11:47 +0100)]
ASoC: nau8540: remove redundant variable osrate

Variable osrate is being assigned but is never used hence it is
redundant and can be removed.

Cleans up clang warning:
warning: variable 'osrate' set but not used [-Wunused-but-set-variable]

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: add sdm845 sound card support
Rohit kumar [Wed, 1 Aug 2018 09:01:09 +0000 (14:31 +0530)]
ASoC: qcom: add sdm845 sound card support

This patch adds sdm845 audio machine driver support.

Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: Add support to parse common audio device nodes
Rohit kumar [Wed, 1 Aug 2018 09:01:08 +0000 (14:31 +0530)]
ASoC: qcom: Add support to parse common audio device nodes

This adds support to parse cpu, platform and codec
device nodes and add them in dai-links. Also, update
apq8096 machine driver to use the common API.

Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dt-bindings: Update dt binding name for apq8096
Rohit kumar [Wed, 1 Aug 2018 09:01:07 +0000 (14:31 +0530)]
ASoC: dt-bindings: Update dt binding name for apq8096

Remove qcom prefix from machine driver dt bindings of
apq8096 SoC.

Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: qcom: dt-bindings: Add sdm845 machine bindings
Rohit kumar [Wed, 1 Aug 2018 09:01:06 +0000 (14:31 +0530)]
ASoC: qcom: dt-bindings: Add sdm845 machine bindings

Add devicetree bindings documentation file for SDM845 sound card.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge tag 'clk-core-duty-cycle-for-mark' of git://git.kernel.org/pub/scm/linux/kernel...
Mark Brown [Wed, 1 Aug 2018 10:43:52 +0000 (11:43 +0100)]
Merge tag 'clk-core-duty-cycle-for-mark' of git://git./linux/kernel/git/clk/linux into asoc-4.19

Duty cycle support for the clk api and drivers.

6 years agoMerge branch 'topic/drm_audio_component' of https://git.kernel.org/pub/scm/linux...
Mark Brown [Wed, 1 Aug 2018 09:32:05 +0000 (10:32 +0100)]
Merge branch 'topic/drm_audio_component' of https://git./linux/kernel/git/tiwai/sound into asoc-4.19

6 years agoASoC: wcd9335: add CLASS-H Controller support
Srinivas Kandagatla [Fri, 27 Jul 2018 12:18:01 +0000 (13:18 +0100)]
ASoC: wcd9335: add CLASS-H Controller support

CLASS-H controller/Amplifier is common accorss Qualcomm WCD codec series.
This patchset adds basic CLASS-H controller apis for WCD codecs after
wcd9335 to use.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wcd9335: add support to wcd9335 codec
Srinivas Kandagatla [Fri, 27 Jul 2018 12:18:00 +0000 (13:18 +0100)]
ASoC: wcd9335: add support to wcd9335 codec

Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC,
It supports both I2S/I2C and SLIMbus audio interfaces.
On slimbus interface it supports two data lanes; 16 Tx ports
and 8 Rx ports. It has Seven DACs and nine dedicated interpolators,
Seven (six audio ADCs, and one VBAT ADC), Multibutton headset
control (MBHC), Active noise cancellation and Sidetone paths
and processing.

This patchset adds very basic support for playback and capture
via the 9 interpolators and ADC respectively.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dt-bindings: add dt bindings for wcd9335 audio codec
Srinivas Kandagatla [Fri, 27 Jul 2018 12:17:57 +0000 (13:17 +0100)]
ASoC: dt-bindings: add dt bindings for wcd9335 audio codec

This patch adds bindings for wcd9335 audio codec which can support both SLIMbus
and I2S/I2C interface.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: uniphier: change functions to static
Katsuhiro Suzuki [Fri, 27 Jul 2018 02:37:44 +0000 (11:37 +0900)]
ASoC: uniphier: change functions to static

This patch changes some functions that are not used by other objects
to static.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: uniphier: add support for multichannel output
Katsuhiro Suzuki [Fri, 27 Jul 2018 02:37:28 +0000 (11:37 +0900)]
ASoC: uniphier: add support for multichannel output

This patch adds multichannel PCM output support for LD11/LD20.
Currently driver tested and supported only 2ch, 6ch, and 8ch.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sirf: Fix potential NULL pointer dereference
Gustavo A. R. Silva [Thu, 26 Jul 2018 20:49:10 +0000 (15:49 -0500)]
ASoC: sirf: Fix potential NULL pointer dereference

There is a potential execution path in which function
platform_get_resource() returns NULL. If this happens,
we will end up having a NULL pointer dereference.

Fix this by replacing devm_ioremap with devm_ioremap_resource,
which has the NULL check and the memory region request.

This code was detected with the help of Coccinelle.

Cc: stable@vger.kernel.org
Fixes: 2bd8d1d5cf89 ("ASoC: sirf: Add audio usp interface driver")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tegra_alc5632: fix device_node refcounting
Alexey Khoroshilov [Fri, 27 Jul 2018 21:06:59 +0000 (00:06 +0300)]
ASoC: tegra_alc5632: fix device_node refcounting

tegra_alc5632_probe() increments reference count of device nodes
with of_parse_phandle(), but there is no code decrementing them
in the driver.

The patch adds of_node_put() to tegra_alc5632_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>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: sh: Kconfig: convert to SPDX identifiers
Kuninori Morimoto [Mon, 30 Jul 2018 08:00:22 +0000 (08:00 +0000)]
ASoC: sh: Kconfig: convert to SPDX identifiers

By default all files without license information are under the default
license of the kernel, which is GPL version 2.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: ak4613: convert to SPDX identifiers
Kuninori Morimoto [Mon, 30 Jul 2018 07:53:08 +0000 (07:53 +0000)]
ASoC: ak4613: 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: da7210: convert to SPDX identifiers
Kuninori Morimoto [Mon, 30 Jul 2018 07:52:46 +0000 (07:52 +0000)]
ASoC: da7210: 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: ak4554: convert to SPDX identifiers
Kuninori Morimoto [Mon, 30 Jul 2018 07:52:15 +0000 (07:52 +0000)]
ASoC: ak4554: convert to SPDX identifiers

As original license mentioned, it is GPL-2.0 in SPDX.
Then, MODULE_LICENSE() should be "GPL v2" instead of "GPL".
See ${LINUX}/include/linux/module.h

"GPL"           [GNU Public License v2 or later]
"GPL v2"        [GNU Public License v2]

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

As original license mentioned, it is GPL-2.0 in SPDX.
Then, MODULE_LICENSE() should be "GPL v2" instead of "GPL".
See ${LINUX}/include/linux/module.h

"GPL"           [GNU Public License v2 or later]
"GPL v2"        [GNU Public License v2]

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoALSA: memalloc: Fix missing PAGE_SIZE definition
Takashi Iwai [Mon, 30 Jul 2018 06:46:40 +0000 (08:46 +0200)]
ALSA: memalloc: Fix missing PAGE_SIZE definition

The recent fix moved the inline snd_sgbuf_aligned_pages() outside the
ifdef, and this triggered a build error on some architectures due to
the undefined PAGE_SIZE, as spotted by 0day bot.
Fix it by adding the missing header inclusion.

Fixes: 4cae99d9b530 ("ALSA: memalloc: declare snd_sgbuf_aligned_pages() unconditionally")
Reported-by: kbuild test robot <lkp@intel.com>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: wm8988: fix typo in rate constraints
Ladislav Michl [Sat, 28 Jul 2018 12:30:17 +0000 (14:30 +0200)]
ASoC: wm8988: fix typo in rate constraints

Remove duplicated entry and add missing zero in rate constraints.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: tegra: i2s: Fix typo/broken macro
Edward Cragg [Fri, 27 Jul 2018 12:59:28 +0000 (13:59 +0100)]
ASoC: tegra: i2s: Fix typo/broken macro

Fix typo in macro TEGRA30_I2S_SLOT_CTRL_TOTAL_SLOTS_MASK.

Signed-off-by: Edward Cragg <edward.cragg@codethink.co.uk>
Signed-off-by: Jorge Sanjuan <jorge.sanjuan@codethink.co.uk>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dmaengine: Use standard pcm_format_to_bits() macro
Takashi Iwai [Wed, 25 Jul 2018 21:17:22 +0000 (23:17 +0200)]
ASoC: dmaengine: Use standard pcm_format_to_bits() macro

The conversion from PCM format type to bits needs an explicit cast,
and it'll be uglier.  Since we have a standard macro for that, let's
use it instead.

This patch fixes the sparse warning:
  sound/soc/soc-generic-dmaengine-pcm.c:200:63: warning: restricted snd_pcm_format_t degrades to integer

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: pcm186x: Declare PCM format with snd_pcm_format_t
Takashi Iwai [Wed, 25 Jul 2018 21:17:21 +0000 (23:17 +0200)]
ASoC: pcm186x: Declare PCM format with snd_pcm_format_t

The PCM format type is with __bitwise, so we should use the dedicated
snd_pcm_format_t instead of int.

This fixes the sparse warning like:
  sound/soc/codecs/pcm186x.c:268:44: warning: incorrect type in initializer (different base types)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: fsl: Use snd_mask_set_format()
Takashi Iwai [Wed, 25 Jul 2018 21:17:20 +0000 (23:17 +0200)]
ASoC: fsl: Use snd_mask_set_format()

Use the new helper function snd_mask_set_format() for avoiding the
ugly cast with __force prefix.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: intel: Fix snd_pcm_format_t handling
Takashi Iwai [Wed, 25 Jul 2018 21:17:19 +0000 (23:17 +0200)]
ASoC: intel: Fix snd_pcm_format_t handling

As sparse warns, the PCM format type can't be dealt as integer as
found in Intel SST driver codes.

Fix them in the following two ways:

- The open code with snd_mask_set() and params->masks reference is
  replaced with params_set_format()

- The rest codes with snd_mask_set(fmt, SNDRV_PCM_FORMAT_XXX) are
  replaced with the new helper, snd_mask_set_format().

Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: doc: Replace open code with params_set_format()
Takashi Iwai [Wed, 25 Jul 2018 21:17:18 +0000 (23:17 +0200)]
ASoC: doc: Replace open code with params_set_format()

The example code in dpcm.rst contains an open code calling
snd_mask_set(), and this can be better represented with
params_set_format() instead.  This automatically fixes the sparse
warning about snd_pcm_format_t handling, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoALSA: pcm: Add snd_mask_set_format() helper for standard usages
Takashi Iwai [Wed, 25 Jul 2018 21:17:17 +0000 (23:17 +0200)]
ALSA: pcm: Add snd_mask_set_format() helper for standard usages

Many drivers calling snd_mask_set() need to do ugly cast with __force
for shutting up the sparse warnings.  Actually almost all of them are
about setting the format, so it's far better to provide a common
helper snd_mask_set_format() to pass SNDRV_PCM_FORMAT_* directly
without the cast.

There are a few other calls of snd_mask_set(), but they are in the PCM
core code, so we leave them for now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoMerge tag 'alsa-add-snd-sgbuf-aligned-pages' of https://git.kernel.org/pub/scm/linux...
Mark Brown [Thu, 26 Jul 2018 16:08:39 +0000 (17:08 +0100)]
Merge tag 'alsa-add-snd-sgbuf-aligned-pages' of https://git./linux/kernel/git/broonie/sound into asoc-4.19

ALSA: memalloc: declare snd_sgbuf_aligned_pages() unconditionally

Make this helper inline function available for all platforms. This
helps solve 0-day compilation issues when CONFIG_SND_DMA_SGBUF is not
defined.

6 years agoALSA: memalloc: declare snd_sgbuf_aligned_pages() unconditionally
Pierre-Louis Bossart [Wed, 25 Jul 2018 20:15:56 +0000 (15:15 -0500)]
ALSA: memalloc: declare snd_sgbuf_aligned_pages() unconditionally

Make this helper inline function available for all platforms. This
helps solve 0-day compilation issues when CONFIG_SND_DMA_SGBUF is not
defined.

Reported-by: kbuild test robot <lkp@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>
6 years agoASoC: dapm: Use int for format bit position
Takashi Iwai [Wed, 25 Jul 2018 20:43:26 +0000 (22:43 +0200)]
ASoC: dapm: Use int for format bit position

fmt in snd_soc_dai_link_event() contains the format bit position, not
the format bit itself.  Hence it can be a simple integer instead of
the explicit u64.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: dmaengine: Fix missing __user prefix in copy_user callback
Takashi Iwai [Wed, 25 Jul 2018 20:42:08 +0000 (22:42 +0200)]
ASoC: dmaengine: Fix missing __user prefix in copy_user callback

It seems that __user prefix was forgotten to be added to
dmaengine_copy_user callback while we refactored the user-copy PCM
core.

This patch adds the missing prefix, remove the superfluous cast, and
add the needed cast (__force is needed for downgrading from user
pointer to kernel pointer), too.

Spotted by a sparse warning like:
  sound/soc/soc-generic-dmaengine-pcm.c:397:27: warning: incorrect type in initializer (incompatible argument 4 (different address spaces))

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: zte: Fix incorrect PCM format bit usages
Takashi Iwai [Wed, 25 Jul 2018 20:40:49 +0000 (22:40 +0200)]
ASoC: zte: Fix incorrect PCM format bit usages

zx-tdm driver sets the DAI driver definitions with the format bits
wrongly set with SNDRV_PCM_FORMAT_*, instead of SNDRV_PCM_FMTBIT_*.

This patch corrects the definitions.

Spotted by a sparse warning:
  sound/soc/zte/zx-tdm.c:363:35: warning: restricted snd_pcm_format_t degrades to integer

Fixes: 870e0ddc4345 ("ASoC: zx-tdm: add zte's tdm controller driver")
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
6 years agoASoC: rsnd: Document R-Car M3-N support
Hiroyuki Yokoyama [Wed, 25 Jul 2018 20:40:15 +0000 (05:40 +0900)]
ASoC: rsnd: Document R-Car M3-N support

Document support for the sound modules in the Renesas M3-N (r8a77965)
SoC.

No driver update is needed.

Signed-off-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Mark Brown <broonie@kernel.org>