Commit Graph
75 Commits
Author SHA1 Message Date
Meng Wang d212c829f3 asoc: pcm-noirq: set substream state to disconnect when ssr happens
When SSR happens, set substream state to SNDRV_PCM_STATE_DISCONNECTED
to avoid userspace keeping waiting for substream state and causing
deadlock.

Change-Id: Iaa4d76101204652742c55d13da5c770c418a16bc
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2022-07-11 22:32:10 -07:00
Meng Wang 5144dbbcd1 soc: swr-mstr: update component and interrupt enable sequence
Enable component after enabling interrupt to avoid missing
some intterupt during master init.

Change-Id: I0f60c5431a815c58f878d3b9275a046e47939111
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2021-11-01 03:09:45 -07:00
Meng Wang 9524bda6e4 asoc: update wakeup_source API
wakeup_source_init and wakeup_source_trash are removed
in new kernel. Update these two APIs to wakeup_source_register
and wakeup_source_unregister.

Change-Id: If628aac4f5391b483bb20e66b49cdf47618462c9
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-05-05 15:21:55 +08:00
Meng Wang 40788dc7e3 asoc: lsm: move wakeup source down before return
Wakeup source is not removed before freeing prtd
memory which causes kernel panic during SSR.
Move wakeup source after lsm_client initialization
is done.

Change-Id: I21cdafce84215d3fee3dc972af8e5b469dd5f565
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-03-02 05:08:57 -08:00
Meng Wang 4f5815c8ed asoc: kona: set wakeup to false when GPIOs are used as MI2S
set wakeup to false when GPIOs are used as MI2S.

Change-Id: I6c620270f073bcbdf87d0121af4afaa1a8ede0dc
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-02-21 01:01:52 -08:00
Meng Wang 9530d74a9d asoc: lsm: hold wakelock when keyword is detected
hold wakelock when keyword is detected

Change-Id: Id25d4e3094a0cb430696aaeaf06dd176276d4e46
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-01-24 03:13:26 +05:30
Meng Wang 2825fce018 asoc: bolero: enable swr DMIC clk_div after tx mclk is enabled
If swr DMIC clk_div is enabled before enabling tx mclk and LPASS
power collapse happens, volatile swr DMIC clk_div registers would
be cleared and swr DMIC would not work. Make this change to enable
swr DMIC clk_div after tx mclk is enabled

Change-Id: Ie9e7e8c74dc0e013898f3fd8b62344a670ad6664
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-01-14 08:13:31 +08:00
Meng Wang 3c6c7b6b0f asoc: bolero: check if va is enabled when register/deregister wakeup irq
When LPI SVA is enabled, start recording and stop LPI SVA, wakeup irq
is not deregistered as tx_swr_clk_cnt is not 0. Add new check for
va_swr_clk_cnt to resolve the issue.

Change-Id: I441394f26b42f554169400194d021309ef70af9e
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2020-01-13 14:42:21 +08:00
Meng Wang 4f13298b48 asoc: lsm: free confidence_levels memory to avoid memory leakage
prtd->lsm_client->confidence_levels is allocated in
msm_lsm_get_conf_levels and not freed in msm_lsm_set_conf.
Make this change to free this memory.

Change-Id: I617703b36c13e065fdf995e89121c442b32b08f3
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-12-31 08:54:04 +08:00
Meng Wang 52a8fb14a7 asoc: bolero: increase tx_mclk_users when enabling VA-MCLK
When enabling SVA, tx_mclk_users is not increased. If starting
and stopping recording after enabling SVA, tx_mclk will be closed
when powering down tx mclk widget. Increase tx_mclk_users when
enabling VA_MCLK to avoid mismatch.

Change-Id: I02d9400cf7309464bbba1e6749cfcfcf99f5876a
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-12-18 10:56:45 +08:00
Meng Wang 31a7ef1382 soc: swr-mstr: reset slave pending irq flag before every call
Before every slave interrupt handler call, reset slave pending
irq flag, so that if irq is halted it does not retain the old
value.

Change-Id: I2c78500e83eca7864029f58cffa80f8648902fb2
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-12-18 10:36:29 +08:00
Meng Wang 9eacb96741 dsp: afe: add new clk state and lock for codec clk cmds
There's some race condition when sending afe cmds between
USB playback and codec clk enablement. Add new clk_state,
clk_status and clk lock to resolve the race condition.

Change-Id: I2ccc77c20a274b797129b8b674c026ef003353d4
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-12-10 20:21:24 +08:00
Meng Wang 4ff8084a36 asoc: bolero: add mixer control for LPI enable flag
Add mixer control for LPI enable flag. The listener
should only be registered for LPI SVA session.

Change-Id: I01e4b0868e3333e1fc60f86444b1cf1c77e25cb7
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-12-05 11:16:51 +08:00
Meng Wang 117ebd0932 soc: swr-mstr: remove soundwire state check in interrupt handler
when triggering SSR during speaker playback and insert headset,
headset insertion/removal IRQ don't reach soundwire master side.
Remove soundwire state check in interrupt handler to resolve headset
detection issue.

Change-Id: If6ff9aaaab9513f713d6106913dfccbc0e75e385
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-10-16 00:01:47 -07:00
Meng Wang a801ad8fd7 dsp: lsm: move lsm_common deregister out of mutex_lock
When dispatch_event in apr and q6lsm_client_free in q6lsm
are running concurrently, there may be deadlock between
session_lock in lsm and svc->m_lock in apr for lsm_common.
Move lsm_common mmap apr deregister out of mutex_lock to
avoid deadlock.

Change-Id: I7c96ba12834bd4a7c8e5ca1b78d798578678b251
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-10-14 20:22:41 -07:00
Meng Wang c893cd2e0d dsp: lsm: add apr NULL check in apr deregister
During SSR, q6lsm_mmapcallback could happen before
q6lsm_mmap_apr_dereg. q6lsm_common.apr and
q6lsm_common.apr_users are cleared in q6lsm_mmapcallback.
Add apr NULL check in q6lsm_mmap_apr_dereg before accessing
q6lsm_common.apr_users.

Change-Id: Ia0ff57b3fff0a0e4f26b836a8a15324406af1a14
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-09-09 09:27:45 +08:00
Meng Wang b5cf458326 asoc: hdmi: return 0 when get_audio_edid_blk is NULL
when get_audio_edid_blk is NULL, msm_ext_disp_edid_ctl_info
returns error value. And it would cause tinymix doesn't have
full mix cmd list. Return 0 instead to avoid such issue.

Change-Id: Ic13067483b373fa4a81b663ece3d3e4a18ea8a87
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-09-04 09:22:07 +08:00
Meng Wang fae3404de2 dsp: lsm: check for mem_map_handle
Sometimes adsp may fail to allocate memory for SVA calibration
data and add check if mem_map_handle is assigned with valid
non-zero handle to avoid panic.

Change-Id: Icad722edc52906e63d581aafa02b42b8518ebca6
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-09-04 08:13:18 +08:00
Meng Wang 818d4e9b7f dsp: lsm: adjust mutex_lock to avoid deadlock
When dispatch_event in apr and q6lsm_client_free in q6lsm
are running concurrently, there may be deadlock between
session_lock in lsm and svc->m_lock in apr. Adjust session_lock
in q6lsm_client_free to avoid deadlock.

Change-Id: I26eb788d4c17af78272dd1f717717e865dfbd0ac
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-08-30 15:44:49 +08:00
Meng Wang 93b9262f70 asoc: routing: add routings for SEC MI2S TX
Add routings for SEC_MI2S_TX and Voicecall/VOIP to
reduce audio log during bootup.

Change-Id: I368ab9782f14ccf99114994fe6c2dd42fee5d59a
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-07-24 15:03:14 +08:00
Meng Wang bf1fe8fbad asoc: bolero: force bolero runtime suspend during adsp ssr
During adsp SSR, bolero runtime suspend is not called and
hw vote clks are not reset. Force bolero runtime suspend
during adsp SSR to avoid kernel panic.

Change-Id: Iff5983ef07f77ecc7f3f344948c013906b4bad60
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-07-02 08:26:55 +08:00
Meng Wang ea4ace171f soc: lpi: force lpi runtime suspend during adsp ssr
During adsp SSR, lpi runtime suspend is not called and
hw vote clks are not reset. Force LPI runtime suspend
during adsp SSR to avoid kernel panic.

Change-Id: I153c5826a282d7beb175a41a55e2d6bf5907eb62
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-07-01 16:43:39 +08:00
Meng Wang 4b489349e1 soc: lpi: check if vote clk is enabled before accessing LPI GPIO
HW vote clock may fail to get enabled. Check if hw vote clk is
enabled in lpi_gpio_read and lpi_gpio_write to avoid kernel panic.

Change-Id: I077e5c61058d9d90be98ff3a0c0834049ad7e584
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-29 09:21:58 -07:00
Meng Wang 8c60bb5664 soc: soundwire: update log type for soundwire
Update pr_err to dev_err to indicate which device has
clock mismatch.

Change-Id: Icf842ed63aa0a01ace0ff461f8c05194a0e25f92
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-29 09:20:50 -07:00
Meng Wang bd93024823 asoc: bolero: check if clock is enabled before accessing register
Reset GFMUX reg for va-macro and wsa-macro when adsp is up
after SSR. And check if clock is enabled before accessing
register to avoid kernel panic.

Change-Id: Idce9695be552cab0e8e389cf72eeb7a67a754bf9
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-28 08:38:15 +08:00
Meng Wang 8db822a261 asoc: bolero: remove extra semi-colon to avoid compile error
Remove extra semi-colon from wsa_macro_set_spkr_gain_offset to
avoid compile error when wsa-macro is disabled.

Change-Id: Ic94e78822639d70a365c714ad7dd0b2091de8179
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-11 10:46:48 +08:00
Meng Wang 8ef0cc2ed4 asoc: bolero: reset all clks after SSR/PDR
After SSR/PDR, the lpass clocks will be in off state. Force restart
clocks after SSR/PDR, if enabled before SSR/PDR, to reenable the clocks.

Change-Id: I3d850d92bdc6324aa7a64a83a9066f388a85c7f7
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-06 08:45:19 +08:00
Meng Wang bb5e0e9d93 asoc: kona: Fix to apply wsa8810 gain settings
Update wsa aux codec matching logic in machine driver
to apply proper gain settings for wsa8810 variant.
Add null check for aux component name to avoid dereference.

Change-Id: Ie332f8e37a2d6b7a250fe299df91fa9cf9d7636b
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-06-05 15:24:39 +08:00
Meng Wang 930d9751a1 asoc: bolero: restore all codec registers after SSR
Some bolero codec registers are not correctly restored after
SSR and causes DMICs on bolero don't work. Add this change to
restore all bolero codec registers after SSR.

Change-Id: I3666a77f802f62452a0e0de4859f48a0f9e5cbb1
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-05-30 17:17:00 +08:00
Meng Wang efbe46a1c5 asoc: wcd938x: reinit registers after SSR
Reinit wcd registers after SSR.

Change-Id: I5a8f22e4f76ffd8b279d1513eaa2f50973e3408c
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-05-29 11:07:33 +08:00
Meng Wang 69b55c855b asoc: bolero: do not disable tx macro clk during SSR/PDR
Do not disable tx macro clk when it's not enabled during
SSR/PDR to avoid clk count mismatch.

Change-Id: I69a59cff9cb57ef3dea366c73629c3eddcb19abe
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-05-29 11:04:45 +08:00
Meng Wang ddca68611f asoc: add ignore_suspend for all BEs, BE_OUT and BE_IN
During suspend on new kernel, FE/BE path would tear down and
pinctrl for related component would be deactived. On kona, FM
is connected to TERT MI2S and during suepend, pinctrl for TERT
MI2S would be sleep state and FM has no sound.
Add ignore_suspend for all BEs, BE_OUT and BE_IN to avoid tearing
FE/BE path during device suspend.

Change-Id: I8868f35d6c418987ffe287d64a3f5ae3d1abf1c1
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-05-21 09:31:44 +08:00
Meng Wang d74f72b86d asoc: update missed file header to SPDX
update missed file header to SPDX.

Change-Id: I694c45965473d00d5a577df1cd2074becbc51372
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-05-14 01:02:43 -07:00
Meng Wang d1db67cb05 asoc: kona: add mixer control to set channel number for speaker protection
Add mixer control to set channel number for speaker protection.

Change-Id: I67527119a65758c77dbf9b1d26cc51f956702b5e
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-04-19 10:20:13 +08:00
Meng Wang 6d8ecddd3c asoc: routing: set/clear FE/BE route for lsm
Set/clear correct FE/BE route for LSM in LSM put funtion
to avoid mixer control initial value is not set from userspace
after audio server restart.

Change-Id: Ic415bb51cbaf887c4ddacf9e7062ec28a36674e4
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-04-11 14:51:22 +08:00
Meng Wang e8e53825d5 asoc: kona: add afe loopback support in machine driver
Add machine driver change for AFE RX to TX loopback.

Change-Id: Icd77092867e93bd1da76b1ba22c61091a2d1c8f4
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-04-02 16:09:15 +08:00
Meng Wang e59703ce4e asoc: bolero: remove mutex_lock in bolero_runtime_suspend
There can be deadlock between __bolero_reg_read/write and
bolero_runtime_suspend. Remove the mutex_lock in
bolero_runtime_suspend to avoid deadlock.

Change-Id: I712b9f24adeddda8899b39f90291394965443163
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-04-01 17:49:59 -07:00
Meng Wang 281bd20437 asoc: wcd938x: stop mbhc during ssr down
Stop mbhc operations during ssr down to cancel
any pending detection sequences.

Change-Id: Iff054cf8b3099959a1be561bd937057258f57b81
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-04-02 08:44:38 +08:00
Meng Wang 8a2a104156 asoc: add NULL check before access pointer
Add NULL check before access pointer to avoid dereference.

Change-Id: I2c7408348a0acf1a3801a5869f62bae328858beb
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-03-21 10:46:02 +08:00
Meng Wang 578740db71 asoc: wcd937x: Disable EN_CUR_DET bit for receiver noise
Disable EN_CUR_DET to fix receiver noise as per hw team
recommendation.

Change-Id: Icbeea920d02279ff845072e54be1c449db7bd2da
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-03-20 17:24:22 -07:00
Meng Wang 22ff651406 asoc: uapi: Update LOCAL_ADDITIONAL_DEPENDENCIES
Update LOCAL_ADDITIONAL_DEPENDENCIES to fix kernel header
build dependency.

Change-Id: I3eeb3b9e9e021b16b50d26851e284a843132eff7
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-03-13 16:05:14 +08:00
Meng Wang 197cb30bc9 asoc: kona: update pcm id for Kona FE
Update correct PCM id for Kona FE.

Change-Id: I5033f12ef587d8c476f0da7a73a1a35a037db035
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-03-01 13:54:38 +08:00
Meng Wang bbf7792327 asoc: routing: add widget connection for FM playback
Add connection for RX_CDC_DMA_RX_0 and WSA_CDC_DMA_RX_0
to suppport FM playback.

Change-Id: I406faecd089e063848e9e8b507b1e1a0d1c21454
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-03-01 13:24:14 +08:00
Meng Wang a60b408c5a asoc: kona: enable us/euro function for analog type-c headset
mbhc_mbhc_cfg.swap_gnd_mic is not initialized for analog type-c
headset on Kona which causes headset detection fails.
When analog type-c headset function is enabled on device, initialize
swap_gnd_mic to msm_usbc_swap_gnd_mic to resolve this issue.

Change-Id: Ia8244e41cbfa7c8844b761ff129a7d2cced0dacf
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-02-25 17:02:23 +08:00
Meng Wang f016d3089f asoc: update be_name and adm_programable_channel_mixer parameters
Some new backends are added and update be_name for channel mixer.
Update adm_programable_channel_mixer parameter to support record
echo from RX.

Change-Id: I628292112f558eca9301c67b36e6de41924f27d5
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-02-20 18:32:11 +08:00
Meng Wang 574f494777 asoc: kona: update parameters for RX/TX backend
Samplerate, channels and bit rate are not updated for
MSM_BACKEND_DAI_WSA_CDC_DMA_RX_*, MSM_BACKEND_DAI_RX_CDC_DMA_RX_*,
MSM_BACKEND_DAI_WSA_CDC_DMA_TX_*, MSM_BACKEND_DAI_TX_CDC_DMA_TX_*.
Add hw_params_fixup function for these BE DAIs.

Change-Id: Ia21f1cf5742e3acc6549319dcedfde07233ed161
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-02-18 15:48:53 +08:00
Meng Wang c2acbee602 dsp: update copyright marking for q6afecal-hwdep and q6asm
Copyright year 2018 for q6afecal-hwdep and third party copyright
marking for q6asm are removed during updating file headers.
Add them back.

Change-Id: I0341116ca0cf82be8c3876534b98ad2c376b3531
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-02-12 08:32:44 +08:00
Meng Wang 688a867091 asoc: Update file header to GPL-2.0-only
Update file header to GPL-2.0-only.

Change-Id: If16bf92f951c6d7521f56a3e9b91da2ca2ccf6f8
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-01-29 13:43:33 +08:00
Meng Wang 3d87e08f9d ASoC: dsp: correct param_size assignment
param_size value is not correctly assigned with roundup.
Assign the return value of roundup to param_size.

Change-Id: I92e42b4684d7be77a5fa82c8e8c90167f985f97d
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2019-01-22 12:40:45 +08:00
Meng Wang b0e04799e4 ASoC: config: add config to compile audio drivers for kona
Add config to compile audio drivers for kona.

Change-Id: I3367a68d0109c80de8525fd74ebaef2959684865
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-21 12:19:44 +08:00
Meng Wang 19fa6defdc asoc: update kernel version for kona
Update kernel version for kona.

Change-Id: I490832f0a62f8f1b5cfe6fc6134e22cc5d8ae583
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-20 12:36:53 +08:00
Meng Wang 0862e6ad0a ASoC: update symbolic link for internal.h, core.h and pinctrl-utils.h
Update symbolic link for internal.h, core.h and pinctrl-utils.h for kona.

Change-Id: I3bb585700a531e97a0b1b163b191105628f3d22c
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-20 11:12:46 +08:00
Meng Wang 11a25cf657 asoc: update relative header files
Move all relative header files to include folder.

Change-Id: Ic61a61a88823b4749dbe8c1f680d08201a3b4a48
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-18 10:50:27 +08:00
Meng Wang 64e8c2b2af asoc: wcd938x: update wcd938x driver
Update wcd938x driver to fix compile error.

Change-Id: Ifc939a46d7e09852b147289dd9e69d2f56a67751
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-17 18:55:51 +08:00
Meng Wang 18065271af asoc: remove find tag to fix compile error
Remove unused find tag to fix compile error.

Change-Id: Id4b6d210ef51f3ad419968a9413a691d7f7a779e
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-11 14:33:40 +08:00
Meng Wang 3f8ba5480b asoc: routing: add afe loopback for FM on kona
Add support for AFE loopback between DMA backends
and tertiary mi2s tx on Kona.
This is required for FM playback usecase.

Change-Id: Idc0a1afc522365d15f3cdf28f01ea49f5c399850
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-10 15:43:21 +08:00
Meng Wang 43bbb87652 asoc: Update file header to GPL-2.0-only
Update file header to GPL-2.0-only.

Change-Id: Ic1542a3209a5fe73c937a5b36491ede4a451936d
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-10 14:49:34 +08:00
Meng Wang 04dff94720 dsp: ion: Remove smmu initialization
SMMU initialization is not required to be done in client
probe process. SMMU framework takes care of creating
domain and attaching device. Remove related code from
audio ion driver.

Change-Id: I3756c5abb7488afb43e20fae698c7008461a18cb
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-09 22:44:08 -08:00
Meng Wang 56a0f8f748 ASoC: update machine driver for kernel-4.19
snd_soc_codec is removed from kernel-4.19.
Update machine driver to fix compile error.

Change-Id: I1bdfda07c0d150d008c434c361142b655de1e9db
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-10 12:38:10 +08:00
Meng Wang 15c825d077 ASoC: codec: Update codec driver to component driver
Some alsa API are removed in kernel-4.19 which would cause
codec driver compile failure. Update codec driver to fix it.

Change-Id: Ie358ec1863082166958059c179300b453d2a03ad
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-08 03:15:55 -08:00
Meng Wang ee084a068e ASoC: Change platform driver to component driver
snd_soc_platform_driver is removed in kernel-4.19.
Update snd_soc_platform_driver to snd_soc_component_driver.

Change-Id: I434b6fd173d1f4365a610d9164342d5d04d6c5bc
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-08 03:15:41 -08:00
Meng Wang c7b180ec7c asoc: Avoid usage of variable length array
chmap in msm_lsm_check_and_set_lab_controls, data in
wcd9xxx_i2c_write_device and irq_level in wcd9xxx_irq_init
are Variable Length Array (VLA). VLAs are considered unfit
when it comes to security, performance, code quality and so
on. Hence, allocate the memory dynamically.

Change-Id: I52f33e61f857a00774eb26dc1d6372f2ed3d425c
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-06 23:52:08 -08:00
Meng Wang 61af6849e9 ASoC: switch audio drivers to SPDX identifier
Switch audio drivers to SPDX identifier on msm-4.19.

Change-Id: Ic3f0230a516db251b8d81e8a7e73dbc04d66fe1b
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-07 15:47:32 +08:00
Meng Wang 978ae25e31 ASoc: ep92: change setup_timer to timer_setup
On kernel-4.19, setup_timer is changed to timer_setup.
Update ep92 driver to fix compile error.

Change-Id: I844241413c72c415819774921f267d84692ba177
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-07 12:27:56 +08:00
Meng Wang 64aae620b0 ASoC: wcd-irq: correct identifier name to fix compile error
The two arguments in functions wcd_request_irq, wcd_free_irq,
wcd_enable_irq and wcd_disable_irq have same identifier names.
Correct wcd_irq_info identifier name to fix compile error

Change-Id: I6f240d3af1cd253336d070d0f3228eae96a4fcb6
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-07 11:19:46 +08:00
Meng Wang d6107d0bbe asoc: clean up audio drivers and remove unused files
Clean up audio drivers and remove unused files.

Change-Id: I50559ac3c5f4a1f4336e4480cd3ff235d015441e
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-06 15:04:09 +08:00
Meng Wang adbca4f654 asoc: routing: update app type config get function
Update app type config get function and userspace can
get the app type config with mixer control.

Change-Id: I78eda2963161936ae1dbf90dad1bfb64cb079e8d
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-12-06 13:42:40 +08:00
Meng Wang 1b52b57ad2 asoc: add snd_dec_ddp struct for AC3 and EC3 playback
Move struct snd_dec_ddp from uapi folder to msm-compress-q6-v2.c to
avoid code check warning.

Change-Id: Id33eee6da8f42841c80e7e5795bb19e71ab6e784
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-11-28 02:55:16 -08:00
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
Meng Wang d4e11ac7a4 asoc: wcd-dsp-mgr: reinit ssr ready flag for adsp/wdsp ssr
When adsp/wdsp SSR happens, WDSP_SSR_TYPE_WDSP_DOWN/WDSP_SSR_TYPE_CDC_DOWN
would get received by wcd-dsp-mgr. wcd-dsp-mgr would clear current work and
init wdsp when adsp is up and ready_compl flag is set to ready. Sometimes
ready_compl flag is not cleared and wdsp initialization would happen when
adsp/wdsp is down which would cause kernel panic.
Reinit ready_compl flag when adsp/wdsp SSR happens.

Change-Id: I45186abba7992ee6912c5b0da171ef37b04e2e71
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-08-15 14:57:53 -07:00
Meng Wang d5d1092c0c ASOC: dsp: add spin_lock for q6asm_add_hdr
During SSR, ac could get freed after unlock the session lock
during the execution of q6asm_callback. If we try to get the
ac->cmd_lock after ac freed, kernel panic happens.
Remove mutex_lock in reset_event to avoid kernel panic.
Add spin_lock_irqsave in q6asm_add_hdr and change spin_lock to
spin_lock_irqsave in q6asm_callback to add synchronize between
q6asm_add_hdr and q6asm_callback to avoid kernel panic.

Change-Id: I72cf959fe6a764920a13d565c72243a80ac4f236
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-07-03 08:34:46 +08: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
Meng Wang f71f3504b7 ipc: apr: add qcom,subsys-name for apr
Add qcom,subsys-name for apr driver. Based on the property,
registration of notifier is done for the right co-processor,
from which notification needs to be received.

Change-Id: Id492c8b24d1a4cf0bcab37700a1e9c61c9067041
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-06-07 10:11:44 +08:00
Meng Wang a6092aff59 ipc: apr: remove unused dsp-wait waitqueue
waitqueue dsp_wait is not used anymore.
Remove it from apr driver.

Change-Id: Iab16d37cdc8dd495e2289acec3ee5625421465e4
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-06-04 15:32:11 +08:00
Meng Wang eab9a2b762 ipc: apr: use of_platform_populate to add child node of apr
Use of_platform_populate to add child node of apr.

Change-Id: I9f0ded5e39deaf37c79ecda4d960d64c9c14eec9
Signed-off-by: Meng Wang <mengw@codeaurora.org>
2018-05-22 09:26:19 +08:00