커밋 그래프

3845 커밋

작성자 SHA1 메시지 날짜
Srinivas Marka
c315833fa3 asoc: set card state to online after snd card registration
AGM might get initialized before sound card is populated
with all pcm nodes. This will lead to AGM parsing fewer
nodes and forms incomplete list of backends.

To avoid this, kernel module sets card status to ONLINE,
and AGM waits till the card status is ONLINE before parsing
for the pcm nodes.

Change-Id: I4b7f7085645706ba4351efe23ba048d3a177312c
Signed-off-by: Srinivas Marka <smarka@codeaurora.org>
2021-09-06 09:35:23 -07:00
Meng Wang
642659b2a3 soc: swr-mstr-ctrl: ignore interrupt when master is in clk stop mode
When swr master is in clk stop mode, the value of interrupt_status
is not actual interrupt value. Add check for pm_runtime status to
avoid endless interrupt handler.

Change-Id: I4cd7fe5f01ffdca2a441521088ea39f8804d6b51
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-09-03 22:10:54 -07:00
qctecmdr
b61e1747a5 Merge "dsp: audio_prm: check if gpr is ready" 2021-09-03 01:46:33 -07:00
qctecmdr
7923c5e04e Merge "asoc: lpass-cdc: update logic to disable VA_MCLK" 2021-09-03 01:46:33 -07:00
qctecmdr
509134e708 Merge "ASoC: mbhc-adc: Enable BCS if plug type already reported" 2021-09-03 01:46:33 -07:00
Junkai Cai
30fbd08bca soc: reduce the auto suspend timeout when swr event finished
the APSS would suspend within ~120ms after audio off, if system suspend
swrm_suspend() is called before swrm_runtime_suspend. The clock stop
sequence require writing IPC and expect interrupt, which would stop
the APSS to be suspended. Reduce the auto suspend time specifically when
swr event is done can call the swrm_runtime_suspend

Change-Id: Iee0c9143d65e5a8e68a8e20ab73bea9def1920bd
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-09-01 21:49:25 -07:00
qctecmdr
165cf0933e Merge "dsp: audio_notify: add soft dependency on qcom_q6v5_pas" 2021-09-01 20:29:23 -07:00
Vatsal Bucha
6527fdb4e6 ASoC: mbhc-adc: Enable BCS if plug type already reported
BCS is not enabled sometimes after inserting headset if
plug is already reported and we dont report it again.
Enable BCS if plug type already reported.

Change-Id: I8c9f15ced66a21bda169d3479da96168ebec26a7
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
2021-08-31 05:40:54 -07:00
qctecmdr
ced79f58d3 Merge "soc: swr-mstr: Avoid underflow due to CPS spkr prot enabled" 2021-08-28 21:21:19 -07:00
qctecmdr
0753a3433e Merge "ASoC: codecs: add null check before use" 2021-08-28 21:21:19 -07:00
qctecmdr
7c5ab24608 Merge "asoc: common: add lpass hw core request" 2021-08-28 21:21:19 -07:00
qctecmdr
8bd420897b Merge "asoc: lpass-cdc: return error when requesting incorrect state" 2021-08-28 21:21:19 -07:00
qctecmdr
7b4b4ffcd7 Merge "Kalama-BU: add QMAA compliance to audio dlkms" 2021-08-28 21:21:19 -07:00
qctecmdr
0afaac609c Merge "asoc: Add virtual node for WSA RX0" 2021-08-28 21:21:19 -07:00
Meng Wang
ffefd0f046 dsp: audio_prm: check if gpr is ready
During SSR, GPR will receive adsp down notification
first and set to SUBSYS_DOWN mode. Sometimes before
audio_prm received adsp down notification, prm_gpr_send_pkt
is called but it will get stucked in spf_core_is_apm_ready
for 30s and device crash happens. In audio_prm, before
checking if spf is ready, check if both prm and gpr are ready
to avoid getting stucked.

Change-Id: I851c140a07162e4fcf20353002ef0130441ca1db
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-08-27 16:57:09 +08:00
Junkai Cai
c1fe3f72c2 soc: swr-mstr: Avoid underflow due to CPS spkr prot enabled
Underflow is observed sometimes with CPS spkr prot enabled.
Reduce no of retry count for wsa to 1 so as to optimize delay
between reads on wsa and prevent underflow.

Propagated from the 5.0 branch.

Change-Id: I9b20a242ad4e8375718844c9dfeb0e4996588a19
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-25 23:14:49 -07:00
Junkai Cai
319e140119 soc: swr-mstr: Update soundwire state to SSR during UP
During SSR up event handler, if soundwire state is
already up or auto suspend jiffies is not completed,
ensure put in suspend/SSR state.

Propagated from the 5.0 branch.

Change-Id: I2a8a995399e7844cbc1d6a5676f0d57d97577862
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-25 23:12:47 -07:00
Junkai Cai
16acb739c4 soc: swr-mstr: Enable device wakeup only for tx macro
At bootup device wakeup enable is called for all masters
causing issue for wsa. This is because wsa
supports interrupts. Thus enable device wakeup
only for tx master.

Propagated this change from previous target.

Change-Id: Iade70defc599952b77b664b752cc55570b4aed27
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-25 23:12:05 -07:00
Meng Wang
f62a7f3e92 asoc: lpass-cdc: update logic to disable VA_MCLK
When adsp SSR happens, VA_MCLK enabled by VA_SWR_PWR widget will
not be disabled as ADSP is down and it cannot enable TX_MCLk before
disabling VA_MCLK. After disabling SVA, VA_MCLk is left open.
Add dev_up flag to indicate SSR and close VA_MCLK during SSR.

Change-Id: Ic544ce32c46054c7362d3eb07a4a47ec115d2651
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-08-25 13:44:52 +08:00
Prasad Kumpatla
7277bb1171 asoc: common: add lpass hw core request
add lpass hw core request before request for the
set clk cfg in the case of primary and tertiary
interface along with fractional sample rate related
clock request.

Change-Id: I273e6963ee39e350c44e5bcf35427327b7189cd1
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
2021-08-25 10:45:43 +05:30
Meng Wang
df743705b4 dsp: audio_notify: add soft dependency on qcom_q6v5_pas
if remoteproc for qcom_q6v5_pas is not ready and audio_notify_probe
is called, it will call EPROBE_DEFER. Sometimes audio_notify_probe
is called again very late even after gpr/audio_prm/pinctrl_lpi probe
which causes it doesn't receive the adsp_up notidication and soundcard
is not registered. Add soft dependency for audio_nofity to make sure
audio_notify_probe is called after qcom_q6v5_pas is ready.

Change-Id: I5a25f8d47dc2e7694a8078ad0052e7889a28b11d
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-08-25 08:01:23 +08:00
Vatsal Bucha
47942f03ae ASoC: mbhc-adc: Resolve headset removal detected because of elec irq
When SVA is enabled and headset is inserted and playback is started
on headset, sometimes electrical irq is triggered resulting in
headset removal being reported. This happens because of high mic
voltage being reported. Enable micbias before checking for adc
voltage to resolve issue.

Change-Id: If7445c906b2e62f12b48548a2d435db01f184587
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
2021-08-24 14:16:38 +05:30
Junkai Cai
5b9a1dab00 Kalama-BU: add QMAA compliance to audio dlkms
Change-Id: Ia4ab7cb78afc49da30ad888aad5557fba4969216
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-23 14:27:25 -07:00
Junkai Cai
7880ae6993 audio-kernel: Update for kalama
Change-Id: I9b949cc2c03991d94311831dd7250693bb02815a
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-21 16:56:42 -07:00
Junkai Cai
1f7c8acba3 soc: add check condition before enabling irq
propagated from component audio-drivers.lnx.5.0 with same time.
However, original 5.10 code includes the change functionally already.
Adding check when irq_get_irq_data returns NULL.

Original comments:
Enable interrupt request only when the interrupt is
in disabled state.

Change-Id: Ic5048d2fbddf53bd0e42536677bf5d935f4e0683
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-21 15:52:04 -07:00
Junkai Cai
cc1ce15fb7 ASoC: codecs: add null check before use
Add null check for swr dmic component and swr_dmic_priv
before use.
Add array bounds check for slave port index before
accessing the array.

Change-Id: I6f1976e98e41e513a9a9db83d4e804a5cb1fe79b
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-21 15:08:00 -07:00
Rohit kumar
a9873e4b9d asoc: Add virtual node for WSA RX0
Change-Id: I49a300ab37610c325178517147189d96422297af
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
2021-08-20 01:26:26 -07:00
Junkai Cai
63db490176 asoc: lpass-cdc: return error when requesting incorrect state
Thermal framework is expected an error to be returned if the requested
cur_state exceed the max_state.

Change-Id: I1e0d8124a1aa6c0d755b35225207638aefdcb464
Signed-off-by: Junkai Cai <junkai@codeaurora.org>
2021-08-19 14:25:57 -07:00
qctecmdr
fa58ae98f9 Merge "asoc: codecs: update cb decode register control" 2021-08-15 08:15:12 -07:00
qctecmdr
6c5d480fb1 Merge "asoc: lpass-cdc: add put_autosuspend to pair with pm_runtime_get_sync" 2021-08-15 08:15:12 -07:00
Prasad Kumpatla
d8f2af06e6 asoc: common: configure mi2s interface clocks
Add support for mi2s interface clock configuration.

Change-Id: I439de17670d9521898d8bde893255025eceab84d
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
2021-08-11 13:51:01 +05:30
Vignesh Kulothungan
1065b55645 asoc: codecs: update cb decode register control
Update central broadcast register control to enable bcl path.

Change-Id: Ibc05289d9cdd41e81369c6ef2547eceffa36d73a
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
2021-08-09 12:17:38 -07:00
Meng Wang
a8bd9abc48 asoc: lpass-cdc: add put_autosuspend to pair with pm_runtime_get_sync
When reading/writing lpass codec registers, pm_runtime_put_autosuspend
is missed when vote fails and it causes device fails suspending after
ssr. Add pm_runtime_put_autosuspend to pair with pm_runtime_get_sync.
When LPASS_CDC_MACRO_EVT_PRE_SSR_UP comes, core vote is needed before
resetting GFMUX reg and dev_up is not set to true yet. Add pre_dev_up
flag to indicate PRE_SSR_UP and be used in lpass_cdc_check_core_votes
to avoid false alarm.

Change-Id: Ic12ecd9645f291078e32f4921f9f77c2d85e4b8c
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-08-08 19:49:27 -07:00
qctecmdr
043966829b Merge "asoc: lpass-cdc: Disable clk when core vote fails." 2021-08-06 21:14:44 -07:00
qctecmdr
3df9593b07 Merge "asoc: common: fix null pointer access." 2021-08-06 21:08:44 -07:00
qctecmdr
786300e8a0 Merge "asoc: Return the correct clk_div value" 2021-08-06 21:02:43 -07:00
qctecmdr
a33aaa01f5 Merge "ASoC: mbhc-adc: Resolve bcs not enabled for us headset" 2021-08-06 20:56:50 -07:00
Aditya Bavanari
a415d7381d asoc: Return the correct clk_div value
Incorrect check for return value of clk_div_get
causes CLK_DIV2 setting being missed. Fix the
return value check to address this.

Change-Id: Ic1b6761ab836a38c657ac7e43efda0e2f23c5fee
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
2021-08-04 20:34:18 -07:00
Prasad Kumpatla
8201861fd3 asoc: common: fix null pointer access.
pdata return from msm_common_get_pdata may be NULL
and dereferenced.

Change-Id: Ied986d377f0fe8486c4be2c420d8d1b5f3868fd8
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
2021-08-04 20:34:16 -07:00
Deepali Jindal
a7de3376f2 asoc: lpass-cdc: Disable clk when core vote fails.
During ssr, when powering down audio path and core vote fails, 
it directly exits without disabling clock. After adsp is up, 
it will enable both RX_MCLk and RX_TX_MCLK which causes
glitch on headset output.

Change-Id: I98d3cdbffa0a5ae1ac4064579a52a29b02d4ae3e
Signed-off-by: Deepali Jindal <deepjind@codeaurora.org>
2021-08-04 20:29:47 -07:00
qctecmdr
02c5a3aca7 Merge "asoc: common: add support for tdm slots configuration" 2021-08-02 20:56:04 -07:00
qctecmdr
e28a044a67 Merge "asoc: lpass-cdc: update logic for va clk switch" 2021-08-02 20:56:04 -07:00
qctecmdr
f0f7494128 Merge "asoc: lpass-cdc: avoid enabling VA_MCLk when requested clk is not default clk" 2021-08-02 20:56:04 -07:00
Vatsal Bucha
8b5bcc5a56 ASoC: mbhc-adc: Resolve bcs not enabled for us headset
BCS is not enabled for us headset as after 3sec loop
we directly switch to report headset and bcs is still disabled.
Enable bcs only after reporting valid plug to resolve issue.

Change-Id: I69bb71d20583fd2e2be921e9b657d9c44c047708
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
2021-08-02 02:52:43 -07:00
Prasad Kumpatla
6b93e2c23b asoc: common: add support for tdm slots configuration
add support for the tdm slots configuration from dt.

Change-Id: I9fc9f81c4793c1b9eefe326af2db5259f35a2a4f
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
2021-07-27 13:47:09 +05:30
Meng Wang
f55dedc581 asoc: lpass-cdc: update logic for va clk switch
SVA switch is not retain at VA_CLK when switch
between handset and headset mic sva. Update the
clock release logic during swr power event.

Change-Id: I52c5f7576426af2ff385a862da872e8d86959ecb
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-07-22 15:53:20 +08:00
Meng Wang
52aa968296 asoc: lpass-cdc: avoid enabling VA_MCLk when requested clk is not default clk
When requested clk is not default clk, it should not enable
VA_MCLk directly. lpass_cdc_clk_rsc_check_and_update_va_clk
will take care of VA_MCLK switch.

Change-Id: I602be7dcc0228fd2e6ecd7624a96663e89485bd0
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-07-20 16:35:51 +08:00
Prasad Kumpatla
a40c1bebd9 asoc: msm_common: clock handling for tdm interface
Observed pop noise on TDM SPK AMP in the disable sequence. To resolve
the pop noise, TDM clock should be turned OFF after digital mute ,which is done
in machine driver for the disable sequence.

Change-Id: I9c8b5ef820cd8ec1e9a7d022e1938d53e2f401a1
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
2021-07-19 15:26:42 +05:30
qctecmdr
6a725a093e Merge "asoc: wsa883x: add support for multiple WSA" 2021-07-17 01:48:54 -07:00
Meng Wang
2344f44b9c asoc: lpass-cdc: add ftrace log for NOC issue
Add ftrace log to debug NOC issues.
When writing/reading lpass codec registers, add vote_lock
to make sure clk is not disabled.

Change-Id: I1df924d6aefee2899f7e5008851c1c324dabf62a
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-07-13 23:16:45 -07:00