Commit Graph
100 Commits
Author SHA1 Message Date
Sudheer Papothi 691eeafacf ASoC: pcm-routing: Add WSA VI sense macro to support capture
Add WSA VI sense macro to support VI sense capture.

Change-Id: I704aa6fbcb3908c0b76c82c941818b64e1d4598b
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2021-12-09 14:48:10 +05:30
Sudheer Papothi 0d3cccf90f ASoC: wsa883x: Handle PA_ERR interrupt on WSA speaker
PA_ERR can happen during speaker path setup. Log the
error status in the interrupt handler and clear the error
status for next audio playback to resume properly on
the speaker.

Change-Id: I5800d9505a3036127097745aaa880b73b3e87f30
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-12-09 14:46:29 +05:30
Sudheer Papothi 194d1fa42d ASoC: tx-macro: Allow regcache sync during clock enablement
Allow regcache sync during clock enable to make sure the registers
are in proper state before the usecase.

Change-Id: I8a9214e460c7f77759d1956e0e7e2d6b2f5b3d3a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-11-16 22:27:06 -08:00
Sudheer Papothi d4199571da ASoC: wsa883x: Update register sequence to reduce CnP
Update register sequence of WSA883x codec to reduce CnP
during bringup and teardown of speaker path.

Change-Id: I348a55e1324b5c26a36b8d7c78edf52a66e40381
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-09-07 13:26:14 +05:30
Sudheer Papothi 6167754f0e ASoC: wsa883x: Update initial register sequence
Update initial regsiter sequence for wsa883x speaker
amplifier as per hardware requirements.

Change-Id: I3cd0458980bdc5140ff81b3b8ba6bab42e72fd49
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-07-27 01:07:48 -07:00
Sudheer Papothi 21d5ac5462 ASoC: wsa883x: Update sequence for temperature
Update sequence to enable temperature sensor in wsa883x to
read proper temperature measurement.

Change-Id: I7db16344a92b82539929511bd0de322ed086beb7
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vangala, Amarnath <avangala@codeaurora.org>
2020-05-14 11:09:41 -07:00
Sudheer Papothi 59fd55ccc0 Revert "ASoC: wsa883x: Add support for VBAT monitor"
This reverts commit eecf60dcb58fbb2dc75acc834ff8d5edd519c4fa.

Change-Id: Id5cd06a70aab59e0bbd83985526078572d126457
2020-05-13 05:26:12 -07:00
Sudheer Papothi a4023899e1 ASoC: wsa883x: Disable interrupts during bootup
Disable interrupts while bringing codec out of reset to avoid fake
interrupts.

Change-Id: Iec1e6c67429b7424693c2628e6f6d121a4c9ce71
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-04-01 20:58:27 +05:30
Sudheer Papothi 9a354de6de ASoC: wsa883x: Update speaker playback sequence
Update speaker playback sequence on wsa883x codec to
avoid click and pop and loss of VI sense data on speaker.

Change-Id: I8ec7072b63bef6c2e7bd64c96df4d98852c4f40d
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-04-01 20:57:07 +05:30
Sudheer Papothi 1f2565b4f8 soc: soundwire: use clock stop instead of clock pause
If soundwire slave supports clock stop mode, use the
clock stop mode instead of clock pause to avoid bus clash
interrupts.

Change-Id: I6eb0c76ffc0785c40d086f18ca16769a463f2e89
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-02-07 06:11:05 -08:00
Sudheer Papothi 3cc1e9ec64 ASoC: wcd938x: Update hardware sequence for LDOL voltage
Update wcd938x codec hardware sequence for LDOL voltage.

Change-Id: I863c0832277d3d0533cdd97f15d1576c47cc4d1e
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-01-21 11:09:22 +05:30
Sudheer Papothi ae5c363ae2 soc: soundwire: Update bus clock frequency based on usecase
Some usecase needs soundwire bus clock frequency to run at
lower clock rate for better power and performance. Update
soundwire bus clock frequency based on usecase.

Change-Id: I2e786d9f5d5d2ec3841daa934802eeafa79a8f6c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-01-14 01:08:08 -08:00
Sudheer Papothi 0ec67dd21a ASoC: wcd938x: Add support for ADC modes
Different ADC modes need different clock rate. Update clock rate
based on the ADC mode.

Change-Id: Idaeda95a15e99038927de115727ece897bba7c29
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-01-10 18:27:45 +05:30
Sudheer Papothi f415500ef7 ASoC: bolero: check clock source before clock switch
Check soundwire clock source before clock switch to avoid
redundant soundwire device suspend for the same clock source.

Change-Id: I613789b23c171959a60c9a059a30b3f1494f3dfa
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2020-01-03 02:50:56 +05:30
Sudheer Papothi 339c411726 ASoC: bolero: Update TX HPF sequence for AMIC
Update TX HPF sequence for AMIC to avoid pop during
audio capture.

Change-Id: Ib70fc5cd05f67c97977db96487294bfe14f554ad
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-12-18 20:37:39 -08:00
Sudheer Papothi 8c50f2f787 soc: soundwire: Check for clock source before clock switch
Check for soundwire clock source before clock switch to avoid
redundant clock switch for the same clock source.

Change-Id: I8a7a116cc956f427af677b413928dace5a39a23d
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-12-12 17:02:32 -08:00
Sudheer Papothi fc3adb04c4 ASoC: bolero: Use TX MCLK for non-island mode usecase
Use TX MCLK for non-island mode usecase.

Change-Id: Iff8f8efd3e83b09e5323abe19aabddb8c4de1964
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-12-12 17:02:02 -08:00
Sudheer Papothi d50a581e04 ASoC: bolero: Add concurrency support on audio capture path
During voice activation and audio capture concurrency usecase,
there is no common reference count for DMIC clock enablement,
results into mute when one usecase tears down. Change enables
a common reference count in bolero codec driver between voice
activation usecase and audio capture usecase to avoid mute
during VA and audio capture concurrency.

Change-Id: I424c941178d7e9ff91288a50ba27605b2b9d3abe
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-12-11 15:06:42 -08:00
Sudheer Papothi 03eeaf15cd ASoC: bolero: Update the sequence for native audio playback
Update the clock sequence for native audio playback to avoid
any distortion or change in gain during native audio playback
usecase.

Change-Id: Ia9aaa63f3e476b49a07d49b794f4120ed55bac47
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-12-03 06:02:06 +05:30
Sudheer Papothi 8a8b12b245 soc: soundwire: Update ssp period for fractional sample rates
Frame sync for fractional sample rates is different. Update
ssp period based on frame sync of fractional sample rate
for synchronization of the data channels.

Change-Id: I25eaa5195abcdfad54cfed09beb0abe5aff2499a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-21 11:07:38 +05:30
Sudheer Papothi a6f808f1c8 ASoC: wsa883x: Add support for subsystem restart
When subsystem restart triggers, reset the wsa883x codec.

Change-Id: I2378281efbd601241b8ea36379db54727896a6e2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-19 17:25:43 +05:30
Sudheer Papothi edbc522254 ASoC: wsa883x: Add support for interrupt handling and variant
Add support to handle wsa883x codec interrupts and runtime
detection of wsa883x variant.

Change-Id: I06fc113a390c04e890062761cff8ae7436acb662
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-19 03:58:54 +05:30
Sudheer Papothi 55fa597e30 soc: soundwire: Avoid bus clash during clock stop
Mask bus clash interrupt before clock stop mode to avoid
misfire of the interrupt. Clear and enable the interrupt
after clock is enabled.

Change-Id: I494073a668d298eef466c0f10ab202c3c69f9968
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-18 15:21:16 +05:30
Sudheer Papothi 921b8657ca soc: soundwire: Update soundwire register access sequence
Update soundwire register access sequence based on the
hardware version.

Change-Id: I6dbdd884f87b62fce4e9f7074c6ccdcdac8456b8
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-18 12:11:11 +05:30
Sudheer Papothi cef55160eb ASoC: rx-macro: Update rx droop based on sampling rate
Update rx droop based on sampling rate to avoid change in
gains between different sampling rates.

Change-Id: Icb2b0bc51a61395c2ee96f63c29555614fe9e505
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-11-15 23:23:49 +05:30
Sudheer Papothi 8e9a0aecdd ASoC: wsa883x: Update dapm path sequence
Update dapm path sequence for speaker amplifier.

Change-Id: Ia5fcd7d4574d990ef42e6b3e16b3ddd81841d4bc
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-10-31 23:49:10 +05:30
Sudheer Papothi ac0ae1c298 soc: soundwire: change ssp period based on frame shape
Change SSP period based on soundwire bus clock rate and frame shape
to avoid any synchronization issues.

Change-Id: I376958c6b92eca28b857c4c7c9948b1e56818657
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-10-25 10:16:33 +05:30
Sudheer Papothi af0a66b78a ASoC: wsa883x: Add support for wsa883x speaker amplifer
WSA883x is a speaker amplifier with soundwire interface and
enumerates as soundwire slave. WSA883x supports audio playback
on speakers and has temperature sensors for better speaker
protection and enhanced boost control support. Add software
driver support to enable WSA883x speaker amplifier.

Change-Id: Ib9cf2eebdda5ce331154bc786f059c5757f34fa2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-10-11 02:00:27 +05:30
Sudheer Papothi 92bf3feadb ASoC: wcd938x: Update wcd938x initialization sequence
Update wcd938x codec initialization sequence as per hardware
requirement.

Change-Id: I17989e3f159d106eb9de6b1b8f660a647962539c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-20 00:47:15 +05:30
Sudheer Papothi edc65200d0 ASoC: wcd938x: Add debug support for WCD938x soundwire slave
Add debug support for WCD938x soundwire slave register access.

Change-Id: I5984a04cf144e7e858addc5cd060e0ec1264f2a6
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-17 09:05:01 +05:30
Sudheer Papothi bc3f1e5ac7 ASoC: tx-macro: Disable wakeup source for soundwire tx data gpio
soundwire tx data gpio is wakeup source capable. Disable the
interrupt capable during voice activation usecase to let the
device enter into power collapse during voice activation usecase
on headset.

Change-Id: I64a0b5da249dd3da37310fb80909a0ac5fefae54
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-17 04:03:10 +05:30
Sudheer Papothi 72fef48d6b ASoC: bolero: Update init registers for tx and rx paths
Update init registers for tx and rx paths in an array.

Change-Id: I2738af7639ffec05b5c93e86a2a3f4cf7ccb36fe
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-15 00:13:35 +05:30
Sudheer Papothi 504064bad0 ASoC: wcd938x: Update soundwire slave clock rate on WCD938x
Update soundwire slave clock rate based on power mode on
WCD938x codec for better power numbers.

Change-Id: I6719d7eab7562bf4fe45b3e11fbae6e0a629f9b1
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-13 16:19:33 -07:00
Sudheer Papothi 96c842a261 SoC: soundwire: Update debug soundwire master read/write functions
Replace debug read/write register functions with
swr_master_read/swr_master_write to support different interfaces to
access soundwire registers.

Change-Id: I377bb927ee769a18c0179045953a521d0a83057f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-09-02 11:11:50 +05:30
Sudheer Papothi 594cedb3dd ASoC: codecs: Use resource managed function calls during irq exit
wcd_init_irq uses resource managed irq addition. Similarly,
use resource managed irq deletion in wcd_irq_exit.

Change-Id: I67c702c1d2fbec0c7fd496672fae03a82cb63048
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-26 23:12:45 +05:30
Sudheer Papothi c0f75b7727 ASoC: bolero: check for port validation before configuration
Check for valid port before mux configuration.

Change-Id: Iaa32925f0c23305a2a3cedd0e476372aac380e0c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-19 22:52:56 +05:30
Sudheer Papothi 88c75963a4 ASoC: wcd938x: Update mibias configuration on WCD938x
Apply micbias configuration from device tree for WCD938x for
Kona target.

Change-Id: I45a47eb54f9fffb88259ba7e69633e3d3ebcb6a4
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-15 15:07:42 +05:30
Sudheer Papothi 06a4c648f0 ASoC: Add support for event listener from the codec
During low power island mode, register to event listener
to process soundwire inband interrupts from the soundwire
master driver.

Change-Id: Ib15f5ec59ea19010dbb8f9744de76bfc2ca7eebb
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-08 05:22:11 +05:30
Sudheer Papothi 72ee264c0c SoC: soundwire: Add support to register for event listener
Add support to register/deregister for event listener to listen to
headset interrupt events during low power island mode.

Change-Id: I9d05261003ef9e4783e03b3acb529c864c07cbec
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-08 05:22:06 +05:30
Sudheer Papothi c51afbc522 ASoC: Kona: Disable wakeup capability for DMIC45 clock gpio
DMIC45 clock gpio generates dmic clock on the gpio line when the audio
capture starts on DMIC4 or DMIC5. But the same gpio is also an
wakeup capable interrupt source. So, during audio capture usecase,
GIC receives interrupts continuously as clock gpio toggles. Disable
wakeup capability for DMIC45 clock gpio to avoid interrupt generation
to GIC during the audio capture usecase.

Change-Id: I7793455fd1034a5d391c6a163ca776c6ed0c9b89
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-06 17:49:16 -07:00
Sudheer Papothi 124ec09342 ASoC: msm-cdc-pinctrl: Add support to control wakeup capable gpios
Some clock and data gpios are also treated as wakeup source capable
interrupts. Add support to control the wakeup capability based on
the usecase.

Change-Id: I32a12f004afbf04f82e40be62747b0af8836be82
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-08-07 06:18:00 +05:30
Sudheer Papothi d76c274099 ASoC: wcd938x: Fix micbias droop on WCD938x codec
Fix micbias droop on WCD938x codec.

Change-Id: I8df99dea118750134570c372fc153db9873f8827
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-30 05:19:46 +05:30
Sudheer Papothi 6cc7f52a6d ASoC: bolero: tx-macro: Fix clock sequence for headset SVA
Fix soundwire clock sequence for headset SVA usecase to avoid
tx clock voting during low power SVA usecase.

Change-Id: I9613eee6a0b66560fa1108b4887af71507d345e7
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-25 00:00:18 +05:30
Sudheer Papothi 06f43418bf soc: soundwire: Avoid wakeup after clock pause
Unlock mutex for soundwire bank switch to process the
interrupt before clock pause and request for clock switch
to switch the soundwire clock source.

Change-Id: Idea4306a0e326864431e7cf956044383bf1790db
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-24 02:43:30 +05:30
Sudheer Papothi 07d5afc4cb soc: soundwire: Enable soundwire slave host irq
soundwire slave devices gets reset resulting in setting
host irq to default state. Enable soundwire slave host irq
to process slave interrupts.

Change-Id: I49c3482a22b89fe2a28768edcf7d1e19ba0b978f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-17 06:25:45 +05:30
Sudheer Papothi d5338db59a ASoC: wcd938x: Enable LDOH in headphone path
Add support to enable LDOH in headphone path when equalizer
hardware installed on the device.

Change-Id: Ia575544650e5d03404fc77e3c2a9db729a2997a5
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-13 13:03:05 +05:30
Sudheer Papothi b2bfcfc756 ASoC: Kona: Add support for moisture detection
Add support for moisture detection with duty cycle on WCD938x codec.

Change-Id: I1e5ceb39f031ea7f7efdd38706845b71b093a479
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-07-10 22:02:11 +05:30
Sudheer Papothi 6a9cb8b6bd asoc: wcd938x: wakeup device during headset detection
Use soundwire device wakeup API to wakeup soundwire master
during headset plug detection.

Change-Id: Icddd558df382146bb2989926d2e92e627b5a844f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-21 21:29:49 -07:00
Sudheer Papothi 384addde09 soc: soundwire: request lpass core and audio votes
Soundwire requires lpass core and lpass audio core to be enabled
to receive interrupts and soundwire register read/writes. Change
enables lpass core and lpass audio core in interrrupt service
routine and during register read/writes.

Change-Id: I56da2fc6efe7dfb1a7d59937b123b3972f633448
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-21 15:24:16 -07:00
Sudheer Papothi 296867b416 ASoC: bolero: tx-macro: Update VA macro clock sequence
Update VA macro clock sequence for headset detection during
voice activation usecase to avoid soundwire bus clash interrupts.

Change-Id: Ic004d43aef9c8a9003b3028c122e6fb6a06fa58d
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-21 08:25:29 +05:30
Sudheer Papothi d6d524d678 ASoC: Kona: Make addition of aux codec as optional
Check for aux codec count and avoid aux codec registration
if the count is zero.

Change-Id: I540dcc8f14f138b8bd673d88ab7e033779a90843
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-19 02:36:31 +05:30
Sudheer Papothi 0016db19a7 soc: soundwire: Add support to dump bulk register writes
Add support to dump soundwire bulk register writes to
analyze port configuration on both soundwire master and
soundwire slave devices.

Change-Id: Ie02b2a0ba40aa5a0b4243022e439e1b545688143
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-18 00:44:30 -07:00
Sudheer Papothi 776bf8e63e ASoC: wcd938x: Update DMIC enable sequence on WCD938x
Update DMIC enable sequence on WCD938x codec to support
audio capture on WCD DMICs.

Change-Id: I432bbc3a89ad6cbf968fa6474b9bbeb4924e2791
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-11 04:32:21 +05:30
Sudheer Papothi 324b495656 ASoC: bolero: Remove unused audio map routings in bolero
Remove unused audio map routing from bolero codec to avoid
index mismatch for mic path enablement.

Change-Id: I09365f54ac5906df9568c78db902000a2dd790eb
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-11 04:18:39 +05:30
Sudheer Papothi 3590b312ba soc: soundwire: reduce the auto suspend delay to one second
Existing delay for soundwire to auto suspend is 3 secs. Reduce
the delay to 1 sec to improve the power numbers.

Change-Id: I0c13439567eb73b80897f4cf1bbcfb1eded94a9c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-06-04 23:51:30 +05:30
Sudheer Papothi ba445bfe2d ASoC: codecs: Add support for LPASS Audio HW vote
Add support for LPASS Audio HW vote needed for low power AMIC
VA usecase.

Change-Id: If6642d418dbf2cc9773fbd0ec0fe35c30afac140
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-05-31 10:37:27 +05:30
Sudheer Papothi ff2733c0eb ASoC: Kona: Avoid static route between cpu and codec dai
Currently ASoC core creates a static route b/w
playback/capture widgets of cpu and codec dai
if they are part of the same dai-link. However
this will cause codec path to get powered up first
followed by the backend dai start during device
switch use-case where the front-end is not closed,
leading to audio playback failure if either bit-width
or sample rate is different. Set the dynamic bit of
backend dai dailink to update the backend parameters
before codec path setup.

Change-Id: Ic80755a5672849f527d5d696d31174a62997aca2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-05-29 04:58:18 +05:30
Sudheer Papothi 3fc2d77434 ASoC: Kona: Add ignore suspend for Digital Mic4 and Digital Mic5
Add ignore suspend for digital mic4 and digital mic5 to avoid suspend
during system suspend.

Change-Id: I13d70510e56835867ee7a56a6af9bf223a64b751
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-05-11 14:15:02 +05:30
Sudheer Papothi cf3b406a5f ASoC: bolero: Fix issue in clock sequence during VA concurrency
Fix issue in clock sequence when switching between VA clock to
TX clock and viceversa during VA usecase.

Change-Id: I4a7d423916b70b4b3c54d0d9a28b8ea874584525
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-05-09 22:45:25 -07:00
Sudheer Papothi 79c9075948 soundwire: Suppress errors due to unsupported slave functions
Suppress the errors from the soundwire master runtime suspend
and runtime resume, if the soundwire slave devices does not
implement the functionality, that avoids pm runtime calling
the runtime functions.

Change-Id: I513a37f37e349a0c435295056df8625f284e13e6
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-05-01 05:48:39 +05:30
Sudheer Papothi 55789b7239 ASoC: bolero: va-macro: Fix clock sequence during path enable
Fix mismatch in TX clock count during three mic VA usecase.

Change-Id: I5f86fc8bf4f379e14ed8e15376f918b622bc221f
Signed-off-by: Sudheer Papothi <spapothi@quicinc.com>
2019-04-20 01:01:49 +05:30
Sudheer Papothi 7601cc6db6 ASoC: Bolero: Vote for LPASS HW core during register access
Vote for LPASS HW core in soundwire clock request before
soundwire register access to avoid LPASS going to sleep.

Change-Id: I1e54ece19130cf6bd63fbf75a8a0716856c3b73e
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-10 12:45:29 -07:00
Sudheer Papothi a7397947d3 ASoC: bolero: Enable RCO for VA usecase
Add support to enable RCO during VA usecase.

Change-Id: Ic6b640f62a8a88b5d5b616fc05798917913356ed
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-11 01:14:19 +05:30
Sudheer Papothi bb650fc65c ASoC: wcd938x: Add support for wcd938x codec variants
Add support for wcd938x codec variants. Changes detect the
variant and enable the corresponding features supported by
the codec variant.

Change-Id: Ib990465b42b903174391bb87115af47431b862ec
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-10 05:09:56 +05:30
Sudheer Papothi e826ba5129 ASoC: bolero: Enable TX clock during VA path setup
Enable TX clock during VA path setup for SVA usecase to make
sure LPASS audio is in active state.

Change-Id: Ic835905e48919e3c97ab2b82b43b90a146f4f32e
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-07 22:42:25 -07:00
Sudheer Papothi 66d6fd1364 soundwire: Vote for LPASS HW Core before soundwire register access
Vote for LPASS HW core before soundwire register access to avoid
register access violations.

Change-Id: Ie7ff73bbab64825bf07736f11ef9685e732fc8ae
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-05 19:16:37 +05:30
Sudheer Papothi e456c2ca41 ASoC: boloero: Add DAPM widgets for soundwire clock
Add DAPM widgets for soundwire clock on Tx path and
VA path to enable the desired clock source based on
the usecase.

Change-Id: I48b04e63317cefd8bf12d58b002efb37087f8dc2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-04-01 11:34:10 -07:00
Sudheer Papothi 828b3114fe ASoC: bolero: va-macro: Fix ioremap in va macro probe
Update va-macro ioremap offset properly during probe.

Change-Id: I3c4b1d6ba24b7935c3ba047059f72ed06bdafe4f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-03-19 03:04:57 +05:30
Sudheer Papothi 3557d14ce8 ASoC: wcd938x: Update routing for HDR recording
Update audio routings for HDR recording on WCD938x codec
for AMIC1 and AMIC5 paths.

Change-Id: I67b93fe11c7a5b16ffd4bb8b58431be9dfba615e
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-03-13 14:05:19 -07:00
Sudheer Papothi a1351b945f ASoC: codecs: Add support for soundwire clock for VA usecase
Add support for soundwire clock for VA usecase.

Change-Id: I1f56678ad36e4ae6c8dd458c0b7e96e847694050
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-03-07 18:55:11 +05:30
Sudheer Papothi f2afc390ce ASoC: bolero: Check for valid handle before pm_runtime_resume
Check for valid handle before pm_runtime_resume in bolero register
read/write functions to avoid dereference.

Change-Id: I34d567e7575202817f4fcda784d0f3df2ed77bde
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-03-01 08:09:50 +05:30
Sudheer Papothi d19d0c5636 soc: soundwire: Handle interrupts based on soundwire version
Some of the interrupt status bits of soundwire interrupt registers
are different in different versions of soundwire. Change is to
handle the interrupts based on soundwire version.

Change-Id: Icac65c9986a3d5724da6343b4202931f04f57f25
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-02-27 07:28:26 +05:30
Sudheer Papothi d6c61bd617 ASoC: wcd938x: Clear tx hold hpf after device path setup
During capture path setup, tx path hpf is set to hold.
Clear tx path hpf hold after device path setup.

Change-Id: I3299fc5d84d6e86e23c9ef150c8770ef9d59a870
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-02-23 07:36:18 +05:30
Sudheer Papothi 17875f5c71 ASoC:kona: Add soundwire DMIC port configuration on kona
Add soundwire DMIC port configuration on kona. This change
will enable audio capture from WCD938x codec DMICs.

Change-Id: I5b9e9a65f5bc021d4b19a838c17b56b3cb9eb4eb
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-02-06 23:15:30 +05:30
Sudheer Papothi ff649f9d73 ASoC: bolero: Enable clock Fs generation in bolero codec
Clock Fs generation registers are in always on domain but
is needed for all the playback and capture usecases. Enable
clock Fs generation in the boloero codec after the clock
enablement.

Change-Id: I3a9cf14660f871b26ec96ef8b3e245ba5dadeb78
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2019-02-05 23:56:32 +05:30
Sudheer Papothi 63f4815535 soc: swr-mstr: Support to execute commands on command ignore
If the optional commands/registers in soundwire slave(s) are not
implemented, then soundwire bus will ignore the corresponding
commands and executes the next commands in queue.

Change-Id: I24dd929975218a150717f03f5c17c2be173a5005
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-26 00:51:09 -08:00
Sudheer Papothi d61f0a4c25 ASoC: sm8250: Add soundwire port configuration
Add soundwire port configuration for sm8250 target.

Change-Id: Id9554c1075d07adb2258a7450453032185f17e01
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-17 15:31:10 -08:00
Sudheer Papothi 4c322b1c80 Soundwire: Fix soundwire master port configuration
Existing soundwire master controller driver uses static tables
directly for soundwire port configuration. But, this is not
scalable to add support for new targets. So, define platform
specific soundwire master port configuration from machine driver.

Change-Id: I37d499c77914b413e6e16ab2689dbaae8fcd194c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-17 15:25:48 -08:00
Sudheer Papothi a3e969d6f0 ASoC: bolero: Add support to retrieve soundwire port configuration
Add support to get the platform specific soundwire port configuration
for soundwire master ports.

Change-Id: Ie1d32a77d534f6c3f397936b85c025b14d01f321
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-17 14:30:55 -08:00
Sudheer Papothi 3d1596e2c6 soc: swr-mstr: Add support for platform specific port configuration
Different platforms have different configuration for soundwire
ports. Add support to get the port configuration information
from the machine driver.

Change-Id: If2c006c4d4a43e2a8dc67c076f6d1c0f36eae16b
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-17 12:16:26 -08:00
Sudheer Papothi d1c3e9b51e ASoC: wcd938x: Add support for codec wakeup
Add an API to wakeup codec from sleep.

Change-Id: I90de653947f794cbc4a47a91bd5f22251440ef75
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-11 18:12:20 -08:00
Sudheer Papothi 4d31c00084 asoc: wcd938x: Move APIs from internal header file
Move APIs from internal header file for access to other
audio modules.

Change-Id: Ib34d052e4beb63c6805abacc3c99dbff18c9af6c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-11 18:11:53 -08:00
Sudheer Papothi c9443c282a ASoC: wcd938x: Add support for wcd938x codec
WCD938x codec is a soundwire based codec that supports AMICs, DMICs,
Headphones, Ear and Aux paths. Add support to enable all device
paths of wcd938x codec.

Change-Id: I81b5e603ef73afba74b8d2274012752f9ca5cb6f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-12 07:34:26 +05:30
Sudheer Papothi 6abd2debae SoC: swr-mstr: Add support for device wakeup
Add support for soundwire device wakeup through bus driver.
These APIs will be used by slave driver through bus driver
to vote and unvote for master wakeup, when it requires
master for register access operations. Master will be
aware of the slave usage with the vote for device wakeup.

Change-Id: I24f0ec0344f05926dc866edb04294cb31348e1ce
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
2018-12-10 18:58:12 -08:00
Sudheer Papothi 1b9932e154 SoC: soundwire: Add support for device wakeup
Add soundwire API to wakeup soundwire master and slave devices.
These APIs will be used by slave driver to vote and unvote for
master wakeup, when it requires master for register access
operations. Master will be aware of the slave usage with the
vote for device wakeup.

Change-Id: Ifa93f35ab2cffba778cd2fd9a2461e5a58445b75
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
2018-12-10 18:57:30 -08:00
Sudheer Papothi 7c067e898b Soundwire: Check complete soundwire slave device ID
Soundwire slave device ID is 48 bits. Check the complete
soundwire slave device ID during enumeration for proper
slave driver registration.

Change-Id: Iac11eb818a29c227947f3cf50cafd336b4e410a2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-12-06 10:51:01 -08:00
Sudheer Papothi 2498e397f4 ASoC: wcd934x: Avoid soundwire enable when codec is in power collapse
During SSR, when the playback on speaker gets started before codec
is out of digital core power collapse, results in soundwire
register read/write failures. Check for codec power state before
enabling the soundwire during speaker device path enablement for
playback usecase to avoid soundwire register read/write failures.

Change-Id: I3b45ef0c34ad4f97aad89afaf719989ffbda7485
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-10-01 11:50:15 -07:00
Sudheer Papothi eb8d8cb100 ASoC: wcd937x-mbhc: Add support for headset moisture detection
Add support for headset moisture detection on wcd937x codec.

Change-Id: Ib9021869a5d3a0d4e5b8a912b235b68fad90f94f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-08-20 14:07:25 -07:00
Sudheer Papothi 4b9d12f1e9 ASoC: wsa881x: Update temperature value during device down
when wsa881x device is down, reading temperature from driver
returns error. Instead of propagating the error, return the
cached temperature value to the thermal framework to avoid
iterative calls to read the temperature that results in
excessive logging.

Change-Id: I529c83eafec63004c2469bf16a0b53bd5accbdbb
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-08-18 05:24:36 +05:30
Sudheer Papothi a45a56e824 ASoC: wcd-mbhc: Avoid headset jack corrosion due to moisture
Detect moisture in the headset jack and avoid headset jack
corrosion due to presence of moisture over prolonged duration.

Change-Id: I0227e516feb58c96ddf6a8fbc32423bfe7733ca6
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-08-16 03:27:20 +05:30
Sudheer Papothi 68fa135810 ASoC: sm8150: change of_property_read_bool to type u32
of_property_read_bool prevents an overlay to set it false
as /delete-property/ is not supported in device tree overlay.
Use of_property_read_u32 to read property to allow it to
be changed in overlay device tree.

Change-Id: Ic1ae38d99999b3ff7e268a6360d55fc2624c0b6f
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-07-27 01:04:50 +05:30
Sudheer Papothi 9b51e3e0ca ASoC: audio-ext-clk: Replace clock dummy ops
Replace clock framework's clock dummy ops with audio external
clock ops to access correct structure that avoids out of bounds
memory access.

Change-Id: I51db63bba414cff0343cbf68e90b1e1bbf7929ac
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-07-21 05:20:10 +05:30
Sudheer Papothi c07b37a4c3 ASoC: msm-pcm-routing: Add mixer control for AANC noise level
Add mixer control for AANC noise level to control AANC noise
level from userspace when AANC functionality is enabled.

Change-Id: Id47b77e054008853e5b5ddb0e9cc126626b407b8
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-07-03 00:42:00 +05:30
Sudheer Papothi af431ad7c9 dsp: q6afe: Add support to control AANC noise level
Existing software supports only high AANC level with minimum noise.
Requirement is to support different noise levels when AANC is
enabled for better AANC effect.

Change-Id: I343d00473937f68eb86533e88b25083d554b79b1
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-06-23 01:53:02 +05:30
Sudheer Papothi 8d34b2e801 ASoC: Add support for audio drivers compilation on kernel-4.14
Add support for audio drivers compilation on kernel-4.14.

Change-Id: Id7689cef4ae7cdb6711fed386d2a6b0d427b3fc3
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-06-19 03:43:54 +05:30
Sudheer Papothi ede0f05017 ASoC: wcd-mbhc: Fix detection of special headset
Comparison of headset threshold during special headset detection is
not proper. This results in to improper detection of special headset
and recording usecase failure on special headset. Fix the special
headset detection issue by adding proper check condition while selection
of headset threshold from device tree.

Change-Id: I4c338ded1bcb9fa643e1584eb23c6260fe52acee
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-06-15 04:06:31 +05:30
Sudheer Papothi c9dd3be3c3 ASoC: wsa881x: Avoid query temp during suspend
Runtime suspend in slimbus driver makes QMI call which takes
wakelock and result in first system suspend to fail. As a result
of first suspend fail, POST_PM_SUSPEND event is dispatched to
thermal core which registered to pm notifier. WSA being one
of registered thermal zone gets query for temperature, and makes
slimbus reads/writes which will result in runtime resume of
slimbus driver to happen. System suspend fails again continuously
in this endless loop as slimbus runtime suspend will make QMI call
again.
Update wsa temp sensor to handle suspend event by registering to
pm notifier and ignore the temperature request from thermal core
at resume. This will avoid slimbus reads/writes during suspend in
progress and allow XO shutdown to happen.

Change-Id: Id13a9701cffb1231ef7d563cbc30756fd71d5868
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-05-21 11:53:21 -07:00
Sudheer Papothi e3842cf831 ASoC: Add audio support for sdmshrike
Add audio support for sdmshrike.

Change-Id: I0b86ab7b123a3215617b81a645202785f6810d02
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-04-11 10:53:22 -07: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
Sudheer Papothi 8bb6f40917 ASoC: AQT1000: Fix hardware sequence for AQT1000
Fix hardware sequence for AQT1000 as per hardware
requirements to bring codec out of reset for playback
and capture usecases on headset.

Change-Id: I7419aec36aefc2887583308a60d1ea246d000469
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
2018-03-05 18:24:25 +05:30