Commit graph

24076 commits

Author SHA1 Message Date
Neema Shetty
2f2c350993 ASoC: wcd: change classh settings as per impedance value
Depending on the impedance across HPHL and HPHR, set classh
configurations so as to avoid false OCP events.
Move wcd9xxx_registers.h to uapi folder, as this header
file is used by userspace for wdc9330 codec.

CRs-Fixed: 963843
Change-Id: Ie2fb4b75b7f74013580bd3912372c64ddefc734e
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
Signed-off-by: Neema Shetty <nshetty@codeaurora.org>
2016-08-08 23:53:01 +05:30
Venkata Narendra Kumar Gutta
6718f53ddd ASoC: msm: qdsp6v2: Fix crash during WFD playback and SSR
Device crash is observed for consecutive SSR's triggered during WFD
playback. This is due to callback functions registered by afe client
aren't reset during the first SSR and the same callback functions are
being used for the next SSR event, resulting access in freed data.
Fix this issue by resetting the callback functions during SSR.

CRs-Fixed: 1045045
Change-Id: Ib651dd59b30e4924f4e199cfd4fae64df6030d9d
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
2016-08-05 01:19:37 -07:00
Linux Build Service Account
28352998de Merge "ASoC: wcd934x: Enable smart boost on WCD9340 codec" 2016-08-04 21:39:48 -07:00
Shiv Maliyappanahalli
f91ccf8631 ASoC: msm: qdsp6v2: set correct loopback mode
FM audio playback is failing as the loopback mode
is hardcoded to EC mode which is incorrect for
FM audio playback usecase.
Change it to default loopback mode.

Change-Id: I36b60ba2283b0bbe36f492e1410603b8c2050cc4
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
2016-08-04 12:18:24 -07:00
Sudheer Papothi
976c5443ca ASoC: wcd934x: Enable smart boost on WCD9340 codec
During playback, enabling smart boost feature changes the threshold
of the playback signal based on the amplitude of the signal without
clipping the signal. Change enables smart boost on WCD9340 codec.

Change-Id: Ic4c5e3cc071898f376070b853112c5014d61272c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-08-05 00:07:29 +05:30
Sudheer Papothi
c199c86a61 ASoC: wcd9335: Configure DMIC clock rate for ECPP path
DMIC clock on ECPP(Echo Cancellation Ping-Pong) hardware path
can run at lower clock rate to avoid power consumption. Select
ECPP dmic clock rate when decimator is connected only to ECPP
path.

CRs-fixed: 1022917
Change-Id: I968e1fe6b099ebf5334eadb209219181293b207f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-04 11:05:51 -07:00
Sudheer Papothi
da161bce89 ASoC: msm8996: Add independent clock support on codec
WCD9335 codec has single master clock supply widget for both
playback and recording paths. Adding separate clock supply
for playback and recording paths will help handle low power
audio recording usecases without affecting playback usecases.
Change is to enable separate clock supply widgets for playback
and recording paths.

CRs-fixed: 1022917
Change-Id: I3978d2c53f2b04104d9d279f8acad60326f9405c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-04 11:00:16 -07:00
Linux Build Service Account
4f7f48c2bb Merge "ASoC: wcd9335: Add support to enable low power mode on codec" 2016-08-03 21:12:42 -07:00
Linux Build Service Account
059df41e86 Merge "ASoC: wcd9335: don't check for HPHL and HPHR for mono headset" 2016-08-03 10:53:36 -07:00
Linux Build Service Account
13013e38e0 Merge "ASoC: wcd-spi: SPI driver for WCD audio codecs" 2016-08-03 04:58:47 -07:00
Linux Build Service Account
9161b760ca Merge "wcd_dsp_mgr: Add the WCD DSP manager driver" 2016-08-03 04:58:46 -07:00
Sudheer Papothi
b9b48e3ff3 ASoC: wcd9335: Add support to enable low power mode on codec
Codec is in digital core power collapse when there is no
audio usecase but low power audio usecases needs codec to
be out of power collapse. Changes bring codec out of
digital core power collapse for low power audio usecases
without enabling master clock.

CRs-fixed: 1022917
Change-Id: I762fc1dc6b6527608e73ac5144215ee141570aac
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-02 22:41:41 -07:00
Sudheer Papothi
b435be5346 ASoC: msm8996: Add CPE ECPP DAI instance for ECPP path
Add support for CPE(Codec Processing Engine) second voice
wakeup session using ECPP(Echo cancellation Ping-Pong) hardware
path. This allows to enable two concurrent CPE sessions, one
on MAD(Mic Always-on Detection) and the other on ECPP.

CRs-fixed: 1022917
Change-Id: I7a14a2d0b5455d427f90e02506b996fc615c848a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-02 22:41:21 -07:00
Linux Build Service Account
e24bca7ad0 Merge "ASoC: wcd9335: Changes to support CPE session using EC PP path" 2016-08-02 21:58:53 -07:00
Bhalchandra Gajare
68f9abd8cf ASoC: wcd-spi: SPI driver for WCD audio codecs
WCD audio codecs contain SPI slave hardware module to provide access
to codec memory and SPI register space. Change adds driver for this
slave hardware. This driver uses regmap for SPI internal register
accesses and plugs in to standard SPI framework as child device to
master controller driver.

CRs-Fixed: 1049012
Change-Id: I0640ac1ed60a2ec3633636760593211ecd2f9c2d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-08-02 20:33:46 -07:00
Bhalchandra Gajare
643173993d wcd_dsp_mgr: Add the WCD DSP manager driver
WCD audio codecs have DSP embedded to perform signal processing on
audio data. The codec driver has control over the DSP clock, power etc,
whereas the DSP memory can be accessed through an different bus slave
interface. In such cases, it is required to make sure the hardware
expected sequences are met for the DSP to function properly. The
wcd-dsp manager driver registers as master to component framework
and provides the ability to sequence the operations between the child
drivers. Upon registration of all children, the wcd-dsp manager driver
parses the wcd dsp image, downloads the image and boots up the DSP.
It invokes the component children to perform the tasks in sequence.

CRs-Fixed: 1049012
Change-Id: I059e1b111c607e49a7cc9a7940cf458e701c73d3
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-08-02 20:31:31 -07:00
Bhalchandra Gajare
e4af31231a ASoC: wcd-dsp-utils: Add utilities for wcd dsp
wcd_dsp_utils adds utilities that will be used by the
wcd dsp manager driver. Add helper functions to parse
WDSP image and provide list of segments to be loaded
to memory.

CRs-Fixed: 1049012
Change-Id: I2b1464c2a035a039440e6d3e5122ad3f90da4d1e
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-08-02 20:22:08 -07:00
Haynes Mathew George
3d90a144e7 ASoc: msm: qdsp6v2: Fix timestamp glitch during gapless transition
Change conditions to query DSP for session time

Bug: 21633313
Change-Id: I7676d11747083eb35826c52abaa0de47f50032fc
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
2016-08-02 10:55:15 -07:00
Linux Build Service Account
04e7ebf191 Merge "ASoC: msmcobalt: fix proxy channels index value" 2016-08-02 06:42:44 -07:00
Linux Build Service Account
af0987f562 Merge "Merge remote-tracking branch 'msm-4.4/tmp-2bf7955' into msm-4.4" 2016-08-02 06:42:35 -07:00
Shiv Maliyappanahalli
f6613b21f8 ASoC: msmcobalt: fix proxy channels index value
The array index value when setting/getting the channels
of proxy is incorrect as the channel count begins from two.
Fix by setting the correct index offset.

Change-Id: I3ab9858daf6dcdbce762946cbdebeb96eaad764a
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
2016-08-01 22:29:22 -07:00
Linux Build Service Account
160e45d7b2 Merge "ASoC: msm: Add dapm ignore suspend for front end dais" 2016-08-01 21:56:48 -07:00
Sudheer Papothi
0d91aa2188 ASoC: wcd9335: Changes to support CPE session using EC PP path
One of the CPE sessions uses EC(Echo cancellation) PP(Ping-Pong)
path on WCD9335 that is connected to CPE (Codec Processing Engine)
hardware. Configure EC PP path for CPE functionality. This
requires WCD9335 codec to be out of digital core power collapse
without turning on MCLK(Master clock).

CRs-fixed: 1022917
Change-Id: I68200b12fcb316bf36f7c3af2734a094f972da9c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-01 15:47:58 -07:00
Sudheer Papothi
0f8a45e521 ASoC: wcd9335: Add dapm ignore suspend for backend dais
DAPM marks back end dai as dirty during ASoC suspend
which triggers device path teardown. Add ignore suspend
to all back end dais to avoid device path teardown.

CRs-Fixed: 1031932
Change-Id: I89f83feed0702f3a3f3b6141ed73459b8878d2df
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-08-02 02:57:59 +05:30
Linux Build Service Account
0fdb8c8eae Merge "ASoC: msmcobalt: Fix channel configuration on msmcobalt" 2016-08-01 08:04:24 -07:00
Linux Build Service Account
b046eabba1 Merge "ASoC: msm: Implement HFP tx mute get function" 2016-08-01 08:04:23 -07:00
Linux Build Service Account
491adb8744 Merge "ASoC: msm: qdsp6v2: Add support to set volume in ASM loopback" 2016-08-01 08:04:22 -07:00
Linux Build Service Account
83978dfbc0 Merge "ASoC: msm-cpe-lsm: add support for two CPE sessions" 2016-08-01 08:04:21 -07:00
Linux Build Service Account
09955c92f3 Merge "ASoC: msmcobalt: Add 24 bit packed support" 2016-08-01 08:04:20 -07:00
Manish Dewangan
898fd01bf2 ASoC: msmcobalt: Add 24 bit packed support
Changes to support packed 24 bit (SNDRV_PCM_FORMAT_S24_3LE)

CRs-Fixed: 1011048
Change-Id: Id927e9b8894b1bf99e57cc0f04abf126740c6d36
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
2016-08-01 01:15:50 -07:00
Linux Build Service Account
eed72db02a Merge "ASoC: audio-ext-clk: check for null pointer de-reference" 2016-07-31 21:36:45 -07:00
Walter Yang
febf4856e5 ASoC: msm: set pointers to NULL after kfree
In lsm-related driver files, some pointers are not set as NULL
after the memory is freed, which will leave many dangling pointers.
Set them to NULL explicitly to avoid potential risk.

CRs-Fixed: 997059
Change-Id: I44925240705608510266a51225cc02611637c571
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
2016-08-01 10:41:48 +08:00
Yeleswarapu Nagaradhesh
70db8581f4 ASoC: wcd9335: don't check for HPHL and HPHR for mono headset
when mono headset is connected, either of the HPHL
or HPHR channel is enabled. So don't check for
both if cable is mono headset, otherwise RX chain is left muted
and hence audio is not heard from headset.

CRs-Fixed: 1018104
Change-Id: I464c785eba28f02993042d220e5744025e2f9346
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
2016-07-30 05:11:11 +05:30
Sudheer Papothi
32af1c5f42 ASoC: msmcobalt: Fix channel configuration on msmcobalt
Channel ids are not updated correctly in hardware params
fixup resulting in audio mute on one of the channels on headphones.
Fix the channel ids properly in msmcobalt machine driver hardware
params fixup.

CRs-Fixed: 1034829
Change-Id: If23da9ac1d2f71ad4d39371b665311f1f84b016a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-07-30 03:38:00 +05:30
Sudheer Papothi
23c3ff0a00 ASoC: msm: Add dapm ignore suspend for front end dais
DAPM marks front end dai as dirty during ASoC suspend
which triggers device path teardown. Add ignore suspend
to all front end dais to avoid device path teardown.

CRs-Fixed: 1031932
Change-Id: I1d85578534c58c121ca8e560d67faf9b94e87be9
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-07-29 10:15:30 -07:00
Sudheer Papothi
712b785a73 ASoC: msm-cpe-lsm: add support for two CPE sessions
Existing CPE(Codec Processing Engine) driver supports single session.
Add support for two sessions with different sampling rates.

CRs-fixed: 1022917
Change-Id: Icb355cd07db9cc66632ac0ea14464c5610919725
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-07-28 11:20:07 -07:00
Dhanalakshmi Siddani
78505032fe ASoC: msm: Implement HFP tx mute get function
Implement function to get HFP Tx mute status.

CRs-Fixed: 1045063
Change-Id: I64931decb9948ed47f046c0b6267150fe512a3dc
Signed-off-by: Dhanalakshmi Siddani <dsiddani@codeaurora.org>
2016-07-28 01:18:31 -07:00
Linux Build Service Account
843ed09846 Merge "ASoC: wcd_cpe: Add support for two CPE sessions" 2016-07-27 19:27:09 -07:00
Linux Build Service Account
359db4da15 Merge "ASoC: Fix freed memory access of pcm stream kctl" 2016-07-27 19:26:59 -07:00
Linux Build Service Account
e3e38c9d58 Merge "ASoC: msm: qdsp6v2: Add size check in audio cal ioctl" 2016-07-27 19:26:54 -07:00
Linux Build Service Account
486e62947d Merge "sound: usb: Enable autosuspend for usb audio device" 2016-07-27 19:26:51 -07:00
Surendar karka
eb70f96d7e ASoC: msm: qdsp6v2: Add support to set volume in ASM loopback
Allow to set volume in ASM for the loopback driver. Without the
get() function the corresponding volume mixer control is
failing to set volume.

CRs-Fixed: 1034862
Change-Id: I621dd9de3a8d4a0f4102227989e1dd17638c20ea
Signed-off-by: Surendar karka <sukark@codeaurora.org>
2016-07-27 18:34:34 +05:30
Linux Build Service Account
8c5c49fdb2 Merge "ASoC: open ASM session with 24 bit for 24 bit playback" 2016-07-26 23:34:43 -07:00
Linux Build Service Account
57fdba1a12 Merge "ASoC: msm: qdsp6v2: DAP: Update check to validate data length" 2016-07-26 23:34:31 -07:00
Linux Build Service Account
0de8ef1f3e Merge "sound: usb: Update USB audio QMI data structure" 2016-07-26 23:34:28 -07:00
Sudheer Papothi
493cf47b47 ASoC: wcd_cpe: Add support for two CPE sessions
Existing CPE(Codec Processing Engine) driver supports single session.
Add support for two sessions with different sampling rates.

CRs-fixed: 1022917
Change-Id: Ifbcb1bf8c418a4b3c787f68392aa141207dddde5
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-07-26 23:00:02 -07:00
Ben Romberger
d0424df41e ASoC: msm: qdsp6v2: Add size check in audio cal ioctl
For the audio get calibration ioctl compare the allocated
buffer size to the size of the header and cal type header
to ensure the buffer is big enough.

Change-Id: I851b4454e8420706ad3263d67e892720d46e5718
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2016-07-26 12:16:09 -07:00
Yeleswarapu Nagaradhesh
b7cc9e62cc ASoC: audio-ext-clk: check for null pointer de-reference
As part of clock test, prepare and unprepare functions are
triggered for all the registered clock's. If clock is
is not used in a flavor of target then pinctrl
pointer is not valid. Hence check for pinctrl before accessing.

CRs-Fixed: 1018208
Change-Id: I3afc0d86476f7a447237180fa411858782d3df1b
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
2016-07-27 00:34:21 +05:30
Hemant Kumar
6373b35536 sound: usb: Enable autosuspend for usb audio device
This allows runtime suspend to kick in upon all the
children of usb device are suspended. It saves power
when usb audio device is connected but not data transfer
is taking place.

CRs-Fixed: 1003807
Change-Id: I227a74c029f10ffda9ceccc10322ad71e7fd0435
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2016-07-25 16:16:44 -07:00
Linux Build Service Account
4b20cd07d7 Merge "ASoC: wcd: add wcd934x gpio controller device" 2016-07-23 16:05:25 -07:00