summaryrefslogtreecommitdiff
path: root/drivers/soc/qcom/qdsp6v2 (follow)
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'msm8998/lineage-20' into lineage-20Raghuram Subramani2024-10-17
| | | | Change-Id: I126075a330f305c85f8fe1b8c9d408f368be95d1
* kernel: Fix build errors with LLVMSwetha Chikkaboraiah2020-05-21
| | | | | | | | This patch intends to fix compilation errors while building kernel with LLVM toolchain. Change-Id: I76c4f97d8a0efb44434d54fb07cae23b050d2003 Signed-off-by: Swetha Chikkaboraiah <schikk@codeaurora.org>
* Asoc: apr: Fix sound card failure at stability runsSoumya Managoli2019-08-28
| | | | | | | | | | | | | | In stability reboot tests, deferred audio drivers are not invoked after lpass loading sometimes and results in sound card failure. Change APR to platform device and after APR status changes to loaded state, add dummy module child device under APR which invokes deferred audio drivers and sound card registers successfully. In analog codec driver defers until Q6 core ready. Change-Id: I1c82d9da55e771299df356a2771de2b2e62348cf Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
* drivers: soc: qcom: Added check to avoid opening multiple instanceAjit Pandey2019-03-22
| | | | | | | | | | Opening of multiple instance of voice_svc user space from app will lead to pointer deference of private data within apr callback. As multi-instance not supported added check to deny open() from user space if previous instance hasn't been closed. Change-Id: Ia5ef16c69a517760fc9d45530a8a41a333fa2a21 Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
* qdsp6v2: apr: check for packet size to header size comparisonVatsal Bucha2019-03-03
| | | | | | | Check if packet size is large enough to hold the header. Change-Id: I7261f8111d8b5f4f7c181e469de248a732242d64 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
* soc: q6dspv2: add api to vote for upgrading thread priorityBanajit Goswami2019-01-17
| | | | | | | | | | | | For some time critical tasks, the thread priority might need to be upgraded to Real-Time Thread priority level. Expose an interface from APR layer so that clients can vote for a priority upgrade whenever needed. Change-Id: Ieb4afa914905750eccdf7672020a8751fdcf6462 Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
* Merge "soc: qcom: audio: use global lock for single hab socket"Linux Build Service Account2018-10-22
|\
| * soc: qcom: audio: use global lock for single hab socketErin Yan2018-10-22
| | | | | | | | | | | | | | | | | | Need use one global lock to prevent multiple threads visit single hab socket at same time, as hab can't guarantee that the coming message is received by the right thread. Change-Id: I43eca3c1f7010c651612fff949b867e2269a2977 Signed-off-by: Erin Yan <xinyey@codeaurora.org>
* | soc: msm: add sensor dsp dynamic calibration support for ancTimothy Sham2018-09-25
|/ | | | | | | | Add Sensor DSP dynamic calibration support for Active Engine Noise Cancellation (ANC). Change-Id: Ibca0b039a80fde890f43116aaa646104e8ab9b6e Signed-off-by: Timothy Sham <tsham@codeaurora.org>
* msm: gvmq: avoid uninitialized access for data memberVenkata Rao Kakani2018-09-21
| | | | | | | | Resolve Uninitalized access of data member with initialization of same. Change-Id: Ie2ba7ac47e55e55daf6e1dc3b8c8ce73a20320de Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
* audio: qdsp6v2: check EINTR when retry for habmm_socket_recvTony Han2018-09-06
| | | | | | | | HAB returns -EINTR instead of -EAGAIN to request a retry from the habmm_socket_recv() call. Change-Id: I61bcef5c11048a3947b8079d1591937d7b83602a Signed-off-by: Tony Han <xiahan@codeaurora.org>
* ASoC: apr: Add separate initial boot flag for ADSP and ModemSoumya Managoli2018-06-18
| | | | | | | | | | | | | apr ignores initial PDR_DOWN event from ADSP/Modem during boot up. ADSP_DOWN event is wrongly sent to audio drivers during boot up if it gets MODEM_UP event before ADSP_DOWN. Added separate flags for both ADSP and Modem events to avoid this issue. CRs-Fixed: 2232315 Change-Id: I2c6084ac03e3867009f36be36631f881124f59ba Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
* soc: msm: add size check to fix out of bounds on ANCTimothy Sham2018-06-01
| | | | | | | | | Before calling audio ANC ioctl functions, compare the allocated buffer size to the size of the header and ANC cmd header to ensure the buffer is big enough. Change-Id: I8fcd0a830853d802bbb11fc243a4d392fbe384f3 Signed-off-by: Timothy Sham <tsham@codeaurora.org>
* ASoC: msm: qdsp6v2: add early audio interface supportDerek Chen2018-05-14
| | | | | | | | | | | | | | | Add early audio interface support to allow synchronization between ADSP loading and early audio playback. Execute the command 'echo 0 > /sys/kernel/lpass_resource_mgr/check_early_audio' to check if early audio playback is ongoing. Output will be "Online" if early audio playback is ongoing. CRs-fixed: 2126727 Change-Id: I95d07c8f3cd93ded112b551238a973a76fb6b7ed Signed-off-by: Derek Chen <chenche@codeaurora.org>
* Merge "ARM: dts: msm: enable sensor node on msm8996 and apq8096"Linux Build Service Account2018-05-06
|\
| * soc: msm: add sensor dsp framework support for ancDerek Chen2018-04-30
| | | | | | | | | | | | | | | | | | Add Sensor DSP framework support for Active Engine Noise Cancellation (ANC). CRs-fixed: 2153236 Signed-off-by: Derek Chen <chenche@codeaurora.org> Change-Id: I4cd28ac1bbfd3fcd21174e0216c70cd664cfa319
* | Merge "soc: msm: add apr sensor domain support"Linux Build Service Account2018-05-01
|\|
| * soc: msm: add apr sensor domain supportDerek Chen2018-04-20
| | | | | | | | | | | | | | | | | | Add APR Sensor (DSPS) domain support for Active Noise Cancellation (ANC) usecase. CRs-fixed: 2153236 Change-Id: I5a271aac25ac6e538751d742dc0bf1b105221112 Signed-off-by: Derek Chen <chenche@codeaurora.org>
* | audio: qdsp6v2: add retry when EAGAIN for habmm_socket_recvHugh Guan2018-04-23
|/ | | | | | | | HAB in the kernel can return -EAGAIN from the habmm_socket_recv() call. This can happen particularly from a signal handler context. Change-Id: Ib2885dc49193efb925ed03dc507a2fd2c97ec8c5 Signed-off-by: King Tam <kingt@codeaurora.org>
* Merge "voice_svc: Avoid double free in voice_svc driver"Linux Build Service Account2018-04-18
|\
| * voice_svc: Avoid double free in voice_svc driverAditya Bavanari2018-04-11
| | | | | | | | | | | | | | | | | | | | | | voice_svc_dev is allocated as a device managed resource and need not be freed since it is freed automatically. Remove the logic to free voice_svc_dev in probe failure and remove functions to avoid double free. CRs-Fixed: 2204285 Change-Id: If4f9ca840b00448b987f5ce443f66b0923b01969 Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
* | Merge "ASoC: msm: Fix KW issues for audio drivers"Linux Build Service Account2018-03-21
|\ \ | |/ |/|
| * ASoC: msm: Fix KW issues for audio driversTony Han2018-03-15
| | | | | | | | | | | | | | | | The fixed issues include variable initialization missing and improper NULL pointer checking. Change-Id: I5302cf84f7f0414fe0cf69ccc0cafc8225142c5f Signed-off-by: Tony Han <xiahan@codeaurora.org>
* | drivers: soc: Synchronize apr callback and voice svc releasesmanag2018-02-20
|/ | | | | | | | | | Issue is seen when apr callback is received while voice_svc_release is in process of freeing the driver private data. Avoid invalid access of private data pointer by putting the callback and release functions in the same locked context. Change-Id: I93af13cab0a3c7e653a9bc9fa7f4f86bfa0502df Signed-off-by: smanag <smanag@codeaurora.org>
* soc: msm: qdsp6v2: fix compile warning in ion vm driverDerek Chen2018-01-04
| | | | | | | Fix compile warning in audio ion vm driver. Change-Id: I7b60e0aedcd7ebca60b3ee67107d1c2f4d2611ac Signed-off-by: Derek Chen <chenche@codeaurora.org>
* ASoC: apr: Add validity check to APR portAditya Bavanari2017-12-18
| | | | | | | | Add boundary checks for APR port received from ADSP. CRs-Fixed: 2143207 Change-Id: I9a7fa39ee223e1859323caa6eb74c1c8a26a041d Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
* audio: ion: switch to msm ion on gvm.Yimin Peng2017-11-02
| | | | | | | Fix build error if msm ion is enabled. Change-Id: Ica2af79b0ac344f663bbbbf3495a14e2ca947e59 Signed-off-by: Yimin Peng <yiminp@codeaurora.org>
* soc: qcom: add SMMU support for virtualized audio ION driverHonghao Liu2017-10-18
| | | | | | | | | | | | | | | | | Update the virtualized audio ION driver to add SMMU support. The virtualized audio ION driver will provide the ION memory allocated from the guest VM to the physical VM to perform SMMU mapping. The virtualized audio ION driver will receive SMMU mapped device address from physical VM and provide the device address to its clients. Upon its client frees the memory, the virtualized audio ION driver will request the physical VM to perform SMMU un-mapping. CRs-fixed: 2099245 Change-Id: Idca4ecda65910308d7f7af288381866ab4ce4a7a Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
* soc: qcom: add audio apr and ion virtualization supportDerek Chen2017-10-18
| | | | | | | | | | | | | | | | | Add support for virtualized APR and ION frontend driver for audio. Virtualized APR frontend driver resides in guest VM and supports all legacy APR APIs. It will rely on MSM_HAB to communicate with APR backend driver, which resides in physical VM, where legacy SMD is utilized for communication between APPS and ADSP. Virtualized ION driver currently is designed to extract physical memory through hypervisor abstracted ion layer, which can be shared between APPS and ADSP directly. CRs-fixed: 2047379 Change-Id: I7dad5aebfd1db00cd32807dc1219818a7a4e62c5 Signed-off-by: Derek Chen <chenche@codeaurora.org>
* Merge "ASoC: msm: qdspv2: add an API to destroy ion client"Linux Build Service Account2017-08-23
|\
| * ASoC: msm: qdspv2: add an API to destroy ion clientVidyakumar Athota2017-08-21
| | | | | | | | | | | | | | | | | | | | Currently ion fd is used to extract ion handle to free ion client. ION FD is not valid if user-space application is crashed so ion handle is returned to the client during msm_audio_ion_phys_assign() API which is used to destroy ion client in msm_audio_ion_phys_free() API. Change-Id: Idcc4ca838741aac26662a679117af9d9c935e630 Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
* | ASoC: APR: initialize struct member before being usedyidongh2017-08-22
|/ | | | | | | | Initialize member value of struct apr_client_data after declaration. CRs-Fixed: 2091948 Change-Id: I8a185ebd4126f7d064de90bf652bc96c2ab7b408 Signed-off-by: Yidong Huang <yidongh@codeaurora.org>
* soc: qcom: qdsp6v2: use hyp_assign() API for secure memoryVidyakumar Athota2017-08-07
| | | | | | | | | Add a new API to call hyp_assign_phys() function to assign the memory permissions to different subsystem like ADSP for secure playback applications. Change-Id: I1d13bd0cd3b5cdcbe37488800c7dad44a20f4996 Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
* Merge "ASoC: audio_notifier : Change logic for initial boot"Linux Build Service Account2017-06-01
|\
| * ASoC: audio_notifier : Change logic for initial bootRamprasad Katkam2017-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | In sdm660 due to change of notifier logic, there is a chance of receiving only service down notifications during bootup. In this case the initial boot flag is not cleared, as it is only cleared on service up notification currenly.because of this, the next service down event during SSR/PDR will be ignored. To fix this, clear initial boot flag for both first service up/down notification, so that Reset notifications are not ignored. Change-Id: Iae3ccc6a81fac5d9e5c640f0fee8bb2aee2271cd Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
| * ASOC: APR: Add separate notifier nodes for adsp/modem notificationsRamprasad Katkam2017-05-19
| | | | | | | | | | | | | | | | | | | | | | APR registers for subsys_notification via audio_notifier for both adsp & modem services, with the same notifier node. This causes intermixing of the audio notifier lists of modem and adsp as the same apr notifier node is added to both adsp & modem list.Make separate notifier nodes for apr adsp & modem notifications to avoid this issue. Change-Id: I4a9146fbe340d02e8af0082d5342e5ac8009e0c4 Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
* | ASoC: APR: Fix missing APR deregister from asmRamprasad Katkam2017-05-18
|/ | | | | | | | | | | | APR deregister is to be called for two ports from both q6asm_callback(during RESET) and q6asm_audio_client_free. In race condition between the two, APR deregister is called only for one port. The mismatch in apr register-deregister count causes apr not to reset service after ssr, causing APR communication failure. Change-Id: Ibd0528215bf2fb986eda03ae0d683b2af31358fe Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
* Merge "ASoC: msm: q6dspv2: fix APR deregistration logic in ASM during ADSP SSR"Linux Build Service Account2017-05-01
|\
| * soc: q6dspv2: apr: fix client registration refcountBanajit Goswami2017-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Audio Packet Router (APR) is used by multiple audio services to communicate between APSS and ADSP. These audio services registers for service level APR communication (port 0xFFFFFFFF), or for session level APR communication (using port 0x101 etc.). The services might choose to call apr_register for any port at random. The expectation is that the refcounting for the number of ports registered with APR for any specific service, is handled irrespective of the order in which registrations are done. The current logic fails to handle the refcounting when apr_register is called for 0xFFFFFFFF before other session based ports. Fix this correctly using the service count (svc_cnt) variable in apr_svc. CRs-fixed: 2022490 Change-Id: I2fcd1269facf24d509db0d90314e0d2545a2ad67 Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* | Merge "ASoC: msm: qdsp6v2: Initialize variables before use"Linux Build Service Account2017-04-14
|\ \ | |/ |/|
| * ASoC: msm: qdsp6v2: Initialize variables before useKarthikeyan Mani2017-03-17
| | | | | | | | | | | | | | | | | | Initialize variable before use to avoid invalid memory access. CRs-fixed: 2004067 Change-Id: I1ede035a71a620e6981731f0c76d90625c4898b8 Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
* | Merge "drivers: soc: apr: remove GLINK_TX_REQ_INTENT flag in apr write"Linux Build Service Account2017-04-04
|\ \
| * | drivers: soc: apr: remove GLINK_TX_REQ_INTENT flag in apr writeSurendar Karka2017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Glink will return failure if there are no intents available at the remote endpoint. Remove the GLINK_TX_REQ_INTENT flag so that glink returns EAGAIN error code so that apr_tal can retry. CRs-Fixed: 2002511 Signed-off-by: Surendar karka <sukark@codeaurora.org> Change-Id: I494bd26ed48ea2d80b1f76c8ee871ec76d428e4c
* | | drivers: soc: Add mutex lock in audio_notifier_late_initRohit Kumar2017-03-22
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | Audio_notifier_late_init registers clients dependent on PDR to correct service if registration to PDR on init fails. There is a possible race condition when audio_notifier_late_init and audio_notifier_register is called at same time. This may cause manipulation of the same lists and critical data at the same time. Add mutex lock to protect critical data. CRs-Fixed: 2016927 Change-Id: Iec5190a93b390d46f47fd67fd79b1b83d7fe4b29 Signed-off-by: Rohit Kumar <rohitkr@codeaurora.org>
* | drivers: soc: add size checkSiena Richard2017-03-03
| | | | | | | | | | | | | | | | | | Add size check to ensure the payload fits inside the declared payload size to prevent loss of data when copying. CRs-Fixed: 2009224 Signed-off-by: Siena Richard <sienar@codeaurora.org> Change-Id: I4275c626605272941143b54a7b8861b25f8e750a
* | soc: qcom: pil-loaders: move pil loading of ADSP, SLPI & CDSP to workqueueSatya Durga Srinivasu Prabhala2017-02-27
|/ | | | | | | | | | When pil loading done through user space helper, there is a possibility that signal could be pending on thread that initiated the pil, which would lead to pil failure. To avoid this issue, move pil loading for ADSP, SLPI and CDSP to separate workqueue in respective loader drivers. Change-Id: Ie60a7eba7c52ac1565ce166d0e367379cce0b03e Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
* drivers: soc: apr: add wake_up for a waitqueueVikram Panduranga2017-02-22
| | | | | | | | | | | APR client waits in a waitqueue for glink to queue intents. On receiving notification about availability of intent, wake_up should be called on the waitqueue to wake up any waiting APR client. CRs-Fixed: 1096481 Change-Id: I5a2b902fa831709092be1a9a3073b8d784adba81 Signed-off-by: Vikram Panduranga <vpandura@codeaurora.org>
* drivers:soc: Avoid use of uninitialized variableVatsal Bucha2017-02-20
| | | | | | | | | | While notifier de_register, we access the list which is not initialized. Hence can result in access of uninitialized variable. Update the loop to use correct list variable. CRs-Fixed: 2002748 Change-Id: Ibff56477ed3fba90c8ff704ea7dbe3c472f59836 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
* drivers: soc: add mutex to prevent response being processed twiceSiena Richard2017-02-07
| | | | | | | | | | Add a mutex to prevent two threads from processing the same response at the same time. This ensures responses are processed completely and sequentially. CRs-Fixed: 1116015 Change-Id: Id2ef32edb939f8af2850b54bd6f6f447939c0732 Signed-off-by: Siena Richard <sienar@codeaurora.org>
* Merge "drivers: soc: apr: create glink buffers dynamically"Linux Build Service Account2017-02-03
|\