Commit Graph

1805 Commits

Author SHA1 Message Date
Sameer Pujar
bff1871f76 nvadsp: fix build error related to counter
On 5.4 kernel, function arch_counter_get_cntvct() is not available
in arch_timer.h and this causes build error. This patch fixes the
issue by using __arch_counter_get_cntvct_stable() which provides
similar functionality.

Bug 200593718

Change-Id: I64732dc3a11effba0f05afb3f9cbd50351047ee8
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2341653
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Sameer Pujar
29efd1bd1b nvadsp: fix build errors due to chip-id.h
5.4 kernel no longer uses chip-id.h and instead fuse.h is used.
Currently this causes build issues in ADSP driver code and hence
related drivers are updated to make use of references as per
fuse.h for 5.4 kernel.

The issue is not seen on TOT because ADSP is not yet enabled.

Bug 200593718

Change-Id: I82af6a4f02ce64da4b20875a28f8ef9488b92e54
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2341652
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-06-20 15:13:15 +00:00
Bitan Biswas
ceb4b9f02e kernel: nvidia: use fuse.h instead of chip-id.h in k5.4
bug 200591811

Change-Id: If72122efdeda154f435f79da8f2cd9cad644d380
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2337930
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Sameer Pujar
6cd83e4d26 nvadsp: don't use tegra-pd for kernel 5.4 onwards
The usage of Tegra power-domains is deprecated from kernel-5.4 and
instead generic power-domains should be used. Current driver code
is common across multiple kernel versions and to maintain backward
compatibility kernel version checks are added.

Bug 200593718

Change-Id: Ia49c0bab0d320de2d4a3a23e7e675242f56dbff7
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2334795
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Sameer Pujar
003fec905d nvadsp: fix 5.4 build error related to access_ok()
access_ok() macro has changed in 5.4 kernel and it does not accept
the same number of arguments any more. To fix the build error and
to make it work for all the supported kernels, a new local macro
ACCESS_OK() is introduced which can further make kernel specific
calls.

Bug 200593718

Change-Id: I71f766401ec185859b4185f2e4b4f2bb914965fc
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2323014
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Sameer Pujar
a617e73405 nvadsp: build dependency on HSP driver
ADSP driver has build dependency over HSP driver. Currently on
5.4 CONFIG_TEGRA_HSP is not yet enabled and it is causing build
break. This can be addressed by including corresponding driver
calls under above config check.

Bug 200593718

Change-Id: I4847f8ac251c9cb2bd96fbdecbf29b4200aca371
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2323013
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Asha Talambedu
b24ad07d95 nvadsp: Remove symbol table creation for l4t
Removed symbol table for L4T platform that has symbol stripped
adsp-fw

Bug 200536088

Change-Id: I18187479c796c98ce2dcc5865e1175dd9d7c9f5e
Signed-off-by: Asha Talambedu <atalambedu@nvidia.com>
(cherry picked from commit 4089e712d554081a69f34e60a01459cb19e1978c)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2308814
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-06-20 15:13:15 +00:00
Swati Sachdeva
0f6dc52655 nvadsp: Fixing adsp_ff_exit function
- ADSP thread was waiting on a sempaphore to wake up
- In case of shutdown when kthread_stop is called, kthread_should_stop
- will not be called if thread is not woken up

- Solution: Replace semaphore with wait_queue and use
- wait_event_interruptible
- wake up the thread if either there is a message in the list or
- kthread_should_stop is true

Bug 2739934
Bug 200560194
Bug 200463529

Change-Id: Iea04e0100248f554076aaed8627d40f5b96df2bf
Signed-off-by: Uday Gupta <udayg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2232868
(cherry picked from commit a3a81a984a933a8f580154b76098119427f5e19e)
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2238825
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Swati Sachdeva <ssachdeva@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>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
b72af873f4 ASoC: tegra-virt-alt: lpthread init via amixer
Change exposes lpthread/adsp usage trigger via
amixer. This is needed to make sound card aware
of lpthread state. Without this STR adsp feature
breaks as currently lpthread is written in such
a manner which does not allow adsp to suspend.

Bug 200552183

Change-Id: I2cc1e0fd805a982686bbd034b2c6e094b56df23b
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2198693
(cherry picked from commit e9bd14fd6eb0305cc583092752e6bdccc9c5e76a)
Reviewed-on: https://git-master.nvidia.com/r/2250202
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Swati Sachdeva <ssachdeva@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Uday Gupta <udayg@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>
2023-06-20 15:13:15 +00:00
Asha Talambedu
dddab770de platform: tegra: Make ADSP CPU driver a LKM
-Made necessary Kconfig and makefile changes
 required to make ADSP CPU driver a loadable kernel
 module.
-Had to replace nsec_to_clock_t api with functions that are
 available as exported symbols as nsec_to_clock_t is not an
 exported symbol

Bug 200560561

Change-Id: Ia2fa069d9bb234b57f19cbf919c9e6d7567f3d7b
Signed-off-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2215613
(cherry picked from commit 519a4618c452e3a62550d4fdf3ec5b52acf8b9c8)
Reviewed-on: https://git-master.nvidia.com/r/2228337
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
1dd46a95c7 ASoC: tegra-alt: remove redundant drivers
- remove unused code
- update hypervisor check condition

Bug 200552920

Change-Id: Ie2ca3542d8dc50191f402c9d4c96d56e4c89db7a
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2200432
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Tested-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Niranjan Dighe
a1a7e31c61 Revert "adsp: add dma_set_mask parse"
This reverts commit 4c531e24d2a08eaef19ea5e366374d0aab6b58bd.

Jira EMA-1251

Change-Id: I3de386b442ecf3beca938db0725bbe3e673d15c1
Signed-off-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2166541
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Niranjan Dighe
15961fe4f8 nvadsp: logger: reset is_opened flag on file close
adsp_logger file could not be re-opened after closing and open call
always returned -EBUSY. This was because logger->is_opened was never
reset in the file close path. Setting it to 0 in .release callback
solves the problem.

Jira EMA-1321

Change-Id: I42834fa7af19bacc4326cd32745996b6f4e47686
Signed-off-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2153912
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Niranjan Dighe
8916271137 nvadsp: adspff: fix issues with kthread impl
- Implement file list rather than fixed length array
- Fix issues related to file mode handling
- Change file not found validation with respect to commit c136844cd414
  ("nvadsp: adspff: use kthread to schedule file io")

Bug 2538512

Change-Id: I1cd8fa065887effa6073d963df62f6e1bb877a1d
Signed-off-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2102696
(cherry picked from commit ea7d4ea78a22b7d8675966f2b2f85343c488d059)
Reviewed-on: https://git-master.nvidia.com/r/2150780
Tested-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Shashank Verma
b82520e6d3 nvadsp: adspff: add spinlock across list_del
Added spinlock across list_del to prevent
race between itself and list_add_tail.

Bug 1846449
Jira EMA-847

Change-Id: Icc27b0d4926659a04bff3ddb02ec0c11ed1e0a70
Signed-off-by: Shashank Verma <shashankv@nvidia.com>
Reviewed-on: http://git-master/r/1326930
(cherry picked from commit f097894d0382f79c100bf7bd75c7f923eb20085c)
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2029205
(cherry picked from commit a7ca3766153a0c5068fbc0dff7391426a948e79a)
Reviewed-on: https://git-master.nvidia.com/r/2030553
(cherry picked from commit 2806ac36bc24af1796e875edc4a6678e2db86f97)
Reviewed-on: https://git-master.nvidia.com/r/2150779
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Gaurav Tendolkar
857731124c nvadsp: adspff: use kthread to schedule file io
- Workqueue scheduling latency causes issues for
  adsp apps requiring real time behaviour. Hence
  use RT kthread to schedule the file io functions
- file open with O_TRUNC flag may take long time
  Hence we open the file just once and just reset
  the read/write pointers in a file close call
- Expose sysfs entry to actually close all files
  opened by kernel

Bug 1846449
Jira EMA-847

Change-Id: I3c130b36e5f5f5a0e65ddb4c44efc8754fb006d2
Signed-off-by: Gaurav Tendolkar <gtendolkar@nvidia.com>
Reviewed-on: http://git-master/r/1314984
(cherry picked from commit 00f5d0b48aa0df9a720c6fd15b4cffd827408375)
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2029203
(cherry picked from commit 6760f7d61a589b90a8c156a38e4453b518a20b05)
Reviewed-on: https://git-master.nvidia.com/r/2030551
(cherry picked from commit c136844cd4147c25478fe39a15122a1f43553079)
Reviewed-on: https://git-master.nvidia.com/r/2150778
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Niranjan Dighe <ndighe@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Hariharan Sivaraman
cb8fd9beb2 nvadsp: allocate adsp shared memory dynamically
NVADSP driver tries to allocate shared memory for ADSP
by requesting the DMA APIs to allocate at address hardcoded
in DT. This poses an issue where if kernel has already allocated
that memory to a different driver in same iommu group, this
memory becomes unavailable and ADSP does not boot

Adding support to allocate shared memory for ADSP dynamically
to avoid dependencies on other drivers

Jira EMA-1213

Change-Id: I1bc8d49f17ec8226d34f3c943cccabef97b2afb6
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2134341
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Uday Gupta <udayg@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Niranjan Dighe <ndighe@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>
2023-06-20 15:13:15 +00:00
Hariharan Sivaraman
dfc3347d28 adsp: add support for ivc based adsp reset control
For virtualized configurations, ADSP reset will be owned
only by Audio server.

- Moving tegra-virt-alt-ivc to drivers/.../nvaudio_ivc/
to enable Audio IVC to be built as part of Image

- Adding support in nvadsp driver to communicate with
Audio server for asserting or deasserting ADSP.

Jira EMA-1208

Change-Id: I6773c35edf2c646aa9fd7ec0aa5eceb992dffa35
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2113661
Reviewed-by: Uday Gupta <udayg@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Mohan Kumar D <mkumard@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>
2023-06-20 15:13:15 +00:00
Nicolin Chen
767700e13d platform: nvadsp: Fix iova reservation
There is no point in managing iovad that's not binded to
device's IOMMU domain. So this patch just removes iovad
managing code and does a correct iommu_dma_alloc_iova()
to reserve the iova.

A difficulty of using iommu_dma_alloc_iova() is that we
mostly do not use aligned addresses for the target iova,
but IOMMU core aligns the iova address with the size by
power of two due to cache friendly. So the trick here is
to align the start address and to allocate a larger iova
region that would cover the target iova -- the excessive
part will be freed during iommu_dma_free_iova() by IOMMU
core.

Note that the dma_free_coherent() does both iommu_unmap
and iommu_dma_free_iova, so there's no need of an extra
free_iova() in the exit routine. However, for the remap
part, the tmp_iova is allocated and mapped, so it should
be unmapped and freed. So this patch also adds a free()
of tmp_iova in the nvadsp_dma_alloc_at_map() function.

Bug 200444660

Change-Id: I54126c2bd9ff3dd688aaa5c6f9befaad620ab548
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2096704
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Nicolin Chen
d059cdbc44 platform: nvadsp: Remove iova lucky check
The logic of the nvadsp_dma_alloc_and_map_at() function is to
firstly reserve the target iova and secondly allocate a memory
with another dynamical iova.

Since the target iova is reserved, the dynamical iova won't be
possible to be identical. And this lucky check lacks of an exit
routine either.

So this patch just drops it.

Bug 200444660

Change-Id: I5c45e72b1e7315dacd8708fc8facf6bda41c51e5
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2098219
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Nicolin Chen
65f4df1dc4 platform: nvadsp: Drop KERNEL_VERSION check
The dma-mask could be applied to an older kernel as well.
And this is essential for nvadsp driver to use the newer
nvadsp_dma_alloc_and_map_at() function. Though downstream
kernel 4.9 still has dma_alloc_at_coherent() support, it
would be cleaner to have nvadsp code using a unified way
instead of adding older dma_alloc_at_coherent() back with
another KERNEL_VERSION check.

Bug 200444660

Change-Id: I3968155c7439789a398ca499e70598ce1385737a
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2096705
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Nicolin Chen
5759b9d6d4 platform: nvadsp: Fix dma_free_coherent() call
The parameters of dma_free_coherent() should be in order of:
1) Device pointer 2) Size 3) CPU virtual address 4) Device address

However, the dma_free_coherent() here mixes with the size with the
device address which will trigger kernel bugs. So this patch fixes
the bug by exchanging those two.

Bug 200444660

Change-Id: Ib0b7855be3868908a4fd59beb938f8bec9e6daee
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2098218
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Nicolin Chen
df7a7fb5ab platform: nvadsp: Fix mismatched mutex lock/unlock
The function hasn't grabbed the mutex_lock yet at first
condition check. So this patch changes the exit path to
return directly instead of jumping to the mutex_unlock.

Bug 200444660

Change-Id: I122fc9cd145a5de932b4ae55d88c878231926072
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2098217
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Nicolin Chen
9b6d089a5e platform: nvadsp: Deprecate dma_alloc_at_coherent
The dma_alloc_at_coherent is implemented with a hack in the
iommu core code, which is unlikely able to get upstream. So
this patch removes its callers in the nvadsp code, and then
adds an alternative helper function to do something similar.

The dma_alloc_at_coherent was used to allocate a DMA buffer
and to map it to a specified iova address. And this can be
done by remapping a normal DMA buffer to the iova address.

Bug 200444660

Change-Id: Ic90aec550daa29df69d97c4b230c8f9cc1519166
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2083356
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Niranjan Dighe
27c5e1cba3 adsp: fix tlv read write issues
Change fixes problems caused in tlv read and write
synchronization with other messages
- Add separate spinlock completions for tlv read
- Add separate spinlock completions for tlv write
- Add separate ack for raw (tlv) messages
- Print msgq indexes when queue or dequeue fails

Bug 2420196

Change-Id: I405e3a9939ec804dc65875d900ba635d2dc15ee3
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1975072
(cherry picked from commit 1df184d908c84c8f4e15b48cdd9ada90da313169)
Signed-off-by: Niranjan Dighe <ndighe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1986443
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Uday Gupta <udayg@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>
2023-06-20 15:13:15 +00:00
Anuj Gangwar
99fa48e09c include: uapi: move adsp user-interface header
Move the driver adsp_console_ioctl.h user-interface headers from
drivers/platform/tegra/nvadsp/adsp_console_ioctl.h to
include/uapi/misc/

Change the path for above headers in the dependent files.

Bug 2062672

Change-Id: I7337c0fc03a75101b4276773368a7c4eccd25960
Signed-off-by: Anuj Gangwar <anujg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1956612
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Hariharan Sivaraman
ee8de73c70 nvadsp: Clear HWBOX0 for ADSP guest reset handling
During ADSP playback, if HWMBOX0 is high and guest reset is
done, after reset ADSP is unable to communicate with kernel
driver since the interrupt line remains High thereby not
generating interrupt (edge triggered).

Jira EMA-1178

Change-Id: Ifb1283c7286ed944f243e7d92dfe4db40bcd0ba2
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1978017
Reviewed-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Dipesh Gandhi <dipeshg@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>
2023-06-20 15:13:15 +00:00
Niranjan Dighe
989d49990e nvadsp: adspff: Fix kernel crash if file not found
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>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
e23ed464ef nvadsp: adsp suspend/resume handling
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>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
6a3e481f36 nvadsp: prevent race in os_queue for app
Change add spinlock to nvadsp app start and init
functions for os_queue write protection. It make
sure only one app from different context can update
queue at given time.
Also added some debug info to adsp driver for providing
extra info for debugging purpose.

Bug 2060866

Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Change-Id: If1bbfdb233d2af984f62bb02ed515eec1ab8a492
Reviewed-on: https://git-master.nvidia.com/r/1655974
(cherry picked from commit 7edeb242aba4cabc517b6e270b254777e3ea66ea)
Reviewed-on: https://git-master.nvidia.com/r/1775133
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-by: Viraj Karandikar <vkarandikar@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Uday Gupta
7d7819bcb2 nvadsp: Add get file size support to adspff APP
Add adsp_fsize support

Bug 2060675

Change-Id: I288d09c290eab940547c76654fa5708efc40724d
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1775909
GVS: Gerrit_Virtual_Submit
Tested-by: Uday Gupta <udayg@nvidia.com>
Reviewed-by: Swati Sachdeva <ssachdeva@nvidia.com>
Reviewed-by: Viraj Karandikar <vkarandikar@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>
2023-06-20 15:13:15 +00:00
Mika Andersson
0d5e6bc927 platform: nvadsp: Check input buf-size in adsp logger
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>
2023-06-20 15:13:15 +00:00
Hariharan Sivaraman
385dc63275 nvadsp: Add ADMA page info in hwmbox
For virtualized configurations, add DMA page info
for ADSP to read via HWMBOX. Remaining DMA pages will be
unmapped by ADSP OS

Jira EMA-414
Jira EMA-415

Change-Id: I67b7b2069aca07948e63436367d80a2baeaaf6ae
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master/r/1477304
(cherry picked from commit 93f338df31af5894935754aac23bb003168f9ea0)
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1567625
Reviewed-by: Viraj Karandikar <vkarandikar@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Dara Ramesh
6b338bab49 adsp: add dma_set_mask parse
Add dma-mask parsing in device tree for adsp
driver to start allocations start from the
specified address and downwards.

This will allows adsp binaries are placed
at top of the IOVA space

Bug 200385990
Bug 200406253

Change-Id: Id37579a78e6d788cfd722505a23e90f249cee5eb
Signed-off-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1755675
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Dara Ramesh
beddbe937e adsp: updated standard include path & clock_t api
cputime64_to_clock_t is deprecated on kernel 4.14
as it is an architecture defined type
so changing cputime64 to nsecs.

Bug 200406253

Change-Id: I16bac09da698ca1b15130be69fb7c58c70d3ce94
Signed-off-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1742429
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>
2023-06-20 15:13:15 +00:00
Uday Gupta
159d4e9e34 nvadsp: Increase static app queue size
Increase static app init queue size between ADSP
and CCPLEX to handle more APPs.

Bug 2131818

Change-Id: Id8b376f312c3a3f04ec82abe69ec62994fcc0254
Signed-off-by: Uday Gupta <udayg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1726937
Tested-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Dipesh Gandhi <dipeshg@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nitin Pai <npai@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
ca09364356 nvadsp: clock cleanup for audio devices
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>
2023-06-20 15:13:15 +00:00
David Gilhooley
d56b0972b0 platform: nvadsp: prevent speculative load related leak
Data can be speculatively loaded from memory and stay in cache even
when bound check fails. This can lead to unintended information
disclosure via side-channel analysis.

To mitigate this problem, use array_index_nospec.

Bug 2060857
CVE-2017-5753

Change-Id: I3b79ab2df0cff5eb7f94f8056cfdfb98ac69037a
Signed-off-by: David Gilhooley <dgilhooley@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1684649
Reviewed-by: Bo Yan <byan@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
c844c3a973 nvadsp: false trigger for adsp boot
Change add spinlock protection for message enqueue to avoid possible
race condition between enqueue and dequeue of ADSP OS message.

Bug 2031075

Change-Id: Iad243fdf034db89a61e32411a8b03c817c19d81e
Signed-off-by: Dipesh Gandhi <dipeshg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1613124
(cherry picked from commit 3d146a3ba4dbe4c1375d64d425ff0b9be7f7c272)
Reviewed-on: https://git-master.nvidia.com/r/1669402
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Tested-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Ajay Nandakumar
c8f7a26db7 platform: nvadsp: Reduce blocking time of logger
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>
2023-06-20 15:13:15 +00:00
Ajay Nandakumar
168fe1fdab platform: tegra: nvadsp: remove export symbols
Remove export symbols for APIs that are not exposed and not used by
other modules except ADSP driver.

Bug 200381256

Change-Id: Ibe11e5992e5a93b7a5698a6158d9d27e4f55d453
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1652773
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Ajay Nandakumar
5c63aad7c2 platform: nvadsp: do not export da to va mappings
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>
2023-06-20 15:13:15 +00:00
Dipesh Gandhi
e0ecbe2746 platform: nvadsp: print app version info
Print each app's version info string in
the app's sysfs node

Jira EMA-841
Bug 1819427
Bug 200381729

Change-Id: I2cbb7e13a4a351100812dcf63f9f62b8268c874f
Signed-off-by: Gaurav Tendolkar <gtendolkar@nvidia.com>
Reviewed-on: http://git-master/r/1246459
(cherry picked from commit 1ccaba7f30c1b663fef0082b0686e1a3ba65e484)
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1640900
(cherry picked from commit e81e6dd69db817a351f09befd86ac5612eb003f3)
Reviewed-on: https://git-master.nvidia.com/r/1652453
Reviewed-by: svcboomerang <svcboomerang@nvidia.com>
Tested-by: svcboomerang <svcboomerang@nvidia.com>
2023-06-20 15:13:15 +00:00
Ajay Nandakumar M
07d0f698f2 Revert "Revert "platform: nvadsp: Ability to get chip id on ADSP""
This reverts commit 45f17000bcd1a32f4b6d35a11af476c4dc152060 and
restores change https://git-master.nvidia.com/r/1645257.

Bug 200372198

Change-Id: I3798ac0ba7432cc50df18dde65705145f62c0616
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1652521
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Bharat Nihalani
3079cc865b Revert "platform: nvadsp: Ability to get chip id on ADSP"
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>
2023-06-20 15:13:15 +00:00
Ajay Nandakumar
8f2612d56d platform: nvadsp: Ability to get chip id on ADSP
Adding ability for ADSP OS to get chip id. This can be used
to enable/disable features.

Bug 200372198

Change-Id: I9f872065bcffa714bf1e2added7c41c3b228cebc
Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1645257
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
David Gilhooley
c79dd8ba50 platform: nvadsp: prevent speculative load related leak
Data can be speculatively loaded from memory and stay in cache even
when bound check fails. This can lead to unintended information
disclosure via side-channel analysis.

To mitigate this problem, insert speculation barrier.

bug 2039126
CVE-2017-5753

Change-Id: I5a745320b64bf6689cf8ac4b713cf1b32f662a23
Signed-off-by: David Gilhooley <dgilhooley@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1640352
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Prateek Patel
562a14e11b platform: tegra: adsp: add dynamic_app_support
adding dynamic_app_support flag for the dynamic apps and
setting it to true if load from "adsp.elf"

bug 1833670

Change-Id: Ic68611e140f6bc0392a4fb153436d196bf0bda1c
Signed-off-by: Prateek Patel <prpatel@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1618738
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Ian Chang
b3ff5cc423 adsp_dfs: define adspfreq_stats_update conditionally
Define function adspfreq_stats_update only if CONFIG_DEBUG_FS is enabled.
Otherwise, this function is unused, which triggers a warning and may
be treated as an error.

Change-Id: Ia0d6d004dc74ce942db7579810297c469d8ff44f
Signed-off-by: Ian Chang <ianc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1610762
(cherry picked from commit ed13d72d6b99b93095600aad0e02aae6eaf44e8c)
Reviewed-on: https://git-master.nvidia.com/r/1626906
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-06-20 15:13:15 +00:00
Prateek Patel
9de7361de1 platform: tegra: adsp: share exception data
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>
2023-06-20 15:13:15 +00:00