1. Add tsec device entry in the DT overlay file
2. Copy over the existing tsec driver source code
and compile it when building with oot kernel
3. Add a dummy tsec folder with an empty Makefile
which conveys that common driver source is used
from kernel/nvidia/drivers/video/tegra/tsec
Bug 3817626
Change-Id: I7b3064fc08bf7507b7660985564bc6bc8eba86eb
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793265
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
When compiling the MTTCAN driver for Linux v5.19 the build fails because
the can_led_xxx() functions are not found. The can_led_xxx() functions
were removed for Linux v5.19 and not Linux 6.0 and so update the driver
accordingly to fix this.
Bug 3820317
Change-Id: I340cc9cbb44b5cb892c50cc0b5d06444ef894fe9
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2792549
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Building the Tegra VBLK driver fails on various Linux v5.x versions due
to mismatches in arguments. Reviewing the Linux history the arguments to
the following functions changed in the following Linux versions ...
1. Linux v5.15
- The function __alloc_disk_node() is updated to pass an additional
argument of type 'struct request_queue'.
2. Linux v5.16
- The functions blk_get_request() and blk_put_request() are replaced by
blk_mq_alloc_request() and blk_mq_free_request(), respectively.
3. Linux v5.17
- Removes the argument of type 'struct gendisk' from the function
blk_execute_rq().
4. Linux v5.18
- Removes the header 'linux/genhd.h'.
5. Linux v6.0
- Replaces the function __alloc_disk_node() with
blk_mq_alloc_disk_for_queue().
Update the Tegra VBLK driver to ensure that the correct functions and
header files are used per the exact Linux version.
Bug 3820317
Change-Id: Ia04ea78d1edcf7674030379159599949f13f3120
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2791669
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The Aurix SPI driver fails to build with Linux v5.18 because the return
type of the remove function is not correct. This was previously fixed
for the Linux v5.19 build, but the change in the upstream kernel
actually occurred in Linux v5.18.
Bug 3820317
Change-Id: I2588fe33af6877c1c5c61a2a1d9195248066bbd1
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2792537
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Build the Tegra PCI EPF driver fails with Linux v5.14 because the
pci_epf_alloc/free_space() have the incorrect number of arguments.
The arguments to the pci_epf_alloc/free_space() functions were updated
in Linux v5.12 but the current Tegra PCI EPF driver assumes that they
were updating after Linux v5.14. Update the Tegra PCI EPF driver to
use the correct arguments for v5.12 onwards.
Bug 3820317
Change-Id: Ieba44bfc22e0f978a5ff227b6d07a6a56ad23f3b
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2791670
Reviewed-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Upstream Linux commit f59ac19b7f44 ("thermal/of: Remove old OF code")
removes the structure "thermal_zone_of_device_ops" and function
devm_thermal_zone_of_sensor_register() which breaks building the pex9749
driver with Linux v6.1. Update the pex9749 driver as necessary to fix
building with Linux v6.1.
Bug 3831575
Change-Id: I88ed29142a7abab3f00e57f55d0a8b180a55779c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793518
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Upstream Linux kernel commit f2042ed21da7 ("iommu/dma: Make header
private") made the header "linux/dma-iommu.h" a private header file and
so compiling the Tegra PCI EDMA driver for Linux v6.1-rc1 now fails
because this header is not found. On further review, instead of
including "linux/dma-iommu.h" it is only necessary to include
"linux/dma-mapping.h" instead.
Bug 3831575
Change-Id: I3552eca64071bba98bb322377d7c211e3c22e7b6
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793515
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Upstream Linux kernel commit b48b89f9c189 ("net: drop the weight
argument from netif_napi_add") removes the weight argument from the
netif_napi_add() function and this is breaking the build of a few
drivers that use this function. Fix this by updating these drivers to
use the netif_napi_add_weight() function instead for Linux v6.1.
Bug 3831575
Change-Id: I5ab3c2380db75313f9226c68777e6245e9e9dad5
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793511
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Upstream Linux kernel commit b88c48bfdd85 ("pwm: core: Get rid of unused
devm_of_pwm_get()") has removed the function devm_of_pwm_get() which
breaks building the Tegra PWM tachometer driver with Linux v6.1-rc1.
Fix this by updating the driver to use the function
devm_fwnode_pwm_get() instead.
Bug 3831575
Change-Id: I89def599312baa4d3b6b25b1275835233e942af0
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793510
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
When building NVGPU and Host1x-Nvhost driver as OOT modules it is not
necessary to copy the host1x-next.h and nvmap_exports.h header files
because these headers files are already present in the source
repository. Fix this by updating the include paths used for building
these drivers and remove the copy of these headers.
Bug 3817518
Change-Id: I0084055a27d3547642c034546a4b7192e8da52e6
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2785906
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Make mc-hwpm module oot. Below are the reasons why
making a fresh copy in nvdia-oot folder -
- hwpm is introduced from T234 onwards
- mc-hwpm is dependent on mc driver. nvidia-oot
uses upstream mc driver. Hence mc-hwpm should also
use upstream mc driver.
- Thats why porting changes needed in mc-hwpm driver
to be incompatible with upstream mc driver
Bug 3728991
Change-Id: I2d7347d968895e080fa79d100b4c50c094ced1e3
Signed-off-by: Puneet Saxena <puneets@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2781118
Reviewed-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Port the downstream nvpmodel driver to the OOT project.
The following items summarize the change:
- Original bwmgr APIs are removed
- Clock cap for other clocks except for EMC is removed since userspace
nvpmodel service will handle clock cap for other clocks
Bug 3779573
Signed-off-by: Johnny Liu <johnliu@nvidia.com>
Change-Id: Ib297dfed808dad03d1450860c24156da1a84b4ca
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2773538
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Add alternative function to initialize clocks instead of
nvhost_module_init() to fix "failed to get reset" issue.
Also, remove other failing nvhost functions as the nvhost driver
exists only for backward compatibility.
Bug 3583641
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Fixes: 198a0ba027 ("crypto: tegra: Add support for SE on host1x to OOT")
Change-Id: Id6a5ecf7900643b13518e1c9cf657aac99a6bd5d
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2782949
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
in linux below patches remove the support for QUEUE_FLAG_DISCARD
and QUEUE_FLAG_SECERASE.
commit 70200574cc229f6ba038259e8142af2aa09e6976
Author: Christoph Hellwig <hch@lst.de>
Date: Fri Apr 15 06:52:55 2022 +0200
block: remove QUEUE_FLAG_DISCARD
Just use a non-zero max_discard_sectors as an indicator for discard
support, similar to what is done for write zeroes.
The only places where needs special attention is the RAID5 driver,
which must clear discard support for security reasons by default,
even if the default stacking rules would allow for it.
commit 44abff2c0b970ae3d310b97617525dc01f248d7c
Author: Christoph Hellwig <hch@lst.de>
Date: Fri Apr 15 06:52:57 2022 +0200
block: decouple REQ_OP_SECURE_ERASE from REQ_OP_DISCARD
Secure erase is a very different operation from discard in that it is
a data integrity operation vs hint. Fully split the limits and helper
infrastructure to make the separation more clear.
we are fixing below compilation error using this patch.
nvidia-oot/drivers/block/tegra_virt_storage/tegra_hv_vblk.c:921:22:
error: ‘QUEUE_FLAG_DISCARD’ undeclared (first use in this function);
did you mean ‘QUEUE_FLAG_DEAD’?
921 | blk_queue_flag_set(QUEUE_FLAG_DISCARD, vblkdev->queue);
| ^~~~~~~~~~~~~~~~~~
| QUEUE_FLAG_DEAD
nvidia-oot/drivers/block/tegra_virt_storage/tegra_hv_vblk.c:921:22:
note: each undeclared identifier is reported only once for each function
it appears in nvidia-oot/drivers/block/tegra_virt_storage/tegra_hv_vblk.c:928:23:
error: ‘QUEUE_FLAG_SECERASE’ undeclared (first use in this function);
did you mean ‘QUEUE_FLAG_NOMERGES’?
928 | blk_queue_flag_set(QUEUE_FLAG_SECERASE, vblkdev->queue);
Bug 3733730
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I47ad13be833fdd7ec7f0d2127699e28311fbeb83
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784741
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
in Linux v5.18 the following upstream commit removes
genhd.h and now only blkdev.h is needed.
commit 322cbb50de711814c42fb088f6d31901502c711a
Author: Christoph Hellwig <hch@lst.de>
Date: Mon Jan 24 10:39:13 2022 +0100
block: remove genhd.h
Using this change we are fixing below compilation
error while upgrading the stable kernel.
/dvs/git/dirty/git-master_linux/out/nvidia/kernel-nvidia-oot/
nvidia-oot/drivers/block/tegra_virt_storage/tegra_vblk.h:9:10:
fatal error: linux/genhd.h: No such file or directory
9 | #include <linux/genhd.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
Bug 3733730
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ib110b749ca48fed092fcadb9a6ab47d81cc25397
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784497
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
The ivc.h is not protected for multiple inclusion and so
it is generating error for multiple definition when included
from the source code.
Add wrapper header to protect the multiple inclusion of the ivc.h.
This will make the OOT driers to compile against all core kernel
which does not have proper ivc.h fix.
Change-Id: Ibe85da017d60f525b05d04cd6a5ea15c5b312057
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784877
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
WARNING: modpost: /home/mbhardwaj/kernel_only/out/
embedded-linux-generic-release/nvidia/kernel-rt_patches-nvidia-oot/
nvidia-oot/drivers/virt/tegra/tegra_hv.o (.exit.text+0x34): Section
mismatch in reference from the function cleanup_module() to the
function .init.text:tegra_hv_cleanup()
The function __exit cleanup_module() references a function __init
tegra_hv_cleanup(). This is often seen when error handling in the
exit function uses functionality in the init path. The fix is often
to remove the __init annotation of tegra_hv_cleanup() so it may be
used outside an init section.
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ie3fb2875c0acc732d5673e7618593e67e412851f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784195
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Using this patch we are doing below activities:-
1. Use as much as possible source code possible from
upstream driver.
2. If there is static function that needs to be exported
to downstream driver then make a local copy of that.
3. add support for extended ivc driver since upstream
driver does not have support for all required APIs.
Bug 3595577
JIRA ESLC-6884
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Id6c70525e378a80d9059f49f879909c88c55cb4f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2764453
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
From Linux kernel version 6.0, some of the callback ops are
removed from pwm like config, enable, disable.
Remove the implementation of these callbacks for Linux kernel
version 6.0 and above. Add the required callback for version 6.0
Note: This change is not tested on V6.0. This is the compilation fix.
Bug 3767126
Bug 3789780
Change-Id: If95ccf584208d351a5478c77a7d417fcd6cdbc21
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2773474
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Add OOT module build for mods. The driver code
of mod is used from kernel/nvidia and get copied
to build time in nvidia-oot for building as module.
Bug 3725913
Change-Id: I975f269c8305edcc87d6e3bc02e6b46761245315
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2755859
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit