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>
If PM runtime resume fails, hardware vote will not
happen until it is suspended. So in error scenarios
set for a lesser suspend delay so that voting can
happen sooner.
Change-Id: Ia4175535e45ec291292b8d8656146826ffd05a26
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
For soundwire devices, if core vote function is available,
do a core vote before doing a clock request. This way
we retain any hardware votes needed before doing a read
or write.
Change-Id: If29b5f102be4f2d60e6d71cae70ac43e3fdaa00c
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Add callback to vote for core votes that the
soundwire master can use while doing a clock request.
Check for pinctrl function errors and in case of any
failures return from clock enable with an error.
Change-Id: Ic5c200d7179a1e3a9695955d8711358cd7618bd1
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
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>
Extract dai data from codec dma dai instead of generic
dma dai structure in xt logging disable get and put functions
to fix out of bounds access. Use separate callback functions
for slimbus and codec dma dais.
Change-Id: Ic72640518cb255fa09563e99576d508c7cc21a7b
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
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>
Move the msm_pcm_routing_reg_phy_stream() to prepare stage.
Then it allows to set channel mixer configuration pre usecase start.
Change-Id: I1811c4d9bcbdd2bb1ee425044407a2c61e794a9a
Signed-off-by: Cong Tang <congt@codeaurora.org>
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
audio can use adsp or modem. Hence check
apr subsys state commonly instead of adsp or modem.
Change-Id: Ice70ab23797ec5f940e1bda3fa1b2d84c196fc56
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
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>
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>
Open adm with 32 bit-width when HiFi Filter control is set
Change-Id: I2c4c4c732b15b26b42d8169ae4c945356bf2bfa6
Signed-off-by: Ramlal Karra <rkarra@codeaurora.org>
QCS405 can group data lines of several MI2S interfaces.
This feature is used with new META MI2S ports.
Change-Id: Iffc72a5aae1da8a0620ad988fdc570e5ed493956
Signed-off-by: Ralf Herz <rherz@codeaurora.org>
QCS405 can group data lines of several MI2S interfaces.
Add backend dai links for new META MI2S ports.
Change-Id: I9fc5ff06b61ffc2e085c5f05a75111b63ceeeb68
Signed-off-by: Ralf Herz <rherz@codeaurora.org>