Device pointer needs to be stored during probe of msm_audio_ion
platform driver so that the same can be used later for mapping
dma_buff allocated for different clients. Store device pointer
for both cases where SMMU may be present or absent on a particular
platform.
Change-Id: I3d3d4ad254d41ac9490ff0dc98b95ffbc3e5042d
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Currently, for some small (1/4/8 bytes) transfers, the driver uses
on-stack memory to perform the transfer. This is not safe as the
underlying master/dma driver could try to map/dma this memory.
Change makes sure to never use on-stack memory for any transfers.
Change-Id: I6b157e26ea7ca9f865004a87153c658756f6c368
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Update all audio drivers to use updated chipset name in
files, functions, architecture specific configurations
and the device tree compatible strings.
Change-Id: I507948866213ddb8806edea71a57c1f29ce7e71b
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
APR state update should happen only after ADSP up
notification recieved by APSS, and not just after
ADSP is loaded and booted up.
Avoid setting APR state to loaded after PIL loading
of ADSP image is complete.
Change-Id: I9b9f073279c306562e427ec2c7e73dfa7d71f956
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Update all audio drivers to use updated chipset name
in architecture specific configurations and the device
tree compatible strings.
Change-Id: Ib1abe643c6914c1b0b57ef110c7b60e23e356d97
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Check for debugfs ops buf size passed before reading
to avoid reading out of bounds.
Change-Id: Idd5e755ac16448af5751e2f3381097f234e74a74
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
The reg in soc_mixer_control is 32-bit. When using
SOC_SINGLE_EXT, the value of FE DAI ID which is passed
as shift(to be operated on the reg) may be more than 31,
which may cause overflow.
Use SOC_DOUBLE_EXT instead of SOC_SINGLE_EXT so that the
reg field can be set to SOC_NO_PM to avoid any DAPM operation,
while passing BE and FE IDs in shift and rshift fields. And
these values can be retrieve in get/put functions and use them.
This is to avoid any possible overflow in DAPM operation.
Change-Id: I17fa4e059889ae725e6f015a779f518e6d0a813f
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Move the tdm device property logs from probe function
to prepare function to print them only when tdm usecase
is started and not during bootup.
Change-Id: I3844709d501bf510620d6f20f270e30c68e78b78
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Buffer from mixer ctl or ADSP is composed of payload size and
actual payload. On a 32 bit platform, we could have an overflow
if payload size is below UINT_MAX while payload size + sizeof(struct)
is over UINT_MAX. Allocated memory size would be less than expected.
Check payload size against limit before memory allocation.
Change-Id: I0bf19ca7b8c93083177a21ad726122dc20f45551
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Component unbind happens in component_bind_all, if component
bind fails. There is no need to call extra component_unbind_all.
Change-Id: I4ff2aececc5e10c5c4cfbe71778630c621768349
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
The current logic that checks pointer "rpdev" for NULL is not
correct. Fix it to prevent potential NULL pointer dereference.
Change-Id: Ieaad98396ff43b66b0dd41efbfbf9f6ae923a2bb
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Sometimes codec enumerates before APPS APR communication happens
with ADSP. Since wcd9360 MCLK request goes through APR, defer the
codec probe till mclk is available.
Change-Id: Ief5bb80f4c62fcf58a8cc93f11a9b4536f883d1e
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
After enabling compilation with LLVM for audio drivers,
some assignment warnings are reported. Add this change
to resolve the compilation warnings.
Change-Id: I571b2e210053bc0b80d65cd272ce1751e0ed10fb
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Change APR driver to platform driver and add any child
device only after ADSP up notification is received.
The idea is to have machine driver as a child device
under APR, and add the platform device for machine
driver only after ADSP is up. This will help invoke
audio drivers waiting with deferred probe and eventually
should help sound card registers successfully.
Change-Id: Ib0c0f7ec1d7dd93a1b54a9a66260861223d55c67
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
ION memory allocator is used for audio use cases even on targets
without SMMU. Add support for ION on those targets where ADSP
might not have an SMMU in front of it.
Change-Id: Iaacbd66edb32c8ee7c14a5ab291abe54960725b8
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Initialize variable before use in voice driver.
CRs-Fixed: 2209691
Change-Id: I84b51262b5c3cb12ea23372eb7c7109c6ff844b4
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
Add error check to validate the return value of misc_register.
Clean up memory on an error to avoid memory leak.
CRs-Fixed: 2204093
Change-Id: I8b94bacdc312fa410a7825c7e25764517469c19b
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
Enable or disable mbhc clk in sync with L_DET
so that L_DET interrupt is not raised for
false positives for usbc analog.
Change-Id: I69792e8dc82cdc80751f2c1c705f603074cb9a2f
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Assign mic gnd swap function if usbc analog is
enabled. This is irrespective of whether us_euro
gpio is defined.
Change-Id: I6cf5beadca18682a7488db2286986883dbbcdf3d
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Remove unused mic widgets and add new mic widgets
required for msmnile target.
Change-Id: I5e5ed56a80324b48599a00a196d99ed4ab386412
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>