Commit graph

24436 commits

Author SHA1 Message Date
Bhalchandra Gajare
0aab42e7e8 ASoC: wcd-spi: fix the maximum transfer unit setting
Current maximum transfer unit in the driver is set to 16K bytes,
whereas the maximum possible is upto 64K bytes. Update the driver
to use the maximum possible transfer unit and split the read and
write requests into chunks of this maximum possible transfer length.

CRs-Fixed: 1070087
Change-Id: I271cf0ad12652421ab3ae8770714ccb78c043efa
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-18 14:49:07 -07:00
Linux Build Service Account
3993230d5c Merge "ASoC: msmcobalt: Check for number of aux codecs" 2016-10-17 13:33:58 -07:00
Linux Build Service Account
cd6936ba6a Merge "ASoC: wcd934x: Create mixer control to select asrc output mode" 2016-10-17 06:08:06 -07:00
Linux Build Service Account
5c4abbb23a Merge "ASoC: tavil: fix kctl_put and get function for SLIM RXX MUX" 2016-10-17 06:08:04 -07:00
Linux Build Service Account
0a97d6bb23 Merge "ASoc: wcd9335: Ignore mbhc get impedance error" 2016-10-14 17:58:29 -07:00
Linux Build Service Account
78cd56d395 Merge "ASoC: wcd934x: Update DSD register sequence for v1.1" 2016-10-14 17:58:24 -07:00
Linux Build Service Account
d887e436d2 Merge "ASoC: wcd934x: update keeper enable for soundwire functionality" 2016-10-14 17:58:24 -07:00
Phani Kumar Uppalapati
607f17ae85 ASoc: wcd9335: Ignore mbhc get impedance error
Avoid DAPM failure by ignoring the mbhc get impedance
errors as this is not a fatal and audio can still work
even if the class-H settings are not updated based on
impedance values.

Change-Id: Icd6846d157af5a96d5ae49261e109cbd5ab8c266
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-10-14 16:35:09 -07:00
Phani Kumar Uppalapati
97ddf9fd0c ASoC: wcd934x: Create mixer control to select asrc output mode
Create mixer control to select asrc (asynchronous sample rate
converter) output mode to integer or fractional rate based on
the playback sample rate of the main path or DSD path.

CRs-Fixed: 1078253
Change-Id: I941a357d63f1024c5f7648de10af10df0148c6a7
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-10-14 15:26:08 -07:00
Linux Build Service Account
4b5f689e15 Merge "ASoC: wcd934x-dsp-cntl: Make sure memories can enter deep sleep" 2016-10-13 19:11:31 -07:00
Linux Build Service Account
0c4dd697ad Merge "ASoC: wcd934x-dsp-cntl: add support for codec restart" 2016-10-13 19:11:30 -07:00
Linux Build Service Account
2a80956ae6 Merge "ASoC: codecs: Add teardown() call in shutdown" 2016-10-13 19:11:27 -07:00
Josh Kirsch
d79165cfeb ASoC: msmcobalt: Add support for all TDM modes
Add support for TDM interfaces PRI, SEC and QUAT.

CRs-fixed: 1077773
Change-Id: I99fcbc5c1b36f62ecfa7631f1b51633a7fb08417
Signed-off-by: Josh Kirsch <jkirsch@codeaurora.org>
2016-10-13 17:18:31 -07:00
Linux Build Service Account
601676fcf3 Merge "ASoC: wcd9xxx: Disable external clock buffer when mclk is not in use" 2016-10-13 12:29:06 -07:00
Linux Build Service Account
858faf3e12 Merge "ASoC: wcd-spi: Initialize local variables before usage" 2016-10-13 12:29:05 -07:00
Phani Kumar Uppalapati
7eb661ba7e ASoC: wcd934x: Update DSD register sequence for v1.1
Update DSD playback register sequence for wcd934x
codec version 1.1.

Change-Id: I993273bcf26f8f53f6d9c8cccec5c4b17c8a0e95
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-10-12 18:50:38 -07:00
Sudheer Papothi
52f708c2a3 ASoC: wcd9xxx: Disable external clock buffer when mclk is not in use
External clock buffer being turned on even when mclk is gated results
in power leakage. Disable external clock buffer when mclk
is not in use.

Change-Id: Iea45a4e8ab4560a093c44800ddd7b1311471c646
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-10-12 18:33:28 -07:00
Bhalchandra Gajare
e92ad0d204 ASoC: wcd-spi: Initialize local variables before usage
Initliaze the local variables that are used in functions to return
success or error codes. This fixes possible cases where undefined
error codes are returned.

CRs-Fixed: 1070186
Change-Id: I74bed6cfd9753765b15d17d69ba30f61875e87c8
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-12 15:41:29 -07:00
Bhalchandra Gajare
476dae00da ASoC: wcd934x-dsp-cntl: add support for codec restart
During subsystem restart, the codec hardware goes through reset. Add
support in the wcd934x dsp controller driver to handle codec reset
and perform necessary reset of the codec dsp.

Change-Id: I9916354c04e24708aced5fc63bc12ddfe87b49f2
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-12 15:05:17 -07:00
Phani Kumar Uppalapati
ef04ecd592 ASoC: wcd934x: update keeper enable for soundwire functionality
Keeper enable bit is used to reduce the current leakage
from soundwire master. Enable this bit before starting
audio use-case through soundwire and disable once
use-case is completed.

Change-Id: If2dc9e7fd9a2710391d02c0e52a291b3cffc63b6
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-10-12 12:08:33 -07:00
Bhalchandra Gajare
3d76fcf83c ASoC: wcd934x-dsp-cntl: Make sure memories can enter deep sleep
Current register settings for memory control allow only few memory
banks to enter deep sleep. This could cause some of the memory banks
to not enter deep sleep mode, resulting into higher power consumption.
Fix the register sequence to make sure the memories are allowed to
enter deep sleep mode.

Change-Id: I2ae0fe35e9a207b33f88077ca6ec49d593d43b68
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-11 17:30:19 -07:00
Bhalchandra Gajare
f5c0c7a00b ASoC: wcd-dsp-mgr: handle codec down and up events
It is possible that codec hardware can be reset in case of subsystem
restart scenarios. It is required to reset the codec DSP as well in
such cases to make sure the DSP is in usable state after the codec
hardware is reset. Change adds support to handle codec down and up
events and perform the necessary reset on codec DSP.

Change-Id: I79502c043f5e16947c895aab7cd584d72ad1a7dc
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-11 15:38:32 -07:00
Bhalchandra Gajare
d0b17cbf01 ASoC: wcd-dsp-mgr: rename wdsp_intr_handler to wdsp_signal_handler
The wdsp_intr_handler is not really processing interrupts in interrupt
context, rather assumes that the caller is not in interrupt context and
performs calls that may sleep. Rename the function in order to avoid
confusion. Interrupt handlers can still call this function as long as
they are in threaded interrupt context and are okay to sleep.

Change-Id: Ia2803d6ca021d505ed2e711e676cbd701b11c492
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-11 15:35:40 -07:00
Bhalchandra Gajare
93b43a172c ASoC: wcd-spi: Move one time initializations to component bind
One time initializations like regmap and debugfs init are currently
done in the init function. But, in case of subsystem restart, the
driver can get de-initialized and then initialized again. This causes
the debugfs and regmap entries to get removed and added again during
subsystem restart cases. Avoid this by moving all the one time
initialization of the driver to component bind.

Change-Id: Ideed297fde016b0623616be64875be094e688981
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-10-11 15:31:46 -07:00
Vikram Panduranga
126b57f5fd ASoC: msmcobalt: Initialize variable to default value
Initialize variable to default value before
it is used so that variable does not print
uninitialized value in debug logs.

CRs-Fixed: 1059495
Change-Id: Ic7ed961d8beb16eee35414825ec6ba7d4e95a60d
Signed-off-by: Vikram Panduranga <vpandura@codeaurora.org>
2016-10-11 15:07:18 -07:00
Vikram Panduranga
7f43c41e90 ASoC: msm: qdsp6v2: Index check for out of range
Check if index is a non-negative value before it is used.
Also, initialize return variable to default value before
it is used so that it does not return uninitialized value.

CRs-Fixed: 1059495
Change-Id: I94a6fc02436734b4f398d1a72f53b3ae68612679
Signed-off-by: Vikram Panduranga <vpandura@codeaurora.org>
2016-10-11 15:05:00 -07:00
Garmond Leung
322b48c2be ASoC: codecs: Add teardown() call in shutdown
Display driver has a timeout to avoid prematurely turning
off audio engine. Add teardown function call to ensure
that display driver can turn off audio engine once audio
driver acknowledges the shutdown, so display driver
doesn't have to wait for the entire timeout period.

CRs-Fixed: 1075659
Change-Id: Ib8211a85543b659b7b19a6ebb85382dbbbecfec6
Signed-off-by: Garmond Leung <garmondl@codeaurora.org>
2016-10-11 10:33:17 -07:00
Linux Build Service Account
4e8d48bcbc Merge "ASoC: msm: fix lowlatency playback and FM concurrency issue" 2016-10-11 01:17:08 -07:00
Xiaojun Sang
a9e679905b ASoC: tavil: fix kctl_put and get function for SLIM RXX MUX
Incorrect values are received when queried for SLIM RXX MUX.
This is due to incorrect logic in the put and get functions
of this kctl. Correct the logic to fix this issue.

CRs-Fixed: 1074866
Change-Id: Ib1fda1fcbc09e132f1b3deaf4a65fe8617ff9d10
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
2016-10-11 00:36:06 -07:00
Xiaojun Sang
de352c72d1 ASoC: qdsp6v2: fix potential bug of infinite loop
When variable bufsz equals to 0, there would be infinite loop
at q6asm_audio_client_buf_alloc.
Fix the potential bug by checking bufsz beforehand.

CRs-Fixed: 1072280
Change-Id: I9640112b8945dc603e3af55fc1096bea9f7e6634
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
2016-10-11 14:40:22 +08:00
Hemant Kumar
ac6ae7a25e sound: usb: Increase maximum transfer buffer limit
In order to support higher bit rate like 384Khz
higher buffer sizes are required. Hence change
the max limit from 2 * PAGE_SIZE to 24 * PAGE_SIZE.

Change-Id: I9d57f3011fee086b2d54997d85bc9a37ccc07e4a
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2016-10-10 17:45:32 -07:00
Walter Yang
3b29155a55 ASoC: msm: create backend dailink for wcd934x MAD
To support ADSP SVA on wcd934x, dedicated backend dailink needs
to be created. Add the dailink associating the specific cpu dai
and the MAD codec dai.

CRs-Fixed: 1070327
Change-Id: I4152d81e4e951216a8ecdd93562eb1740dbb962c
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
2016-10-09 19:43:51 -07:00
Linux Build Service Account
36e5723b82 Merge "ASoC: msm: qdsp6v2: support for configurable bit format for AFE encoder" 2016-10-07 01:17:33 -07:00
Linux Build Service Account
b02e3335dd Merge "ASoC: msmcobalt: Update machine driver to support 32 bit format" 2016-10-06 19:45:47 -07:00
Linux Build Service Account
e0f034f4c0 Merge "ASoc: msm: Enable support for 32 bit format and 384Khz" 2016-10-06 19:45:46 -07:00
Linux Build Service Account
6a97dc2b55 Merge "ASoC: msm: qdsp6v2: add support for latest version of media format command" 2016-10-06 19:45:46 -07:00
Vidyakumar Athota
0de1b37d17 ASoC: msm: fix lowlatency playback and FM concurrency issue
Lowlatency playback is failed to start when FM is going on because
of wrong channel count in backend DAI. Channels are overwritten because
of afe loopback port mixer caching variable(port_sessions) overflow.
Fix this issue by creating an array to track all the loopback
connections.

Change-Id: I47b875df7eae671f8b59ecc76f61ed7fc7147f0e
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-10-06 17:33:08 -07:00
Phani Kumar Uppalapati
216150a2e8 ASoC: wcd934x: Update headphone register sequence for wcd934x v1.1
Update codec register sequence for headphone path enable for
wcd934x version 1.1.

Change-Id: I0a16e19f825aa192c12c6c7522e417dd99c68f41
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-10-06 16:34:20 -07:00
Linux Build Service Account
35b02c5e6a Merge "ASoC: soc: change audio drivers to use %pK" 2016-10-06 12:26:10 -07:00
Linux Build Service Account
b80c3a0a3a Merge "ASoC: msmcobalt: Add support for TDM" 2016-10-06 12:26:07 -07:00
Linux Build Service Account
a0e79f8e03 Merge "ASoC: wcd934x-dsp-cntl: add support for subsystem restart" 2016-10-06 12:26:02 -07:00
Linux Build Service Account
a06fab4885 Merge "ASoC: wcd-dsp-mgr: set status before broadcasting post events" 2016-10-06 12:26:02 -07:00
Linux Build Service Account
4de50ebd05 Merge "ASoC: msm: qdsp6v2: Remove 48khz constraint" 2016-10-06 12:25:47 -07:00
Linux Build Service Account
61e4c072da Merge "ARM: dts: msm: connect MADINPUT with MCLK on msmcobalt" 2016-10-06 12:25:45 -07:00
Linux Build Service Account
1109a2ed58 Merge "ASoC: wcd-mbhc: increase hs_vref to 1.6v for wcd9335 codec" 2016-10-06 12:25:44 -07:00
Linux Build Service Account
cde2fda56d Merge "arm/arm64: Kconfig: Add support to use the CLK_QCOM for MSMfalcon" 2016-10-06 01:07:20 -07:00
Linux Build Service Account
7b6f74a97a Merge "ASoC: msm: qdsp6v2: Update device mapping for 7 channel" 2016-10-06 01:07:12 -07:00
Taniya Das
e5335ad216 arm/arm64: Kconfig: Add support to use the CLK_QCOM for MSMfalcon
MSMfalcon requires to use COMMON_CLK and COMMON_CLK_QCOM as the clock
framework. Fix the following for CLK_QCOM
 - Add new configs for common clock framework.
 - Remove compilation of audio-ext for COMMON_CLK.
 - Remove ARCH hamster and cobalt from falcon defconfig.
 - Remove ARCH falcon from cobalt defconfig.

Change-Id: I560d62f9698ddf73848186a6740632735d574b0f
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2016-10-06 10:17:35 +05:30
Ashish Jain
c88c6f97ce ASoC: msmcobalt: Update machine driver to support 32 bit format
Update msmcobalt machine driver to support S32LE format.
Also add support of 384Khz for USB_AUDIO_RX.

Change-Id: I576bd9c3c776ad5c24a15adf1447a9206dc61b89
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
2016-10-05 08:33:01 -07:00
Ashish Jain
eb6adca118 ASoc: msm: Enable support for 32 bit format and 384Khz
Add support for 32 bit data format (SNDRV_PCM_FORMAT_S32_LE)
and sampling rate of 384Khz. Also update platform drivers
to use latest version of pcm media format command
ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V4.

Change-Id: I6b7ea860a398a7e4dd5f7e23ac3906ff0c6f2b3e
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
2016-10-05 08:32:45 -07:00