Commit Graph

1805 Commits

Author SHA1 Message Date
Aingara Paramakuru
90d91c9462 video: tegra: virt: support IVC reset protocol
As part of the IVC reset protocol, IVC channels need
to be invalidated during init and the interrupt
handler should always handle IVC state changes first.

Bug 1597830

Change-Id: I58807f03c393c7ff0c1140e9180854e2c64c7e24
Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com>
Reviewed-on: http://git-master/r/671866
Reviewed-on: http://git-master/r/1198217
Reviewed-on: http://git-master/r/1314831
GVS: Gerrit_Virtual_Submit
Reviewed-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Tested-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Reviewed-by: Timo Alho <talho@nvidia.com>
2023-04-03 17:41:13 +00:00
Aingara Paramakuru
983d45ff71 video: tegra: virt: switch to IVC IRQ
Handling IVC notifications using the callback method is
problematic when trying to handle the IVC reset protocol.
The comm framework now handles IVC IRQs locally.

Bug 1566409

Change-Id: I969500dd5599efb15a49ee44a79a7872ecc48e58
Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com>
Reviewed-on: http://git-master/r/671865
Reviewed-on: http://git-master/r/1198216
Reviewed-on: http://git-master/r/1314830
GVS: Gerrit_Virtual_Submit
Reviewed-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Tested-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Reviewed-by: Timo Alho <talho@nvidia.com>
2023-04-03 17:41:13 +00:00
Aingara Paramakuru
0181342c83 video: tegra: virt: fix crash in tegra_gr_comm_init
The clean-up code did not iterate over the correct queue
elements, resulting in a kernel crash.

Change-Id: I48b3d901ad2cddca77a259c628aced65aa262069
Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com>
Reviewed-on: http://git-master/r/592208
Reviewed-on: http://git-master/r/1198194
Reviewed-on: http://git-master/r/1314829
GVS: Gerrit_Virtual_Submit
Reviewed-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Tested-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Reviewed-by: Timo Alho <talho@nvidia.com>
2023-04-03 17:41:13 +00:00
Aingara Paramakuru
7328f57280 video: tegra: virt: add virtualization interfaces
Tegra graphics virtualization (host1x syncpoint and gpu) is now
exposed to client drivers (nvhost and nvgpu). These interfaces
rely on a communication framework to communicate with the server
driver that actually implements the back-end routines.

Bug 1509608

Change-Id: I5277f4b024953772a2215d33afa178162f5f9232
Reviewed-on: http://git-master/r/440120
Reviewed-on: http://git-master/r/1198193
Signed-off-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Reviewed-on: http://git-master/r/1314828
GVS: Gerrit_Virtual_Submit
Reviewed-by: Timo Alho <talho@nvidia.com>
2023-04-03 17:41:13 +00:00
Mikko Perttunen
10c73be4bf gpu: host1x-nvhost: Fix invalid NULL check
NULL check in is_valid_pt_ext was negated, making this function
useless. Fix the check.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Change-Id: I8764bcfceb457bf26ef79ebffdf17526d4174849
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2861958
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Santosh BS <santoshb@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Arvind M
8942623b15 gpu: host1x-nvhost: avoid setting flcn irq at boot
[1] The DLA firmware configures the DEST and MASK registers during
    the initialization.
[2] In OOT, the DLA KMD is accidentally setting the interrupts. This
    will result in enabling additional interrupts that the firmware
    does not handle (like NVDLA_GENERIC_INTR_FAULT_CRITICAL).
[3] This commit fixes the issue by avoiding the interrupt settings
    at the DLA KMD.

Bug 3960841

Change-Id: Ied77ac7564ae3b3202b9cceaf08ad3c7da9f947c
Signed-off-by: Arvind M <am@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2861253
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Arvind M
bc86b17fa2 host1x: kmd: enable irq on poweron
[1] Since the irq is not enabled during the power-on, the firmware
    is not communicable state upon module reset.
[2] This commit fixes the issue by enabling irq on power-on.

Bug 3979666
Bug 3975703

Change-Id: I746a9236b390ab2d429df1f4a3f6243745147b65
Signed-off-by: Arvind M <am@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2858111
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Reviewed-by: Ayush Kumar <ayushk@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Tested-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
2023-04-03 14:06:51 +00:00
Sanif Veeras
b394e81a9e video:tegra:host: add gpu specific syncpt pool
- Support allocation from the GPU specific syncpoint pool
  after reading from the Device Tree
- Expose an interface for the NvGPU driver to allocate
  the syncpoint from the GPU pool

Jira HOSTX-4515

Change-Id: Ie5cc9ec22c039b958b0c0a1750f959ebbf6c6bee
Signed-off-by: Sanif Veeras <sveeras@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2820453
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-by: Raghavendra Vishnu Kumar <rvk@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Mahesh Kumar
88028eda4b gpu: host1x-nvhost: Align syncpt interface APIs
The syncpt interface APIs in the host1x-nvhost driver slightly differ
from those in the legacy nvhost driver because instead of passing the
platform device structure for the host1x device, the platform device
structure for the host1x client device is passed.

By aligning the APIs so that we pass the platform device structure for
the host1x in all implementations, we can simplify the PVA driver and
directly use the APIs in the NVIDIA display driver.

The NVIDIA display driver requires some additional syncpt interface APIs
and so implement these as well.

Bug 3713048

Change-Id: I507e6fd066e6e22c0c47c20ba0dd3be5fa033c59
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2813827
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Jon Hunter
7d40c3953e gpu: host1x-nvhost: Fix mapping of syncpt shim
With Linux v6.1, if CONFIG_PCI_P2PDMA is enabled, then mapping the
syncpt shim causes a kernel paging request fault. The fault occurs when
dma_map_sg_attrs() is called in by nvhost_syncpt_unit_interface_init(),
which is attempting to map the syncpt shim MMIO space.

The function dma_map_sg_attrs() calls iomm_dma_map_sg() and since
upstream Linux commit 30280eee2db1 ("iommu/dma: support PCI P2PDMA pages
in dma-iommu map_sg") was added this now calls is_pci_p2pdma_page(). The
function is_pci_p2pdma_page() requires that there is a 'struct page'
associated with the sg, but this is not the case and so deferencing the
'struct page' pointer returned by sg_page() results in a paging fault.

Using dma_map_sg_attrs() to map MMIO that is not associated with valid
page structures is not guaranteed to work. Therefore, fix this by using
dma_map_resource() to map the syncpt shim instead.

Bug 3871422

Change-Id: I2b08a3b78be0850bff44e62bfc93c8d095eb82a2
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2818417
(cherry picked from commit 97f1282f2959c208effebf93cc5061d6e7fa6c55)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2819086
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Jon Hunter
6cd2f00c46 nvhost: Add clean up function for syncpt interface
Drivers, such as the PVA and DLA driver, that call
nvhost_syncpt_unit_interface_init() during probe are missing a call to
clean-up the DMA mappings this function may create if the driver probe
fails or if the driver is removed. The function
nvhost_syncpt_unit_interface_init() may make a call to
dma_map_sg_attrs() and we need to ensure that dma_unmap_sg_attrs() is
called if the probe of the driver fails or if the driver is unloaded.
Add a new function, nvhost_syncpt_unit_interface_deinit(), that calls
dma_unmap_sg_attrs() if needed for drivers to call.

Bug 3800349

Change-Id: I62a4e19cd42878dac54fa623509440596ffdf17f
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2801280
(cherry picked from commit cee12fb989186611aa9deb5ada45831ab5f783aa)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2801934
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Mikko Perttunen
968b6f758f gpu: host1x-nvhost: Adapt for change in host1x_fence_create
Add 'true' parameter to enable internal timeout since there is no
external cancellation mechanism.

Also change kfree to kfree_rcu to ensure workqueue is not freed
during callback.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Change-Id: Ib0ef9a211bafbdd911dc90175a18680880e3e2f8
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2786638
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Jon Hunter
9d0dda14ae gpu: host1x-nvhost: Update include path
When building the host1x-nvhost driver as an external module, the driver
source is now copied into a common location with all the other external
modules. Therefore, we can now use the 'srctree.nvidia' path for finding
the necessary header files for Host1x. Update the include search paths
to use 'srctree.nvidia' when building the driver.

Bug 3817518

Change-Id: I443dd4cb6d01c4e9be8f3c02550b1050d0bcfd28
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2785956
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Jon Hunter
2e94a90e1d gpu: host1x-nvhost: Update syncpt helper functions
- add get aperture API
- add get syncpt offset api

Bug 3768126

Change-Id: I95ae6a149e8a362317f4f1c89e7a1eac3c596fe4
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2782259
Tested-by: Omar Nemri <onemri@nvidia.com>
Reviewed-by: Omar Nemri <onemri@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 14:06:51 +00:00
Jon Hunter
b5c5a485da gpu: host1x-nvhost: Add support for Tegra234
Add support for Tegra234 in the host1x-nvhost driver.

Bug 3724727

Change-Id: I3e42d066ce22a461d71f26c120f08aed96f30430
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2759200
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
2023-04-03 14:06:51 +00:00
Nan Wang
96d0bbd387 pva: support both upstream and downstream kernel
1. Replace nvhost print functions with PVA driver's private
implementation with similar functionalities.

2. Change syncpoint from host managed to client managed so that
syncpoint max value is tracked inside PVA driver. This change is needed
because upstream host1x driver doesn't allow decrement of max value.

3. Various minor changes for adapting to upstream kernel APIs.

Bug 3662478

Change-Id: I16eff6c06c51afe0f274598e1273404924d18684
Signed-off-by: Nan Wang <nanwa@nvidia.com>
Signed-off-by: Abhinaya Agrawal <abhinayaa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2710684
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 14:06:51 +00:00
Abhinaya Agrawal
c87eb8b8d9 drivers: Fix host1x and nvhost debugfs cleanup
Both host1x and nvhost expose APIs that deinitialize the debugfs
and remove debugfs files/directories that were created. At present,
debugfs_remove() is inovked to do this. However,
debugfs_remove_recursive() should instead be used to ensure that
all files within a debugfs are recursively removed before the
directory is removed.

Bug 3662478

Change-Id: Idb7d1458c02f57f6d656a7bfe1df3adf5e0497aa
Signed-off-by: Abhinaya Agrawal <abhinayaa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2714042
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Omar Nemri <onemri@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
58159f3b83 gpu: host1x-nvhost: Move falcon initialisation
Some host1x clients, such as PVA, do not have a falcon microprocessor
and currently the host1x-nvhost shim driver assumes that all clients do.
Fix this by moving the falcon initialisation code from the
nvhost_module_init() function and into the
nvhost_flcn_finalize_poweron() function. This aligns with the
implementation in the downstream nvhost driver.

JIRA LS-493

Change-Id: Ic94c3489cefa6fd256f111d8e6c7afb539b5bc8a
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2710548
Reviewed-by: Nan Wang <nanwa@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
ad8058fce9 gpu: host1x-nvhost: Fix client unloading
After unloading the NVDLA driver and then reloading the NVDLA, the
kernel is crashing. The host1x-nvhost driver is missing a call to
class_destroy() in nvhost_client_device_release() which gets called when
removing the DLA driver and this is preventing the DLA driver from
creating the class again when reloading. The crash then occurs because
when the driver is reloaded, creating the class for the DLA driver
fails and then the host1x-nvhost driver incorrectly calls
device_destroy() even though the device has not been created yet. Fix
this by ensuring the class_destroy() is called by
nvhost_client_device_release() and in the necessary error paths and then
remove the call to device_destroy().

Finally, replace request_irq() with devm_request_irq() to ensure that
the interrupts are also released as necessary on removal.

Bug 3641820

Change-Id: Ia328bf63d528e8c31bff1d7b3ac0d5dddc22f1f5
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2710546
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
c103925414 gpu: host1x-nvhost: Fix casting and functions declarations
Sparse reports the following warnings for the host1x-nvhost driver ...

 drivers/gpu/host1x-nvhost/falcon.c:65:27: warning: cast to restricted __le32
 drivers/gpu/host1x-nvhost/nvhost.c:205:22: warning: symbol
	'nvhost_syncpt_get_by_id' was not declared. Should it be static?
 drivers/gpu/host1x-nvhost/nvhost.c:768:5: warning: symbol
 	'nvhost_module_runtime_resume' was not declared. Should it be static?
 drivers/gpu/host1x-nvhost/nvhost.c:796:5: warning: symbol
 	'nvhost_module_runtime_suspend' was not declared. Should it be static?

Fix the above by correcting the cast in falcon_copy_firmware_image(), remove
the function nvhost_syncpt_get_by_id() because it is not used, and make the
nvhost_module_runtime_resume/suspend functions static.

JIRA LS-410

Change-Id: I2c923fccd0b6e53d17198617b90905c6cd06eb5c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2670180
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
9ecd6942b9 gpu: host1x-nvhost: Fix build for Linux v5.10
When compiling the host1x-nvhost driver for Linux v5.10 it is currently
failing and the following errors are seen ...

 host1x-nvhost/nvhost.c: In function ‘nvhost_intr_do_work’:
 nvhost.c:554:2: error: implicit declaration of function ‘kfree’
 [-Werror=implicit-function-declaration]
  kfree(host1x_cb);
    ^~~~~
 host1x-nvhost/nvhost.c: In function ‘nvhost_intr_register_notifier’:
 nvhost.c:579:7: error: implicit declaration of function ‘kzalloc’
 [-Werror=implicit-function-declaration]
      cb = kzalloc(sizeof(*cb), GFP_KERNEL);
             ^~~~~~~

Fix this by including slab.h.

JIRA LS-410

Change-Id: I8a56d33933d3e57c04b011e2c6da03d5f2bbc707
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2667882
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
9f0425f9c1 gpu: host1x-nvhost: Fix clock rate setup
The host1x-nvhost driver by default configures the clock rates for
the host1x client devices to the maximum supported rate because
there is runtime clock scaling support yet. However, currently the
host1x-nvhost driver is only setting the rate for the client's first
clock and not the others. Fix this by correcting the index used when
iterating through the list of clocks.

JIRA LS-410

Change-Id: If410ee25548c0dddecc5b0de9d8b6f4f687fd73c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2657897
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Jon Hunter
7343e4379b gpu: host1x-nvhost: Add host1x-nvhost driver
Add a new host1x-nvhost driver that provides an nvhost interface for
the upstream Linux host1x driver so that downstream drivers that use
this interface can be supported on upstream.

Note that some of the nvhost function prototypes are moved from their
default header file to the include/linux/nvhost.h header file so
simplify building with upstream and downstream kernels.

JIRA LS-410

Change-Id: Icdbb34e879dcd91f6e3dd093b7fb400d1be4d561
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2653097
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 14:06:51 +00:00
Laxman Dewangan
a9a13406dd host1x-nvhost: Remove Makefile to prepare integration
The host1x-nvhost drivers are available in kernel/nvidia
and to integrate the drivers to the kernel/nvidia-oot,
remove the dummy Makefile.

Bug 4038415

Change-Id: I2179a9e4cc096bf9b8534b3415b595d185785e06
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
2023-04-03 14:06:21 +00:00
Chris Dragan
cb0c45b6dd misc: mods: update from Perforce
Bug 3992588

Change-Id: I04aad94aebef7a48d9afac528347fc50c219d888
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2872373
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Carl Dong <carld@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Dong Qiang
dbced7f181 drivers: Fix mods arm ffa error for kernel 6.2
Updated from ffa_ops to msg_ops for ffa api

Bug 3974855

Change-Id: Ice2ccea2c860f05dbd862a49837eba071d563311
Signed-off-by: Dong Qiang <carld@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2865316
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 13:27:53 +00:00
koenz
6f11b7dffb driver: Fix mods_bpmpipc build issue with kernel v6.2+
- Fix build issue with mods_bpmpipc

Bug 3974855

Change-Id: I77c7f49b56f0eceea8e500dc8217e9ae76585f63
Signed-off-by: koenz <koenz@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2865209
Tested-by: Rohit Khanna <rokhanna@nvidia.com>
Reviewed-by: Rohit Khanna <rokhanna@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Sudeep Surendra
b2f9fe02de Add FFA command MODS_FFA_CMD_C2C_TEST.
Signed-off-by: Sudeep Surendra <sudeeps@nvidia.com>
Change-Id: I40714fcac3e9c15c6f9aa1fd79f8ba3529dad71c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2864435
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
2023-04-03 13:27:53 +00:00
Jon Hunter
7881a907e5 drivers/misc/mods: Disable broken MODS drivers for Linux v6.2+
Upstream Linux commit 4c1e0a97351a ("firmware: tegra: bpmp: Use
iosys-map helpers") updated the Tegra IVC driver to use the
iosys-map helpers for Linux v6.2. This causes the MODS BPMPIPC driver
build to fail.

Upstream Linux commit 55bf84fd0a76 ("firmware: arm_ffa: Remove
ffa_dev_ops_get()") removes the function ffa_dev_ops_get() and this
causes the MODS FFA driver build to fail.

Temporarily disable the building of these drivers while these build
issues are fixed.

Bug 3936429
Bug 3974855

Change-Id: I1b40bbb4b89fe0c8d4af7fc642664d29d6954ed2
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2861317
Tested-by: Rohit Khanna <rokhanna@nvidia.com>
Reviewed-by: Rohit Khanna <rokhanna@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
74ee35918c misc: mods: null-terminate strings from userspace
Bug 3952896
Bug 3959323

Change-Id: Id85f6dd605d99e1fec6a6bd261940268cafafa34
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2860841
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
dongqiang
9ac86753e5 Add FFA Cmd MODS_FFA_CMD_HSS_TEST for HSS test
Added new FFA cmd for running HSS in MODS SP

JIRA TM-617

Signed-off-by: Carl Dong <carld@nvidia.com>
Change-Id: If1eabd112c19e7fcafb41aeed9e1eb51ee2f325d
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2860682
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
4f0b7852df misc: mods: update from Perforce
Change-Id: I2c38de4b6471211fb417284cae7c52702a1ef7a5
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2846196
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
7a8a0731ae misc: mods: update from Perforce
Bug 3928853

Change-Id: I813a78c92deb516844d67940e34d3f0e5303e96b
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2840673
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Kuan Luo
126b6fc5c7 mods driver: smmu: support qpsi acpi node
Add qspi1 node NVDA1513 support

Kernel 4.9 doesn't support acpi_device_get_match_data function,
define MODS_HAS_ACPI_MATCH_DATA macro to only build this interface
from kernel 5.10

Bug 3883085

Change-Id: I0820a45f4f529b3bcd27f36e44c090890fa728d5
Signed-off-by: Kuan Luo <kluo@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2824562
(cherry picked from commit 7dfd65ddb8f0d326dc5bcbd4e6e88df575c8d18c)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2824595
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
luke he
23d0fa6e4d mods drv - replace message err to warn
due to no clock framework api supported ,
mods-simple-bus not in DTB for some chips

JIRA TM-912

Change-Id: I926a6e8c36b94c7cc1e34462554453cc2bdb42a3
Signed-off-by: Luke He <lhe@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2819023
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Kuan Luo <kluo@nvidia.com>
Reviewed-by: Kiran Kasamsetty <kkasamsetty@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Tested-by: Kiran Kasamsetty <kkasamsetty@nvidia.com>
(cherry picked from commit 509cc51f7bc2f1d83807b1dc0f0a9e1034300bde)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2823375
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
2023-04-03 13:27:53 +00:00
koenz
cc636f99c2 driver/misc/mods: fix coverity issue
Fix coverity issue CID 10165202

Bug 3461002

Signed-off-by: Koen Zhao <koenz@nvidia.com>
Change-Id: I398dcb0e5a5b0027da09be4d23f88c6067da38cc
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2836338
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
koenz
0e7a054913 drivers/misc/mods: Add mods_bpmpipc component
- Add mods_bpmpipc component for support BPMP MRQ comunication on
  "product_security" fused chips
- Add ioctl "MODS_ESC_BPMP_UPHY_LANE_EOM_SCAN" for uphy eom read

DVS: https://builds4u.nvidia.com/dvs/#/change/3220339765791234.2?showTab=DVS

JIRA TM-949
Bug 3846090

Change-Id: I1aebf99b7516d55cd84e01a6ba36801546bbb1ed
Signed-off-by: koenz <koenz@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2828417
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Sudeep Surendra
9265e42093 misc: mods: add ioctl to communicate with SP
JIRA TM-617

Change-Id: I9c786048cf9bec07233bbed38edbf11fe6c555c0
Signed-off-by: Sudeep Surendra <sudeeps@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2730674
Tested-by: Carl Dong <carld@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Jason Li
2b2a83bf5f misc: mods: optee: Fix cert-c issues
Previously we had a change to fix the cert-c issues, but it didn't
properly eliminate the INT31-C warning.

This change correctly eliminates the following two cert-c warnings:
CID 556497
CID 556498

Bug 3745813

Change-Id: I03ac2b2edc5633c80b4a8285a08605398a35d35f
Signed-off-by: Jason Li (SW-TEGRA) <jasl@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2827247
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
8061cf233b misc: mods: fix offset for large allocations
Fix MODS_VIRTUAL_TO_PHYSICAL for allocations exceeding 4GB

It's unlikely for us to support such large allocations,
but if we ever did, integer overflow would truncate the
allocation offset, resulting in the incorrect PA being
returned.

This change also brings the driver up to date with
the Perforce copy and fixes the version.

CID 421846

Change-Id: Ia9328dd91743631f39a16dfc3077261656384f2c
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2810261
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
83161a6ce4 misc: mods: fix compilation with oot
Bug 3832193

Change-Id: I32b50b6e127c8df1fca8d82025d00570f569d6cf
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2802377
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
4b0df5164d misc: mods: fix error handling in ACPI
Bug 3745813

Change-Id: I447112fba3298e043e081887f80f06be235755da
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2801186
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
dfdd158c0d misc: mods: check user input in PCI functions
Bug 3745813

Change-Id: I47f12130624712eb45d42de1ee3960e81dc006d3
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2798253
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
9c29141faa misc: mods: fix types of a few variables
Bug 3745813

Change-Id: I2669c233bb5b53befc6fb4d72a8a7b35c3ea3f83
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2797668
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
53daab8b1f misc: mods: CERT-C L2 fixes
Bug 3745813

Change-Id: If58b0739ca7bca5373e400d0a9468ac4e5e2970a
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2797153
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Ian Grissom
83d81ef365 misc: mods: add IPI ioctls
* Added ioctl for triggering IPIs
 * Added handler to invoke ASM wfe,wfi commands or NOP

Change-Id: I907b6a27f3a7f3ff5b507e9f91066d8695dadbb4
Signed-off-by: Ian Grissom <igrissom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2730675
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
e01a6e01a0 misc: mods: add new ioctls
Add ioctls to read device properties and map proximity id to NUMA node.

Bug 3538850

Change-Id: I65b6decbdfbe12de7d1f1eb3edbb71b9fd56fb8a
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2786128
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
47a9a4cd68 misc: mods: fix compilation with kernel 6.0
Update to accommodate changes in ACPI API.

Bug 3767126

Change-Id: I20d1d046d2aa59966e9e6eeb04fef8bac7026886
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2782042
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Keyur Patel <keyurap@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
andersm
8aad6c65fc MODS: add mods_tegra_dma platform driver
For upstream dma engine slave_id in <struct dma_slave_config> is obsolete.
The Correct way to specify slave_id is
to call dma_request_chan API along with device name defined in dts node.

mods_tegra_dma: mods_tegra_dma {
    compatible = "nvidia,mods_tegra_dma";
    dmas = <&gpcdma 15>, <&gpcdma 16>;
    dma-names = "spi1_rx", "spi2_tx";
    status = "okay";
};

To keep kernel ABI compatibility,
add a new ioctl cmd MODS_ESC_DMA_REQUEST_HANDLE_2.
A new struct MODS_DMA_HANDLE_2 is used together with it.
A new function esc_mods_dma_request_channel_2 is implemented accordingly.

JIRA:TM-728

Change-Id: Ic84f294e2248d800b9aacd597a7ce0a84fc94a1d
Signed-off-by: andersm <andersm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2711537
Signed-off-by: xueyuanb <xueyuanb@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2753148
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00
Chris Dragan
da482657b7 misc: mods: improve memory allocation
Bug 3760541

Change-Id: I999b676ee3ef8c5b0882d4b3bdcd076346879856
Signed-off-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2776654
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 13:27:53 +00:00