Add support for SND event framework for helping with
notifications among different audio modules/drivers.
The SND event framework functions with a master/client
mechanism, where each client and the master register
with the framework, and then notifies its own status
(UP/DOWN). Each master will share a list of clients it
is interested in, and once all the clients are registered
and notified UP, the framework's state will be UP. On the
other hand, as and when any one of the client, or the master
reports its state as DOWN while the framework is UP, the
framework state would be changed to DOWN, and all clients
and the master would be let know about the change.
Change-Id: Ief6f26c5d5626c29246472ad71c247d71ee9e92f
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
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>
Since apr reset is scheduled in a workqueue, it is possible that before
completion of previous session apr_deregister(), new session of apr_register()
can happen in ssr scenario. Some of the variables are not reset properly
due to this race condition. Fix this issue by failing apr_register() till
apr_deregister() is completed.
Change-Id: I203e356e8330d8633d78bbfc6ae0165afa79f1f3
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Use msmsteppe target name instead of macro as macro
cannot be used in target rc file.
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Change-Id: I0f3ec299b28b7dfd9f8ac9985eea0c22a4611f9e
Enable power supplies and reset of Tanggu
CRs-Fixed: 2281591
Change-Id: I7d693263f328b51d2f333bddac5e15e98a5f9f51
Signed-off-by: Tanya Dixit <tdixit@codeaurora.org>
Total size was incorrectly adjusted after determining
IID param size in SET_UI_PROPERTY. Fix total size with
correct APR packet and param sizes.
Change-Id: I5874b470811733e60b40cc240d4c0db995b30bac
Signed-off-by: Vikram Panduranga <vpandura@codeaurora.org>
ASoC core assigns dai id value to num_dais if
AIF dai-id passed is 0. Since we have different macros
passing AIF dai-id as 0, they are replaced in ASoC core.
To handle this, update AIF dai-id in respective macros
to start with value 1.
Change-Id: I222c088289292aa226c90710e56a8c94af5615cd
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add interface to read swr port mapping from device
tree and call connect port to swr interface from
wcd937x codec driver.
Change-Id: I82e8d7a8063b725292e0d7ca5e519f279289efe0
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Check if speaker protection is enabled before registering for
DC detection events.
CRs-Fixed: 2244131
Change-Id: If2f9f777534ee5fe9024ba1080d0b73d3f750159
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
For ADIE loopback, MCLK needs to be enabled.
Associate the macro MCLK widgets to respective
rx and tx paths in route map.
Change-Id: I5632c3016146c5c5d822ae6fe438010904cf434b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On bolero and tanggu combination, enable digital side
class-H by default.
Change-Id: I366a7217dbbe7640846275eea57ef0c61cfcdf5e
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
When stereo playback start and temperature read
initiated at same time, one of speaker PA bits are
not set in particular race scenario. Handle the
broadcast check in soundwire framework to ensure
broadcast is disabled only when respective gr_sid
slave calls swr_remove_from_group.
Change-Id: I6f82a8c3c0f39dc20c1def09c1728ce4c26c2f5d
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
When temperature on a single wsa881x device is being read,
then soundwire master wakes up both wsa881x devices but
regcache_sync is happening only for one wsa881x device on
which the temperature is being read. This results in
audio playback mute after temperature read. Fix the
regcache sync during temperature read and playback usecase.
Change-Id: I856b96517c629ac685bbc25caabee841037106c8
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
When temperature on a single wsa881x device is being read,
then soundwire master wakes up both wsa881x devices but
regcache_sync is happening only for one wsa881x device on
which the temperature is being read. This results in
audio playback mute after temperature read. Fix the
regcache sync during temperature read and playback usecase.
Change-Id: I054f4432d7ae7bce922341ad62b20544cccd5865
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Due to the local char array that stores the codec dsp control command
is not initialized, an invalid command could cause the stack content
to be printed out in kernel dmesg. Initialize the array with memset.
Change-Id: I739eacb5058275c91bef67505531097cb364b93e
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Due to the local char array that stores the codec dsp control command
is not initialized, an invalid command could cause the stack content
to be printed out in kernel dmesg. Initialize the array with memset.
Change-Id: I07211c4cc06b2c2df21b674e6812c4d5efc45dc4
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>