Commit graph

23688 commits

Author SHA1 Message Date
Yeleswarapu Nagaradhesh
1797f0368c ASoC: wcd_cpe_core: initialize return variable
The return variable is initialized if there is an error and is
left uninitialized otherwise. There is a possibility of returning
garbage.

CRs-Fixed: 980968
Change-Id: I2a21ef7934472ae2fd59d6277df4b3e9b401b489
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
2016-03-25 16:02:46 -07:00
Yeleswarapu Nagaradhesh
b43518d9f5 ASoC: wcd: update handling of invalid cases
initialize return variable and add default case inside the
switch statement.

CRs-Fixed: 980968
Change-Id: If1fe566a8f88f1384826670220b8352310a3f996
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
2016-03-25 16:02:45 -07:00
Laxminath Kasam
3369208e89 ASoC: Initialize val to avoid access garbage value
In DAPM, when booting up widgets connect variable
is sometimes initialized with value 1 even though
expected to be 0. This is due to val not initialized
locally in API dapm_set_mixer_path_status and can
result in using garbage value.

CRs-Fixed: 982805
Change-Id: I172558f64c19750c461befda3aa16ca6480ab507
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-25 16:02:42 -07:00
Phani Kumar Uppalapati
07ceb38173 ASoC: wcd-mbhc: Avoid fake headset report during headphone remove
When headphone is removed while 3 second polling is still in progress,
mbhc hs comparator result will be read as "0" and this causes reporting
a fake headset insert event to user-space followed by headphone removal.
Avoid sending this fake headset insert event to user-space by checking
for the microphone clamp bit from codec mbhc hardware.

CRs-fixed: 941089
Change-Id: I96d96dca92a6c99bbb25ab70a2706e730c28818b
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-25 16:02:34 -07:00
Roberto Granados Dorado
92881d2ede ASoC: msm: qdsp6v2: Add missing routing for MI2S interfaces
This change adds some routing missing plus few other fixes needed
when MI2S interfaces are used.

CRs-fixed: 909961
Change-Id: Ic1e234c955a6162d67fd97ac7647ec810ede204c
Signed-off-by: Roberto Granados Dorado <robertog@codeaurora.org>
2016-03-25 16:02:33 -07:00
Derek Chen
5fcc7c00d1 ASoC: msm: qdsp6v2: init tdm group ref on tdm group q6 probe
Initialize tdm group reference count on tdm group q6 probe
instead of tdm per dai probe to avoid duplicated init calls.

CRs-fixed: 975767
Change-Id: I88bc791fc2bfbb60f1cf6b2faeb6de0c865539c0
Signed-off-by: Derek Chen <chenche@codeaurora.org>
2016-03-25 16:02:23 -07:00
Phani Kumar Uppalapati
12641b04ac ASoC: wcd9335: Add support for lineout volume adjustment
Add mixer controls to adjust wcd9335 codec lineout PA
volume adjustment. This gives flexibility for user
to modify volume based on use-case.

CRs-fixed: 969512
Change-Id: I562f17363d7d38caece358a50d1e3f654d87491f
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-25 16:02:22 -07:00
Sudheer Papothi
1a23d3a63e ASoC: wsa881x: Fix compilation warning on kernel 4.4
Fix compilation warning in wsa881x codec on kernel 4.4.

Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-03-23 21:25:01 -07:00
Sudheer Papothi
ce4d8114ff ASoC: msm8996: Remove capture support for MultiMedia 4 front end
Compress devices in ALSA framework on kernel 4.4 does not support
both playback and capture at the same time. So, remove capture
support from compress 1 front end dai link as this is not being
used by any audio usecase.

Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-03-23 21:23:58 -07:00
Sudheer Papothi
6a8471bd1c ASoC: msm: Remove bi-directional support for compress devices
In ALSA framework on kernel 4.4, compress devices are unidirectional
and does not support both playback and capture at the same time.
Change removes capture support for MultiMedia4 front-end as this
is not being used in any of the audio usecases.

Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-03-23 21:23:57 -07:00
Venkata Narendra Kumar Gutta
8e51c8ce31 ASoC: msm: Add support for HW MAD bypass feature for listen
HW MAD bypass feature is to facilitate input to CPE by avoiding
MAD in codec. This is done by routing DEC1 data to CPE. Add the
required changes to support this feature.

CRs-fixed: 938514
Change-Id: I7788b1475cd22bdea291bcae47f048131b220ce3
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
2016-03-23 21:23:30 -07:00
Meng Wang
e066a36f41 ASoC: wcd: enable regulator when micbias is needed
When vdd micbias is connected to regulator, need enable
regulator when micbias is needed.
To detect special headset, micbias need to be set to 2.7v.
Regulator need get enabled before special headset detection.

Change-Id: Iae361cabf7b5194e12f5ddc8e32d60cf94bf28c3
Signed-off-by: Meng Wang <mwang@codeaurora.org>
2016-03-23 21:23:29 -07:00
Laxminath Kasam
abab157fa9 ASoC: msm: qdsp6v2: enable quinary tx interface
Add backend to enable quinary tx interface.

CRs-Fixed: 978548
Change-Id: If686d642813ee64d2e34966e053ef5210a8ee0a1
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:21:17 -07:00
Ashish Jain
9d07dff310 ASoC: msm: Use legacy ASM APIs for older targets
With 3.18 kernel, get_session_time command to
DSP is updated to new command. This
command is not supported on older targets as
they have an older DSP version. To have backwards
compatibility, based on DSP version choose which
command to use.

CRs-Fixed: 978676
Change-Id: I76b0cfcd84df90d7a206690cb8aa1eb773fdc53d
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
2016-03-23 21:21:16 -07:00
Laxminath Kasam
d992ed3e36 ASoC: msm: qdsp6v2: Move spin lock init before apr registration
Move spin lock init for no wait que before apr registration.
If apr registration fails asm free client will free
the no wait que by acquiring spin lock. Hence spin lock
init for no wait que should happen before apr registration.

CRs-Fixed: 979701
Change-Id: I5ef85e39ab5e3babfb2e097005c0d1553cc38f51
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:21:13 -07:00
Ashish Jain
249d0bd7a2 ASoC: msm: Add backend to support split A2DP
Add support to enable Bluetooth A2DP playback
via DSP.

CRs-Fixed: 978676
Change-Id: I02f2af671bed10e45b764af5cc9a0977a3d9e66e
Signed-off-by: Ramlal Karra <rkarra@codeaurora.org>
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
2016-03-23 21:21:13 -07:00
Viraja Kommaraju
48b1cf8d91 ASoC: msm: qdsp6v2: add route for SEC MI2S Tx voice
Add Tx route to support voice call over SEC MI2S ports.

CRs-Fixed: 964328
Change-Id: Ifda4334dc89d28c51478f8748b43035e3ae855c5
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:21:06 -07:00
Vidyakumar Athota
a15e630662 ASoC: msm: Add support to query speaker parameters
Add SET and GET parameter APIs to query speaker
parameters in feedback speaker protection FTM mode.

CRs-Fixed: 974621
Change-Id: I1a51e5033d7836c0c996621593cd2f4dd6982dcd
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-03-23 21:20:59 -07:00
Neema Shetty
cc26218f26 ASoC: wcd9335: Add mixer controls for RX INTPn_2 HPF cut-off frequency
Added mixer controls for HPF cut-off frequency on the RX interpolator
mix-in paths.

CRs-fixed: 963405
Change-Id: I4ca4a554c0a83d4053301ca5dd2afb8b09fa5194
Signed-off-by: Neema Shetty <nshetty@codeaurora.org>
2016-03-23 21:20:54 -07:00
Bhalchandra Gajare
72f0f4b937 ASoC: wcd_cpe_services: Make the worker thread standalone
The worker thread can either be stopped through kthread_stop or could
return from the function on some conditions. Since thread has two exit
points, this is causing a race condition where kthread_stop indefinitely
waits for the thread to exit. Make the thread standalone and always call
do_exit itself to exit instead of stopping it through kthread_stop.

CRs-fixed: 972943
Change-Id: If95cbd6ee895d566887453e98421d1514147441b
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-03-23 21:20:37 -07:00
Shiv Maliyappanahalli
9fcf4e06a0 ASoC: msm: qdsp6v2: Add 32/48KHz sample rate to VoIP driver
Add 32/48KHz sample rate capability to the VoIP driver to
allow VoIP application which uses 32KHz/48KHz sample
rate to take Voice path.

Change-Id: I654b97ffc36b993114899e85706914d99ef44abc
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
2016-03-23 21:20:19 -07:00
Venkata Narendra Kumar Gutta
80dd2957b7 ASoC: msm: qdsp6v2: Fix compress offload playback failures during SSR
Compress offload playback failures observed if SSR is triggered
during playback. Compress_write is blocked as there are no bytes
consumed by the DSP. During SSR, based on the reset events,
driver has to update the bytes copied by the DSP so that write
gets unblocked.

CRs-Fixed: 966659
Change-Id: I24d5bf09b3453f101adb9487298e6fbdfeb15e4a
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
2016-03-23 21:20:17 -07:00
Kuirong Wang
c9be1e4385 ASoC: msm8996: Add slimbus_6_rx back-end dai-link and hostless
Add slimbus 6 playback hostless and slimbus_6_rx back-end
dai-link to enable independent backend for different devices
during audio playback.

Change-Id: Ibc12ca8ad2c99316c52092b74462ecd7bfbded5c
CRs-fixed: 940415
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
2016-03-23 21:20:15 -07:00
Kuirong Wang
34c137e188 ASoC: wcd9335: Add codec rx4 dai
Add codec rx4 dai to support independent backend for different
devices.

CRs-fixed: 940415
Change-Id: I48b24d81e2047d4d4c299ca60cdbd299e172393e
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
2016-03-23 21:20:14 -07:00
Kuirong Wang
aef5c4d9af ASoC: msm: Update slimbus RX 6 routing and add hostless
Update the slimbus RX 6 routing and add the slimbus RX6 hostless
to support more use cases.

CRs-fixed: 940415
Change-Id: I4fcea97cc4a0c876609fbaa8f5eecf3b4914e776
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
2016-03-23 21:20:13 -07:00
Karthik Reddy Katta
96adc9685e ASoC: wcd-mbhc: Add pointer validation checks in wcd-mbhc-v2.c
Check if 'mbhc_cb' is NULL in wcd_mbhc_stop() before
dereferrencing.

CRs-Fixed: 972101
Change-Id: I3b2348bddb071e5bf7bc2e5d6885bb3c1ba2c195
Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
2016-03-23 21:20:09 -07:00
Derek Chen
3b77668777 ASoC: msm: invert bit clk for afe tdm ports for msm8996
Invert the bit clock for afe tdm ports for msm8996 to
align the lpass and ext codec hw clock and avoid
bit corruption.

Change-Id: Ic36ab733b227a34ebb8401dd11e99f943b0c8839
Signed-off-by: Derek Chen <chenche@codeaurora.org>
CRs-fixed: 973480
2016-03-23 21:19:57 -07:00
Laxminath Kasam
f0283a0da8 ASoC: wcd9335: reset the SWR_CH_CNT at session teardown
In speaker protection usecase, if SWR_CH is already
set to 2 due to bootup tone playback then the initial
calibration fails. As the WSA register writes will
fail due to gr_sid will not match with dev_num
and temperature read will return negative value.
To address this, when session teardown reset the
soundwire master channel count in tasha driver.

CRs-Fixed: 961023
Change-Id: I80ee0dedac8fa81ce54a0e61c839a97b9b45d36b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:19:53 -07:00
Patrick Lai
9c187b4c5f ASoC: msm: Add debug Kconfig for LPASS audio driver
Introduce new Kconfig for purpose of enabling LPASS
audio driver debugging utilities. Initial utility is
to induce kernel panic upon encountering error from
audio components in ADSP.

CRs-fixed: 968775
Change-Id: I9f802f32892d55be83d4b8a6e861ab09f6336093
Signed-off-by: Patrick Lai <plai@codeaurora.org>
2016-03-23 21:19:51 -07:00
Laxminath Kasam
73f564a2c2 Revert "ASoC: wcd-mbhc: Fix plug removal detection from extension cable"
This reverts commit 099e839e730b89630404bfc9a375049ac01b8f93 ("ASoC:
wcd-mbhc: Fix plug removal detection from extension cable")'.
Headset insertion is giving spurious electrical insertion removal
interrupts. Hence headset is not detected properly. This is seen on
RCM devices for normal US headset on 8937/msmgold/msmtitanium. On MTP
some specific headsets are exhibiting this behavior.

Change-Id: Ida016cc29950dabcaaf6bfc1b751e77e3cccd20c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:19:37 -07:00
Patrick Lai
45f43cddf9 ASoC: msm: qdsp6v2: move adsp_err to c source file
In preparation to add more debugging hooks to LPASS driver, convert
adsp error code and string conversion functions to C source file.

CRs-fixed: 968775
Change-Id: Ic074a318ede4188a8fd603efddce71ed820ee560
Signed-off-by: Patrick Lai <plai@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
2016-03-23 21:19:22 -07:00
Venkata Narendra Kumar Gutta
9c8d55382c ASoC: msm: qdsp6v2: Add support for SENARY_MI2S_TX port
Add support for SENARY_MI2S_TX port to enable FBSP.
This port is configured to send VI feedback data from
WSA to ADSP during FBSP.

Change-Id: I4fb1beb7bfedbe513ba43a69e67fbcc815d34595
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
2016-03-23 21:19:18 -07:00
Ben Romberger
c0b53092e3 ASoC: msm: qdsp6v2: Correctly free ASM no wait queue
Remove improper deletion of list head and protect list
deletion with spinlock. Spinlock protects the list
from access in ADSP callback at the same time the
list is being deallocated.

Change-Id: I1b102cd99e7c80e1dfd4e2054b9ba7e0ca26d6a7
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2016-03-23 21:18:58 -07:00
Ben Romberger
38ebaf2f95 ASoC: msm: qdsp6v2: Modify HW delay debug print
Change the HW delay debug print so it does not
seem like an error. Adds comments in the code
describing the HW delay feature.

Change-Id: I0955623a7bdb0f4180c908ba079cf6f900e496a5
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
2016-03-23 21:18:57 -07:00
Vidyakumar Athota
2263eb03e8 ASoC: wcd9335: fix mute issue on headphone during concurrency
Currently class-H controller is not enabled when lineout is enabled
first and then headphone is enabled.  Because of this mute is observed
on headphone during lineout and headphone concurrent scenarios.
Fix mute on headphone by enabling class H block during concurrency.

Change-Id: Ibed962eaacf87c3eb55c569d2ae9c6363a63cace
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
CRs-Fixed: 957405
2016-03-23 21:18:53 -07:00
Viraja Kommaraju
d355d220ef ASoC: qdsp6v2: Add error check for pointer and array index
Add NULL check for the pointer to make sure memory is
allocated. Add array boundary check for the index
before using the same array.

Change-Id: Ifd35ca0c0a1cbeee18d7797ea6b43ea31be0eeba
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:18:35 -07:00
Derek Chen
81aa95aa8c ASoC: msm: add port mixer routing for quat_mi2s_rx
Add port mixer routing support from aux_pcm_tx to quat_mi2s_rx.

Change-Id: I6c72ab41123de4f4ab3a37bd23c37c58d689e509
Signed-off-by: Derek Chen <chenche@codeaurora.org>
2016-03-23 21:18:24 -07:00
Viraja Kommaraju
793b94b398 ASoC: Add check for pointer and array index
Add check for NULL pointer access and
array index boundary.

Change-Id: Ia12a28c43b99158a90d27eecd23bdfd4b42b346e
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
2016-03-23 21:18:23 -07:00
Laxminath Kasam
c006b9ad3b ASoC: qdsp6v2: move AFE clock macros to header
As AFE clock version macros can be used
in other drivers, move them to header file.

Change-Id: Iae5717c181e81bf7a6161742e8d062d09bedfb78
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:18:21 -07:00
Vidyakumar Athota
964f63a545 ASoC: wcd9335: fix pop during CLS-AB mode
Pop is observed during starting of the playback in CLS-AB mode.
Fix the pop issue by updating register sequence properly.

Change-Id: Iff17245e8a2b14354cc99150a57394ce81ec29b8
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-03-23 21:18:20 -07:00
Venkata Narendra Kumar Gutta
ed41926607 ASoC: msm: qdsp6v2: Don't register to modem for SSR callbacks
Voice driver doesn't create any sessions related to voice call
on modem and hence there is no clean up on APSS is required
when modem SSR is triggered. Cleanup the code in voice driver
which is executed during modem SSR.

CRs-Fixed: 955696
Change-Id: I7536162e49b0eb56f63e7c8e59e0c050123c05fe
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
2016-03-23 21:18:11 -07:00
Sudheer Papothi
e125c08ab8 ASoC: wcd9335: Increase slimbus clock gear for HPF settings
Increase slimbus clock gear for setting of Tx HPF(High pass filter)
cut off frequency properly. Change will ensure Tx HPF cut off
frequency will applied in the codec.

Change-Id: I7d7c3243c63cd3b9242a15344ecdae89ec9ee977
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2016-03-23 21:18:07 -07:00
Phani Kumar Uppalapati
58456af54d ASoC: wcd9335: Reset spline resampler after playback
Reset spline resampler after audio playback is completed
to clear the FIFO and avoid any noise being generated.

Change-Id: I30ed6a337c3bb08f6197f7ee575b323f0b0acfac
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:26 -07:00
Phani Kumar Uppalapati
905abbddb5 ASoC: wcd9335: Update impedance detection parameters
Update mbhc impedance detection parameters namely, LDO control
and Nshift, to get better accuracy for headphone left and right
impedance values.

Change-Id: I8b3271ee9af91b9e921957998e0fb074ffdebe86
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:25 -07:00
Phani Kumar Uppalapati
10d7cdb07d ASoC: wcd-mbhc: Reduce delay in detection for threshold headsets
Certain headsets have threshold on microphone for detection.
Currently mbhc driver takes about 3 to 4 seconds to detect those
headsets. Reduce delay in detection for threshold headsets by
increasing micbias to 2.7v.

Change-Id: I744bafb78560f39806d656c98582d8162fa10dfd
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:24 -07:00
Phani Kumar Uppalapati
e45a913e1e ASoC: wcd-mbhc: Fix plug removal detection from extension cable
Fix plug removal detection by enabling electrical removal
irq when headset/headphone accessory is removed from the
other end of extension cable.

Change-Id: I585a81e6c01b4ddd249f76614fb933beea3755fc
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:18 -07:00
Dhananjay Kumar
e22b97da06 ASoC: msm: fix indefinite wait in compress drain
In compressed driver streams might get stopped while
ioctl drain is started but not completed, since buffers
are drained in multiple stages when gapless mode is
enabled.
Check stream state before issuing wait commands to
prevent waiting for drain ack on stopped streams.

Change-Id: I606639c103a7aed90dd9a4561fa6dffc3d4c3822
Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>
2016-03-23 21:17:06 -07:00
Bhalchandra Gajare
f5e6ba4333 ASoC: wcd9335: Configure DMIC clock drive stength from pdata
It is possible that differnt platforms could configure to DMIC clock
drive strength differently. Allow this configuration by setting the DMIC
clock drive strength through pdata.

CRs-fixed: 938006
Change-Id: I6f9f8a947e0efca31d0c50dec9a5973079bb48c4
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-03-23 21:17:02 -07:00
Phani Kumar Uppalapati
6fd817114c ASoC: wcd9335: Give more headroom for headphone PA ramp
Give more headroom for headphone PA ramp up and down during
impedance detection to avoid any click and pop or ramp error.

Change-Id: I3e3980e48ce19955b4230876887adfde5b44e8ea
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:00 -07:00
Laxminath Kasam
83f4c5c049 ASoC: wsa881x-analog: move error prints to debug for wsa
For each successful wsa read and write, we are printing the
values. Moving the print to debug.

Change-Id: I1b5c6b345b1d967d43f26bd9b1d4731d02ad021c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2016-03-23 21:16:47 -07:00