Commit Graph

31 Commits

Author SHA1 Message Date
Laxminath Kasam
d7262ae1e0 asoc: wcd934x: add SSR events to trigger to new swr master controller
For new swr master controller to recover WSA on wcd934x variant,
trigger events from wcd934x driver for ssr down and up.

Change-Id: I8f0163178708760ef3ad2a765a80682611693e9b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2018-09-25 11:35:35 +05:30
Meng Wang
567bcd3b7a ASoC: wcd934x: check sound card state to avoid pointer dereference
When codec probe is not correctly completed and ADSP SSR happens
before sound card is registered, calling SSR callback may result
into NULL pointer dereference and kernel panic happens.
Check sound card state when calling device_down and post_reset to
avoid NULL pointer dereference.

Change-Id: I35fd84af51edf45db6fd451dc68dbcaaed11fee7
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-09-18 15:33:31 +08:00
Banajit Goswami
57245da21e asoc: wcd934x: add support for SSR handling using SND event FWK
Add support for SSR/PDR handling using SND event framework.

Change-Id: Ia96858ed6dc43cbb80d01a7797abb57442813d3b
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
2018-08-22 10:34:42 -07:00
Karthikeyan Mani
3dd07e6937 asoc: mbhc: ignore mbhc event report during ssr
When ssr is in progress, during some race conditions
mbhc events are getting reported when codec is still
coming up. Ignore such events without reporting.

Change-Id: I3d3f78f97c2b855fc36a480f38c166bda2d979f0
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2018-07-02 11:22:40 -07:00
Karthikeyan Mani
e964a75f32 asoc: codecs: cancel all delayed work during SSR/PDR
Cancel any pending delayed work in device down call
to ensure no work is scheduled during or after a
SSR/PDR sequence.

Change-Id: I4cc89cb1a9d8be732c978044d4eea3cf6644ec30
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
2018-06-09 11:26:06 -07:00
Xiaojun Sang
e0c3f3f39d ASoC: codecs: fix inconsistency of boost state register value
Use hardware default value for boost state in regmap.
Use correct mask for initial value of boost state.

Change-Id: Ia8b707ba0128662d47059d25325693bc8eaff723
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
2018-06-08 15:04:09 -07:00
Meng Wang
da08f2f315 ASoC: wcd934x: Reset power_active_ref to 0 when it is negative
Reset power_active_ref counter to 0 when it is negative to
take digital core out of reset during next session.

Change-Id: I724ffe6e3547655424238ca02a9bf8ac24b101fe
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-06-06 23:49:40 -07:00
Karthikeyan Mani
dbfc6a776a asoc: codecs: wcd934x: add stub functions for codec APIs
If wcd934x config is removed, need to stub out the
APIs to load any dependent audio modules and enumerate
sound card.

Change-Id: If885d4d1f0ee83448ac41ed66b51f078978cb7d1
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2018-05-21 11:16:45 -07:00
Linux Build Service Account
257abe3e99 Merge "asoc: codecs: set boost state to MAX_STATE_2 for WSA8815" 2018-03-21 10:17:17 -07:00
Linux Build Service Account
ed523bc624 Merge "asoc: wcd934x: update register default values before post SSR" 2018-03-21 01:40:57 -07:00
Xiaojun Sang
09cd2ac5e9 asoc: codecs: set boost state to MAX_STATE_2 for WSA8815
WSA8815 requires default boost state of MAX_STATE_2, when
speaker protection feature is disabled. Set boost state to
MAX_STATE_2 in all cases for WSA8815.

Change-Id: Ic700d9a206e94a4cdd1d99f8547bed9df1e759e8
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
2018-03-21 10:36:31 +08:00
Karthikeyan Mani
24afb6e390 asoc: codecs: add null pointer check for swr control data
Null check is needed before accessing swr control data
to ensure proper error handling in case speaker path
is issued when swr is not enabled.

Change-Id: I5037a912652189b3ae58f1119d0534777a9c264a
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2018-03-16 14:46:33 -07:00
Meng Wang
bb4029020d asoc: wcd934x: update register default values before post SSR
Update register default values before post SSR to avoid codec nack issue.

Change-Id: Ibf1e3275d27c4b65ab179b9ddc5a51621c89eab7
Signed-off-by: Meng Wang <mwang@codeaurora.org>
2018-03-08 20:34:24 -08:00
Xiaoyu Ye
3bda9b1de1 asoc: wcd934x: optimize ANC enablement logic for Tavil codec
In Tavil driver, both ANC0 and ANC1 channel registers are written when
each ANC channel is enabled. This logic results in high latency during
ANC enablement on Tavil codec. Optimize this logic by only writing the
corresponding channel registers when enabling ANC0 or ANC1.

Change-Id: I62e8572967e6ca6c851cbaaad5f1b8c19e5b1a5f
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
2018-03-07 17:25:34 -08:00
Sudheer Papothi
ca7ca2c804 ASOC: wcd934x: Fix finding of correct AMIC
During Tx path enablement, amic information is needed for proper
power level settings and for better performance. Existing API returns
incorrect amic information. Changes provide the correct amic information.

Change-Id: I18f3f35212cae47e5d944c2e075f03889147722b
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-03-05 13:24:15 -08:00
Linux Build Service Account
3968f84b45 Merge "ASoC: wcd934x: Update OCP before HPH PA enable/disable" 2018-03-02 23:16:33 -08:00
Linux Build Service Account
43667ec287 Merge "asoc: codecs: update IIR cofficient values before IIR band enable" 2018-03-02 23:16:27 -08:00
Laxminath Kasam
3a4607028c ASoC: wcd934x: Update OCP before HPH PA enable/disable
Observe mute issue when PDR triggered while music playback
on HPH. As per HW recommendation, ensure OCP is turned off
before PA enable/disable. During PA enablement, turn off OCP
to avoid false OCP interrupts.

CRs-Fixed: 2167007
Change-Id: I0dc2cc6ded3416b635d14dc3b7aafa7997fe9a4d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2018-02-28 21:52:12 -08:00
Vidyakumar Athota
9147e38e71 asoc: codecs: update IIR cofficient values before IIR band enable
Currently IIR coefficient values are written to HW everytime when
digital core comes out of power collapse. This increases playback
cold start latency. So update IIR coefficient values before IIR
band enable.

Change-Id: I57ad54b4674ed0a49fdfc55d77c519568f5a7893
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2018-02-28 21:48:57 -08:00
Karthikeyan Mani
f164580248 asoc: codecs: Fix tavil i2s max rate and cleanup
Change i2s max rate supported for tavil to 384000Hz.
Cleanup usage of intf_type to optimize differentiation
between slim and i2s.

Change-Id: If6451dae7c61e8f61be3d5a13549f98b382e5054
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2018-02-28 18:50:09 -08:00
Karthikeyan Mani
98d3d590bb asoc: codecs: enable i2s mode for tavil
Add support for tavil i2c access. Add audio
routings dapm widgets for data and control.

Change-Id: I96ebf7a5700b10f294f4fadfeeb21dab490a9313
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2018-02-28 18:49:19 -08:00
Karthikeyan Mani
82597ffeec asoc: codecs: Fix device switch pop issue
With AANC enabled, and when the device switches
from speaker path to handset path there is a audible
pop. Add more delay to the aanc enable work function
to resolve the pop issue.

CRs-Fixed: 2137607
Change-Id: Icaf381179b0a81440b21ab4280cb6fc95e6fe6ba
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2017-12-26 21:31:29 -08:00
Karthikeyan Mani
00d55efdfb asoc: codecs: add support for TX hybrid mode
Add support for analog mic TX hybrid mode to allow
audio catpure in high performance at the same time
achieving lower power.

CRs-Fixed: 2136385
Change-Id: I08b90a26d6b6e4761ff17dec84bf58f8d437d908
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2017-11-22 22:49:03 -08:00
Linux Build Service Account
ccde4f27a1 Merge "asoc: wcd934x: set bus down flag right when notification reaches" 2017-11-20 10:52:52 -08:00
Banajit Goswami
15fffc6b9b asoc: wcd934x: set bus down flag right when notification reaches
Set bus_down_in_recovery flag as soon as possible when
BUS down notification reaches codec driver. This is to
avoid any unwanted slimbus transaction while BUS is still
not recovered.

Change-Id: I77917975372bf51e6aa881cbfc63c479478db375
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
2017-11-20 03:19:40 -08:00
Walter Yang
09d4168c79 ASoC: wcd934x: reset ASRC after playback
Reset ASRC after audio playback is completed to clear
the FIFO and avoid any noise being generated.

CRs-Fixed: 2129994
Change-Id: Ie45796e1bd68d5a8bd790490a65520358f26b811
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
2017-11-16 02:54:55 -08:00
Xiaojun Sang
24daae8895 ASoC: codecs: add mixer ctls to control boost level
Add new mixer ctls to control max boost state level
for speaker protection V3.

Change-Id: If967de46955f6dc8692986503daea68ce105f642
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
2017-11-07 01:36:52 -08:00
Karthikeyan Mani
e87298f55a asoc: wcd934x: update micbias noise filter resistance
Update micbias noise filter resistance for better performance
during audio capture.

CRs-Fixed: 2055467
Change-Id: I56eb08ca9785d36cf577f32297f2c719224f0f65
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
2017-10-04 12:10:49 -07:00
Laxminath Kasam
8f7ccc2e6f audio-lnx: Add latest snapshot for audio drivers.
Propagate the changes based on latest snapshot
for audio kernel source tree at below cutoff of
kernel msm-4.9 -
(040750bfa78 -
 "Revert "ARM: dts: msm: Add DT node for aop-qmp
  clock controller on SDM845 v2"")

CRs-Fixed: 2104096
Change-Id: I0927c40b3a188dbf892e7ec4c1c7810953724929
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2017-09-04 20:12:56 +05:30
Asish Bhattacharya
34504581a0 audio-lnx: Add snapshot of audio drivers from below commit.
(1996ec83a45: "ARM: dts: msm: Reduce CNOC bus voting for
        USB slave on SDM845")

This change is to migrate latest snapshot of kernel drivers.

Change-Id: I84669db544773d3ce9d2d5dff0ab6943bd7d8ff9
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
2017-08-18 16:56:12 -06:00
Laxminath Kasam
605b42f92c audio-lnx: Rename folders to new flat structure.
Kernel audio drivers can be categorised into below folders.
asoc - ALSA based drivers,
asoc/codecs - codec drivers,
ipc - APR IPC communication drivers,
dsp - DSP low level drivers/Audio ION/ADSP Loader,
dsp/codecs - Native encoders and decoders,
soc - SoC based drivers(pinctrl/regmap/soundwire)

Restructure drivers to above folder format.
Include directories also follow above format.

Change-Id: I8fa0857baaacd47db126fb5c1f1f5ed7e886dbc0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
2017-08-18 16:56:12 -06:00