- Adds syncpt emulator wrapper class for axi-nvdla.ko module
- Fixes minor bugs
- The behavior of SHIM write differs between the nvhost
syncpoint and nvhost-emu. The DLA KMD accommodates the
same.
- For the simulator, there is no proper management for loading
and unloading the firmware. This will lead to a undefined
behavior. This commit fixes the issue through use of refcnt.
- The RISCV will be in halted state and will continue from where
it left off. Due to a security configuration, the DLA cannot
reload the firmware again and again after booting the system.
As a WAR, the simulator avoids reloading the IMEM and DMEM.
Raised a Bug 4960393 to provide a proper fix and work around
is protected using macro BUG_4960393=1
- The FPGA is always considered on. Raised a Bug 4972382 to
enable power management and work around to skip the power
operation through macro BUG_4972382=1
Bug 4942853
Change-Id: I0bf0262d6fde3b3da47f040c493d915ae6a1f98a
Signed-off-by: Arvind M <am@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3248734
Reviewed-by: Vishal Thoke <vthoke@nvidia.com>
Reviewed-by: Ken Adams <kadams@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Mitch Harwell <mharwell@nvidia.com>
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Currently vblk driver uses wait_for_completion() for the requests from block layer or responses from Storage Server. wait_for_completion() make the current waiter to be un-interrutable. But linux top utility loadavg metric includes the processes both in running state and uninterruptable sate.
Replace wait_for_completion() with wait_for_completion_interruptible() in driver, so that vblk wait will not be included in loadavg.
This changes is made as per customer request. It is for only cosmetic or for accounting purposes and no effect in functionality.
Bug 4767390
Change-Id: I2b885a1623b7d2d3a7af00951c5421dacf9d3d26
Signed-off-by: Vikram Kanigiri <vkanigiri@nvidia.com>
(cherry picked from commit ff34c49236bf57542eae09a7e7f7189ac8bddd13)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3219307
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sreenivas Velpula <svelpula@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
(cherry picked from commit 2784d7b651cea6eb22195443d2cf43593084324b)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3262249
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
When compiling the tegra-oc-event driver with Linux v6.13 the build
fails with the following error:
drivers/thermal/tegra234-oc-event.c:127:48: error: missing braces around
initialiser [-Werror=missing-braces]
127 | static const struct attribute_group oc1_data = {
| ^
The 'NULL' initialiser is not needed in the above structure because it
is not any array. Fix the build for Linux v6.13 by removing the NULL
initialisers from the appropriate structure declarations.
Bug 4991705
Change-Id: I2ddb99a316aa0124e9a4c1850ba1ea87d16abcbc
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3261689
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Yi-Wei Wang <yiweiw@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
In Linux v6.12 the definition 'no_llseek' was finally removed. Since
Linux v6.0 it had been redefined as NULL. Add a test to conftest to
determine if 'no_llseek' is present and if not then it is no longer
necessary to populate this and we can leave as NULL.
Bug 4876974
Change-Id: Idc0f5eff6f95f404a24b6d795f6a9460b99639e4
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3261670
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Pushpesh Pranjal <ppranjal@nvidia.com>
Commit ef4c675dc296 ("genirq: Unexport nr_irqs") unexported 'nr_irqs' in
Linux v6.13 and this breaks the build for the cpuidle-debugfs driver.
For Linux v6.13 the number of IRQs can be queried by using the function
irq_get_nr_irqs() instead. Fix the build by using conftest to detect if
the function irq_get_nr_irqs() and use this function if it is present.
Bug 4991705
Change-Id: I98d477896fcf9e8d2e1afa21e2f7ba4d071ab442
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3261690
Reviewed-by: Ishan Shah <ishah@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Preetham Chandru R <pchandru@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
With Linux v6.13, the Tegra264 NVADSP driver fails to build and the
following errors are observed:
In file included from drivers/platform/tegra/nvadsp/dev-t264.c:4:
include/linux/reset.h:30:49: error: implicit declaration of function
‘BIT’ [-Werror=implicit-function-declaration]
30 | #define RESET_CONTROL_FLAGS_BIT_ACQUIRED BIT(2)
| ^~~
In file included from drivers/platform/tegra/nvadsp/dev-t264-aon.c:4:
/include/linux/reset.h:30:49: error: implicit declaration of function
‘BIT’ [-Werror=implicit-function-declaration]
30 | #define RESET_CONTROL_FLAGS_BIT_ACQUIRED BIT(2)
| ^~~
Fix this by adding the missing 'bits.h' header.
Bug 4991705
Change-Id: I08a6cb59339f8e5221fdc3f39b2a7323cae0cd1f
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3261688
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
- added a device node to fetch the raw traces
- keeping both option available: existing worker method,
using device node to fetch raw traces
- both blocking & non-blocking call support,
user can decide it
- multiple file open support, each file descriptor
context have its own read pointer of trace memory
Jira CAMERASW-27486
Jira CAMERASW-27487
Jira CAMERASW-27774
Change-Id: I93942d273570857b0073e0e863e41c221c36ebb7
Signed-off-by: Pushpesh Pranjal <ppranjal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3215749
(cherry picked from commit 21a9c245ea4be51117c379d77c45de1ddc3a167c)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3241811
Reviewed-by: Evgeny Kornev <ekornev@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
- Define boot log related HSP message ID's.
- Call camrtc_hsp_vm_read_boot_log as the first step during the HSP
handshake.
- The read_boot_log function will wait for 2000 ms for a boot log
message. If the RCE has hung during boot, this will timeout, and return
with error.
- Move dev_set_drvdata to before camrtc_hsp_probe in camrtc_hsp_create.
Explanation: The RCE, during a normal boot sequence, will boot before
the RTCPU KMD starts probing, so the mailbox will already be full
when the HSP driver is initializing. The RTCPU HSP full interrupt
handler will be called immediately after the handlers are registered
by the mailbox driver. The interrupt handler will reference the HSP
device's drvdata, and it was a race condition as to whether the
interrupt handler would be called before the drvdata was set.
Thus, this change sets drvdata before the interrupt handlers are
installed to prevent this race condition.
- Update the full interrupt handler to return if camhsp is null.
Jira CAMERASW-27443
Change-Id: Ibb7ed41771d2178e0d06adb94ae1955db61b9d92
Signed-off-by: Akihiro Mizusawa <amizusawa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3239620
Reviewed-by: Chinniah Poosapadi <cpoosapadi@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Semi Malinen <smalinen@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
This patch implements the following improvements:
1. Add proper NULL pointer checks to prevent dereferencing
NULL pointers
2. Break down the isp_capture_setup function into smaller, more
manageable chunks to improve readability and error handling
3. Consistently set error codes before jumping to failure handling
4. Standardize the use of goto statements for error cases
5. Improve error logging using dev_err() to provide more context
for debugging
Bug 4778298
Jira CAMERASW-27054
Change-Id: I62ff4868b81107ac41e8561729cf1b9bede6c909
Signed-off-by: ayush <ajef@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3220092
(cherry picked from commit 905ff68fe62a42685a97402e58a1fa3cbcab28f4)
Change-Id: I7ec8f31ce058f2658d776080c62e44dd5b190463
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3250557
Tested-by: Ayush Jef <ajef@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Semi Malinen <smalinen@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Add a userspace interface for providing access to the memory syncpoint
shim through dma-buf file descriptors. Applications can pass references
to syncpoints to other devices that only support memory semaphores to
facilitate synchronization with syncpoints.
Only syncpoints allocated through the DRM file descriptor ("owned" by
the application) can be exported read-write. All syncpoints can be
exported read-only.
Jira HOSTX-5722
Bug 4919132
Change-Id: I4f5c007b7f9ba65780c418b4e22c5f59a11ef84d
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3252026
Reviewed-by: Santosh BS <santoshb@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Retrieve information for the memory syncpoint shim from the device tree
and add an interface to provide the information to other drivers.
The memory syncpoint shim is a special area on the data backbone,
where each memory page corresponds to a host1x syncpoint. Reading
the page returns the value of the syncpoint, and writing to it
increments the syncpoint by one.
Jira HOSTX-5722
Bug 4919132
Change-Id: Ie892abd754f7543fbc56844dcc40cab3f837e305
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3252025
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Santosh BS <santoshb@nvidia.com>
If we have any export symbols in nvmap, we would have to show the
interactions between KMDs as a path in our threat model.
Hence remove the following unnecessary export symbols from nvmap.
- nvmap_register_vidmem_carveout: Not being used on TOT
- nvmap_dev: Used by one of nvmap_ktest which is also being cleaned up.
JIRA TMM-5842
Change-Id: I65d466a37ef51f3222bed4d084efaff92480a21f
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3254553
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
Firmware requests triggered by userspace action can be executed
in interruptible context, which can cause signals to interrupt
firmware loading.
Ordinarily, one would propagate the error code to userspace and
let it retry. However, request_firmware does not have proper
handling of retryable errors, as sysfs fallbacks will clobber
the original error code. Furthermore, pm_runtime, through which
we would propagate the error code, doesn't support transient
resume failures either.
As such, as a quick fix, change to request_firmware_direct and
retry it directly in situ 10 times.
Bug 4753613
Co-developed-by: Zuyi Hu <zuyih@nvidia.com>
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Change-Id: Idb9a04d4fa80aeffbfd0ad0176cce55c4dedf488
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3202848
(cherry picked from commit a17e81cad18bbdfef0194471524b675d74501054)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3219109
(cherry picked from commit 30c08f369a8f3acd642fcec70814086bd472e734)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3253514
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Santosh BS <santoshb@nvidia.com>
Tested-by: Zuyi Hu <zuyih@nvidia.com>
This patch fixes a race condition between
tegra_dce_unregister_ipc_client and dce_client_ipc_wakeup.
If dce_client_ipc_wakeup is called just after unregistering
it'll result in accessing already freed data structures and
kernel crash. This patch adds a check to validate if the client_ipc
struct is valid before accessing its members.
Bug 4913921
Change-Id: Ie7f25379d7254d1f1ad4fb17baafee353f6d9eca
Signed-off-by: Mahesh Kumar <mahkumar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3239873
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com>
- Initialize lock per device node and take lock at the
start of processing of each ioctl command. This is needed
because there is only one set of IOVA buffers allocated
during init per device node. Without lock it leads to
race conditions when more than one app uses the same
device node.
- Release tfm after each API call for both sha and hmac-sha
- Validate rng buffer size provided by user
- Support buf size up to HW supported limit for GCM-Dec req
if tag verify is supported by HW.
Jira ESSS-1517
Bug 4881474
Change-Id: I338558656ac00b91750e74990bb47c5a35f31e08
Signed-off-by: Nagaraj P N <nagarajp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3233377
Reviewed-by: Leo Chiu <lchiu@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>