Check file->fp for NULL before returning the file handle to
ADSP in adspff_fopen, which otherwise results in a kernel crash
on successive file operations using the same file handle if the
requested file does not exist.
Jira: EMA-1152
Change-Id: I307cc82dd3a2135039b819d1f746ee8164568110
Signed-off-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1929809
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Change adds pm ops in nvadsp driver to support suspend/resume
functionality. Without the change, if playback/capture is active when
system suspend occurs, the nvadsp driver is never suspended and hence
the clocks are not disabled.
In terms of power sequence device driver registered as late_suspend are
suspended first followed by noirq pm ops registred devices.
adsp_audio device node is registered for late suspend. To make sure
adsp_audio suspend is called first nvadsp is registered under noirq pm
ops
Jira EMA-641
Change-Id: I3a6c3d75cbafc9e25771c4207113db1cd8066d09
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1689900
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Jinyoung Park <jinyoungp@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Adsp logger's read incorrectly expected the (remaining)
size of the user-buf to be at least ADSP_TAG - 1 chars.
That has been corrected.
For simplicity there is no state machine introduced to
make sure the ADSP_TAG is always complete in the log.
In the case the tag needs to be added to user-buf without
sufficient size it gets simply truncated.
Bug: 2108805
Change-Id: Ifd137980be521ca3c0932248353f10ea0e92692a
Signed-off-by: Mika Andersson <mikaa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1770559
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Viraj Karandikar <vkarandikar@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Change cleans up ape, apb2ape clocks from nvadsp device.
These clocks will be controlled by parent aconnect bus device
as for any audio use case to work we need these clocks.
PM_RUNTIME on nvadsp will call runtime for aconnect which
will enable these minimal required clocks.
Jira EMA-641
Change-Id: I2f452ed1f28fc2ee79bd0f7eac686aeccd8d9513
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1688359
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
The logger currently blocks in open for finding SOH within the
circular buffer. This blocking is infinite. However, the SOH
is written in buffer for sure when adsp boots.
Hence, added a check to see if in the past if adsp has been
started and then search for SOH else return an error.
Also, the blocking takes place in the read path where the logger
waits in the position where it gets EOT and loops back. This is
not desirable due to recent changes in debugfs and hence now the
read path returns back with an ASCII value of BELL which will not
effect `cat` from writing anything on the console.
Bug 1997011
Change-Id: Ia6e990bcdc1af5c328c24f350af941126beda07a
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1662918
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Timo Alho <talho@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
nvadsp_da_to_va_mappings API provides the ability to get the virtual
address from the physical address. This API does not need to be exposed
as there are no other modules using it and prevent prevent speculative
load related leak.
Bug 200381256
Change-Id: Ic94497ca40402101e4246b914f00e030551b0c4c
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1652771
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This reverts commit baa2e9cd86a446e085091494be4247d2a4b64a33
since it causes ADSP tests to fail on T18x and T19x
platforms.
Bug 2057870
Change-Id: Ibfc1ec5dfcd678bf608598edc1f118a452d072e3
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1651935
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
adding ability for ADSP to share data when an exception occurs
on the ADSP. The data is shared through the shared memory across
the host.
adding shared exception data prints on host side for debugging.
bug 1868578
Change-Id: I6645e8ae6ab73e5c9df8374f583dacbed4615536
Signed-off-by: Prateek Patel <prpatel@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1611260
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Update all Kconfig files and Makefiles to rely on the kernel overlay
feature. In particular, don't include any Kconfig files or Makefiles
from other overlays. -I directives in CFLAGS are not yet cleaned up.
Bug 1978395
Change-Id: I425d37d55f8ea61fb3a082a1504f994ff30cec03
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1561187
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Select ARM_GIC_PM by default as K4.9 nvadsp driver needs
GIC PM feature. For K4.4 there is no dependency and no such
config so it will be ignored.
Bug 200325731
Change-Id: I05735a7f5e2ae6f31df6938a45b89dc83150c7ec
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1537419
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Rename Makefile and Kconfig as Makefile.nvidia and Kconfig.nvidia
respectively. This is done to allow use of downstream nvadsp
driver in kernels like K4.4, K4.9, etc.
Bug 200325731
Change-Id: I96269398089700677bdf919519295f80b40e7848
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1537418
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
GVS: Gerrit_Virtual_Submit
With adma driver as module, following compilation error is seen
"undefined reference to tegra_adma_dump_ch_reg".
In the current patch, adsp code exports a function to set regdump
function call back. This function is used by adsp audio driver to
set the function pointer to tegra_adma_dump_ch_reg. This is done
in tegra210_adsp_init().
Bug 200289390
Reviewed-on: http://git-master/r/1483001
Change-Id: I1ef259cf3b988a41720fb6706d39d9bd6f86aac3
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
(cherry picked from commit 36ccba1262928a6ce8b0f4fff1d4ad2591c4305d)
Reviewed-on: https://git-master.nvidia.com/r/1528158
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1537339
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Add checks for adsp os running state in adsp_override_freq()
and update_freq(). If adsp os is not running state then
communication with ADSP for freq update will not work. This
could result in failure in updating ADSP CPU frequency.
Bug 200295526
Bug 200322504
Change-Id: Iea25f542b080ac22faf562f35e82ceede43bbc83
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1526340
(cherry picked from commit 2aea120c7c1385e14f36e5fa707594e3ab6e2294)
Reviewed-on: https://git-master.nvidia.com/r/1527565
Reviewed-on: https://git-master.nvidia.com/r/1537337
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Making the "WFI wait" from interruptible to non-interruptible. This is
done because there is a probalbilty between the thread making a call to
nvadsp_os_suspend / nvadsp_os_start getting signaled or having a
pending signal before ADSP enters WFI and the CPU getting the WFI
interrupt.This results in wait_for_completion_interruptible_timeout()
returning -ERESTARTSYS, due to which nvadsp_os_suspend treats it as
failure although ADSP has entered WFI and the WFI interrupt has been
received on the CCPLEX.
Since this is a race it is not seen often.
Also, reducing the timeouts for WFI and logger wait to 800 and
500 ms respectively. The timeouts have been reduced because during
suspend there are only a few register writes and logger has been
reduced from 1 MB to 16 KB.
Bug 200317530
Bug 1893324
Change-Id: I40b3894f284763c0e4cc45647e1adf2cd074d701
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1517838
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1537335
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Instead of using mailbox to communicate change in adsp cpu
freq, update it in adsp os args from ccplex-adsp shared
memory. This adsp freq update is needed by EDF scheduler
for scheduling EDF threads. The EDF scheduler gets
current adsp freq from shared memory instead of
scheduler callback.
However, for APE1 (i.e. chips = T21x), timer prescalar
must still be updated through mailbox each time adsp cpu
freq is changed.
Bug 200322504
Change-Id: I26f14f5c4f5c2369d67dfcd73dc6b9664df2ca26
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master/r/1512069
(cherry picked from commit 76e8a4c19de2fa5f0d91ebefac68aa0b864cb0eb)
Reviewed-on: https://git-master/r/1512864
(cherry picked from commit 3100911879f9ea9930a515f6d55257caefcef869)
Reviewed-on: https://git-master.nvidia.com/r/1517749
Reviewed-on: https://git-master.nvidia.com/r/1537334
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit