Avoid copy to user more than requested buffer size
to avoid memory corruption.
Change-Id: Ibf1607f777a358ebd16fd8b8728809afda34eba7
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
To synchronize codec read/write with PDR/SSR, take
lock before update of mclk enable flag.
Change-Id: I3e4faa27e2e6af71fd767a6be43bbb9d234c7192
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Move the enable and disable of wakeup capability of
swr_tx gpios to clock setup to disable or enable it
in all required usecases.
Change-Id: I9fb76926d8520c382e7f19777190357c50f98994
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
During SSR up event handler, if soundwire state is
already up or auto suspend jiffies is not completed,
ensure put in suspend/SSR state.
Change-Id: I853f42d125eb5a60e3f1f065a60516877e3a463c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
tinycap test can attempt with different size to
read from driver and need to avoid access more
than period size.
Change-Id: Ifa4ddfb086bd83aa981da62e88da3a9395f5aabc
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Ensure soundwire clock re-setup always for SWR AMIC usecase
startup and at end of usecase.
Change-Id: Ie0e94a456c8e5e529a2a7435ded094483e369f01
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update widget order for widgets VA_MCLK and VA_SWR_PWR.
As both are having widget supply priority -1, sometimes
dapm is triggering both widget callbacks simultaneously
causing race condition in handling the SWR clock release
with proper request for VA_CLK instead of TX_CLK and
next usecase powerup is impacted.
Change-Id: I3d3a3fadcdb897287ad070dc9e81e354c6f970b0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
During PDR, in dynamic load module if attempted
before all module state ready on AVS it may fail.
Add AVS state check before send load module cmd.
Change-Id: I70a5a5b11f5661042d704222759608179ba9d47c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
To set correct swr clk rate in concurrency,
use WCD ADC modes as status mask bit to confirm
ADC paths active and control set clock rate.
Change-Id: Id3401d6ed59bd617e0751e7c704268346b36dac4
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Sometimes during device switch in recording,
observe size 0 is return from DSP due to EOS
handling. For ALSA pcm_read to unblock, buffer
appl_ptr is elapsed without actually updating
the buffer. And userspace copies the stale
data(old buffer) causing issue sometimes.
Reset the buffer for that period_size in
such cases instead of transfer stale data.
Change-Id: I0d3ac133a8d95fad0710586e3e947410a41c9c5a
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update PDM_WD bit only at startup and teardown of
speaker playback.
Change-Id: If385c0f4d99b7f5aa4ccd8b1ee94c4afa6754518
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
As va-macro has fs_clk gen, ensure va-macro
is registered before other macros.
Change-Id: I8283dc11817caf0c208fe231132951a7a79b7d51
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Soundwire port is misconfigured and causing
noise issue randomly. Ensure reset and powerup
WSA speaker amp for every usecase.
Change-Id: I857ff2939900ab60ec7208554e340d7d2c693fa9
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For soundwire version 1.6, HCLK remove HW controlled
at bootup before soundwire frame generation status check.
Change-Id: Idc2420d086261766ea4e79f69320f12c4d6b2259
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In ADIE loopback, need PA enable to
avoid mute. Ensure PA enable post slave
path setup and FS clock.
Change-Id: I4df9d7b919325b50f237f31338859e1b5b34b2eb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For power saving during RBSC, need to vote for minimum
or zero current on load for respective regulator to
enter LPM mode. Add required support from audio WCD/WSA
to vote accordingly during suspend/resume.
Change-Id: I578195b84ba18a0b69dde3b93a3f6461efa85f7f
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Standalone mixing path on WSA is mute.
Enable soundwire path is not happening,
add respective call in mixing path widget
callback to setup soundwire and WSA.
Change-Id: Ia8df0fdcc4a022e4b86c11283dd3606412a2fb69
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Restore change to retain audio_hm voting and
ensure AOP hang issue not seen by masking interrupt
wakeup of swr pinctrl pins.
Change-Id: I51bf36d6d6b0999abf10a4bc94cce900d1adf1d5
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For island SVA usecase, ensure register for
AFE in-band interrupt.
Change-Id: I24e6dfadfaa38919114000fb09a7906264020cd9
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update current limit and VAGC settings to
limit the current drawn at chipset causing
target reset.
Change-Id: I8cc1c91d45f1e27c236c00b5b0f851502f69d82c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Retrieve sample rate for VI sense and update codec settings
based on it.
Change-Id: If4341bac77ecae290c44c4412a39b9e5cbf46ac0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For RX DC droop setting, ensure update proper
value during powerup/powerdown based on
sample rate.
Change-Id: I269d41452911e1999b2dbdf4fa22e383aa973848
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Enable compander based on mixer ctl set for ear path.
Change-Id: Ie6287469f1baa9dba239d369bd5a29ed8e44522f
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
During SSR/PDR, bring down wsa at down
event and restore after SSR up event.
Change-Id: I9a8d3c109144cb0a911cd7597bffc220b0ce95b7
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
After playback on speaker, remove from soundwire group to
properly close the soundwire port configuration.
Change-Id: I278e7510869200bc1236eb45968bc8d986a93a96
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On lagoon, vdd-buck need to be dynamic supply.
Add required support to handle buck as dynamic supply.
Change-Id: If6c27fffe0d0c44f178e61a6eae6ef63775c8988
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update boost level setting of value 5.5v and 6v
for 8815 and 8810 variants.
Change-Id: I6e71c58bddb4958f1eda4ab4d4630bcb6073dcdb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For bolero 2.1, amic can connect on any SWR input.
Update API to check amic usecase.
Change-Id: Iced7df39b0dbaf83e77a72536e55223d3bda2289
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Enable and disable FS_CLK gen at every
mclk enable and disable call to handle
fs_clk gen count.
Change-Id: I87e1cf112a48029cf0d6e7227fcc5167e973fdad
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For bolero 2.x, update dmic clk_div to use 1.2M
instead of 600k if non-island usecase.
Change-Id: Ia057283c164de576cfd05f4c64f6db24db589ead
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In WSA analog driver, disable MCLK only if clock enabled.
Change-Id: I3a6aa42dc258e3c6ad1ceccdf74f0136338d79b2
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In bolero 2.1, VA macro has low power decimations
and support 600k only at 8k/16k. For non-LPI sessions
running at 48k will have mute data if use 600k.
Update driver to use 1.2M for non-LPI sessions.
Change-Id: If495ba8fb780bd22f188835ef87a0ec947df363c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For bolero 2.1 with SWR_TX in va macro, update SVA fixes.
Change-Id: I250df0fe476bc2c0439ab491a17dea2e7ac18707
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For fuse variant with SVA=0, ensure startup fails
to make SVA app close with failure.
Change-Id: Id35b04bae3b96fa1aaf36b75e835922a025388e9
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Increase retry count to check soundwire link status at bootup
inorder for probe to succeed. Handle error scenario if
soundwire probe fails to cleanup device properly.
Change-Id: I4a545530e68221a1f428e05aff3d8a93b1dacf84
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update mask of wsa macro to apply sample rate
as per config send during hw_params at powerup.
Change-Id: Icf9b40fecf655c06cc60d56ac31808e886f8a49d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
for 32bit arch based builds, soundwire logical address
fails when compare with dtsi value (64bit). Update addr
type of soundwire slave addr to u64.
Change-Id: Ifda388ca66350a2bc898484cddecbbcab4d3ece4
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Clock disable at aux dac event is not needed
as rx3 widget already disables it.
Change-Id: I67feec194cdae5c6d84efcde0a2931ba8f8440dd
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For loopback of CDC_DMA_RX_1 port to slim_8_tx,
add proper switch control.
Change-Id: I58353c8cc43ac96d39a810b8e471458111f57319
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update change for audio playback and record to work
on bengal target with wcd937x codec.
Change-Id: I2f781e2132b018995f30f4192efd08732196cd28
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update PCM ID with correct values in comments.
Change-Id: Ie456481aa57f0adebb20921d8d0f0d25c7b714e0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
After master init sets COMP_CFG, wait for soundwire link
status to be connected for SWR version 1.6. Update wait
for soundwire link disconnect for all masters.
Change-Id: I0c0b34f225f88f1b3838b0aa653b57b2c7c0cc40
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
During SSR, sometimes swr get logical addr fails.
Add sufficient delay after reset and retry logic
for get logical addr.
Change-Id: I2a932e99896e0055f3b35f9b251008612f43b79f
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On receive of change enum slave status interrupt, update
slave host_irq bit for all attached slave dev_nums.
Change-Id: Idaad7a73a7ba9ab271f3fb6974f8d09df3f957b8
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Check comp status based on active and inactive request
and return once status met.
Change-Id: I75669558875d8ab6fc23a02c888e6083e15aee08
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In soundwire version 1.6 as AHB HCLK and MCLK
are decoupled, need to wait for clock stop
entry and exit scenarios to execute before
any further transactions. Keep monitor on
COMP status accordingly.
Change-Id: I03204526d7dd634a79193b55c6744edca8664d93
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Append dailinks for VA and RX-TX macros based on dtsi property.
Change-Id: Ib1f4520cd569546e5954d9295b8455f89a3212ca
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For chip wakeup registers used as interrupt mask, set
default value provided via dtsi.
Change-Id: Ie080006cb7a92e8745636c97a67b8e09ab977832
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For bengal_32 local compile fails. Update
the condition check in make to avoid compile
of wsa and hdmi modules for bengal, bengal_32.
Change-Id: I90db0a36b4c435874137d312545e3757f335fa78
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
TX_SWR_CLK widget is not needed for bolero 2.1.
Update it to retain for bolero 2.0.
Change-Id: I2b38fb807460ca31d1e968e0eb69a24ce46a531e
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
lpass client handle variable stores latest lpass hw vote.
During PDR, core hw vote release proceed to call unvote
for stale handle since above variable is set to non-zero
as part of audio hm vote. Maintain separate handles for
respective lpass hw votes inorder to fix this.
Change-Id: I432ce38b253ce6d18a25f9845fa694912718c74f
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add controls required for RX_CDC_DMA_RX_1 used for
AUX speaker path in bengal target.
Change-Id: Ia7ec59b19960e3c3f3a844406671303f72787bc1
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
From bolero 1.1, Bolero and SWR CSR moving to AHB clock
and no need to enable other macro RCG clocks.
Change-Id: I6663196a88dbf07868d6426bdda98f33e42004d1
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In bengal target, SWR TX moved to AO region.
Update SWR TX as child of VA macro and handle
respective SWR register/clock sequences from
VA macro.
Change-Id: I6b632ce56a885f2ccc8516840b0e5d270fe0b2c0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update route map, dapm widgets, snd controls for VA and
TX macros based on bolero version.
Change-Id: I6f517f2c243624d44601192295c50838c7ee0e05
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Expose API from bolero driver to retrieve version
info by macro drivers. Update bolero driver to
get version from dtsi.
Change-Id: Idc3735721de90ee4f74319537b17a530d3c125a6
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update wsa analog driver to defer probe until mclk node
is available.
Change-Id: I8c1e9dc8fe014ebd9845cf8e9fc759106bd3ffff
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update cdc-pinctrl driver to handle wakeup control
provided in any spare chip register.
Change-Id: Iaa413d4b78e0c9841e40d01d0b891da34ff79de2
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In soundwire version 1.6, hw_ctl gating is required to address
HW limitation as SW workaround to get SWR functionality working.
Change-Id: Ia0939b1271f5400319217433de658a55a05ca404
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add support back for wsa analog codec driver files.
Change-Id: I7ef6ad050b068ec8c0f0275089d670c92234686d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add support for new machine driver for bengal target.
Change-Id: Iffb189136e0ec0ae42d375d112227d4237e4b502
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On bengal target, audio core voting is not applicable.
Add support for audio HM voting in pinctrl-lpi driver.
Change-Id: I8661c981896c14899ca4d85f77507b417700b987
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add routing connection for RX_CDC_DMA_RX_1 backend
to frontend CDC_DMA hostless for supporting FM on speaker over AUX.
Change-Id: I14e4344fb6cc943ced4402d323ff6e04448806c4
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For wcd937x interrupts, need to set clear_ack explicitly
for regmap irq to clear the interrupt.
Change-Id: Ieffc20db0665fa82fe088337fbdf8b518191be3d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update mute for RX chain related to AUX (INT2) when
tearing down ear path driven by AUX.
Change-Id: I0ab2630bb681e8dc800c99245b1cd68120290c2b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update the class-h driver state machine to allow HPH and EAR concurrency.
Change-Id: I5e227bdc87929b61fef78956f3a4eba4a686873e
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Observe pop if FS clock is turned on at end of
powerup sequence. Ensure WSA PA is turned on
after FS clock to avoid pop.
Change-Id: Ic1214d361e77db252b7a90a89fc99c69f51e270b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Use proper dev handle in print to avoid compile error.
Change-Id: Ieca116199ec4c86f2ee8c1698285fff0ecababbf
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Under same pinctrl node, there are multiple gpios that
require MPM wakeup to be disabled. Update driver logic
to support disable of multiple gpios under same node.
Change-Id: I3a07e5d7621da4cd03b46d96ca5cec18958f1ebd
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
RX_CDC_DMA_RX0/1/2/3 ports drives RX0/RX1, RX2/RX3, RX4 and RX5
channels on bolero rx-macro. Update channel mask
as per these mapping and return to channel map
accordingly.
Change-Id: I2e66e601b5137ebc513527827332bbb7cde0acb3
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
INT2 chain drives AUX output to WCD.
EAR DAC on WCD can take input from HPHL/AUX chains.
Add register sequence updates to support EAR DAC
over AUX chain path also based on mixer setting.
Change-Id: I71db6c02f4579e3beba2816c1cfa5a492d91d702
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Left and right channel content can get swapped
in new cdc_dma interface.
DMA interfaces underrun results in Channels being swapped.
This issue is a side effect current SW setup for RX path:
1. HLOS Setup WCD Analog Path, Bolero CODEC.
CODEC would drive Fs to LPASS DMAs requesting for PCM samples.
2. DSP setup RX Buffers in Memory :
3. DSP Configures RD DMAs and DMA RXTX CODEC interface
(Enable CODEC DMA interface buffer and
Enable DMA LPASS_RXTX_LPAIF_RDDMA_CTL0.ENABLE
and LPASS_RXTX_LPAIF_RDDMA_CODEC_INTF0.ENABLE
If CODEC Fs, aligns with DMA interface being enabled
there is an underrun as DMA interface pingpong buffer is empty.
This results in channels being swapped.
Proposed work around while keeping current SW setup order.
Provide a workaround to Keep Fs disabled until DMAs and
CODEC DMA interface are enabled and HW could prefetch all buffers.
SW would keep existing setup order:
1. HLOS Setup WCD Analog Path, Bolero CODEC.
CODEC would drive Fs to LPASS DMAs requesting for PCM samples.
2. DSP setup RX Buffers in Memory :
3. DSP Configures DMAs and DMA CODEC interface
(Enable CODEC DMA interface buffer and
Enable DMA LPASS_RXTX_LPAIF_RDDMA_CTL0.ENABLE
and LPASS_RXTX_LPAIF_RDDMA_CODEC_INTF0.ENABLE)
4. Enable Fs Set #LPASS_RX_CDC_RX0_RX_PATH_CTL. CLK_EN to ONE
Change-Id: I7916667f5d857464cc7d77b51da307ab234cc7bb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On bengal target, audio HM voting is only applicable.
Update bolero driver to make audio HM vote if audio core handle
is not present.
Change-Id: I9abaf42c04aa8f1b89d9c08e628ab142ce99151a
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update AMIC4 over adc3 for wcd9375 as per HW sequences.
Change-Id: Ie7c3713bee67d32cb7fba042848f52bcded8f4b0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
As DMIC2 is muxed on same channel with MBHC
on soundwire port3 of WCD938x codec, need to set
selection bit for DMIC2 during recording usecase
over it.
Change-Id: Ice9b92eb964af25e47db4b3d8d25db07a82a9bf2
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
WCD938x codec can support upto 8 DMICs.
Fix driver to enable support for these DMICs
over soundwire.
Change-Id: I82b9c7c6f56271c03acee3a966dbaa4fefb62102
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
After PDR, audio avs services still are initializing state.
Avoid sending q6core command after PD up event immediately,
wait for sometime before sending the q6core ready command.
Change-Id: Ibee38db9ee1a30b7852da3d08cac7b0d06371733
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
System suspend is not handled in lpi pinctrl driver.
Register to system ops to release lpass hw vote
before apps suspend.
CRs-Fixed: 2439988
Change-Id: I334a993ead5d2abec5286fb5812d67b795d03f3c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In trinket, wsa8810 variant show higher current.
As wsa8815 settings applied for wsa8810 variant
causing the issue. Update wsa aux codec matching logic
in machine driver to apply proper gain settings
for wsa8810 variant.
CRs-Fixed: 2406074
Change-Id: I5916ae7ea8e91aad4e0be6486502f5fcd8a96ff3
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>