Commit Graph

56 Commits

Author SHA1 Message Date
Ketan Patil
9045984efb nvmap: Remove use of __dma_flush_area
__dma_flush_area is defined in downstream, we need maintenance effort
when kernel version is upgraded. Instead, use arch_invalidate_pmem
function provided by the upstream.

Bug 3855165

Change-Id: Ie62935aba7f3c31e6e233816b3bff507197d3f86
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2804844
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-11 05:54:22 +00:00
Ketan Patil
596156cc4b nvmap: Register nvmap device towards end of probe
On TOT, in nvmap probe function, platform_set_drvdata is called after
misc register. So nvmap node is created and clients can open it even
before platform driver data is set. Because of which, the call to
dev_get_drvdata returns NULL and BUG_ON condition is hit. Move misc
register call towards end of the nvmap probe, so that /dev/nvmap is
exposed once all initilization is completed.
As misc register being moved to end of probe, the functions which are
called before misc register and which make use of dev_user field from
nvmap_device for calling dev_err/dev_info function will see the dev
field as NULL. Hence replace such calls with pr_err/pr_info.

Bug 3853486

Change-Id: Ifdd8443812a621aceada7739cf9b02fcf00568b4
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2803672
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-11 05:54:22 +00:00
Ketan Patil
92f34279ba nvmap: Keep cache flush at allocation time only
On TOT, in case of carveouts, nvmap performs cache flush operation
during carveout creation, buffer allocation and buffer release. Due to
cache flush for entire carveout at creation time, nvmap takes ~430 ms
for probe. This is affecting boot KPIs.
Fix this by performing cache flush only at buffer allocation time,
instead of carveout creation and buffer release. This is reducing nvmap
probe time to ~0.69 ms.

Bug 3821631

Change-Id: I54da7dd179f8d30b8b038daf3eceafb355b2e789
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2802353
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Ashish Mhetre <amhetre@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-11 05:54:22 +00:00
Puneet Saxena
d1c06c1dce tegra: nvmap: make sciipc_id as 64 bit
Make SciIpc_Id as 64 bit.

Bug 3715617

Change-Id: If0f6db9d42b527554b77c4768d0f42d276c6a97c
Signed-off-by: Puneet Saxena <puneets@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2783704
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-11 05:54:22 +00:00
Puneet Saxena
a3201ec3fe tegra: nvmap: add _dma_*area prototype
__dma_flush_area and  __dma_map_area
function's protype is removed from "cacheflush.h"
header file. Since these functions are defined locally
in NvMap, define prototype in nvmap_priv.h, private header.

Bug 3767126

Change-Id: Ibf21712fe9738e4b3d7c286ac6acfea550d9d8d7
Signed-off-by: Puneet Saxena <puneets@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2779048
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-11 05:54:22 +00:00
Puneet Saxena
a28927a2c2 tegra: nvmap: fix build for kernel 6.0
Fix build for kernel 6.0 onwards.
"register_shrinker" expects shrinker name,
hence pass the name string.

PAGE_KERNEL's Page Protection value needs to be set.

Bug 3767126

Change-Id: I71a54891999d0554eaccac6f37d0f1d9c2a65ace
Signed-off-by: Puneet Saxena <puneets@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2776872
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-11 05:54:22 +00:00
Ketan Patil
a2338fa761 video: tegra: nvmap: Fix type casting issue
CERT-C is reporting following issue:
- Casting (size + 4095UL & 0xfffffffffffff000UL) >> 12 from unsigned
long to unsigned int without checking its value may result in lost or
misinterpreted data.
Fix this by adding overflow condition.

CID 490676
Bug 3745813

Change-Id: I39b741b6150c12dcdd3de7c70bbcf89f8e692a23
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2778588
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: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-11 05:54:22 +00:00
Puneet Saxena
8ceb954814 tegra: nvmap: replace _dma_* and __iomap
__dma_flush_area, __dma_map_area and __iomap
functions are no more supported from kernel version
6.0 onwards.

Replace them by equivalent exported function in K-6.0 and
onwards.

Bug 3767126

Change-Id: I2b8d81271ed3696ae3d9306a311fe74622c2b611
Signed-off-by: Puneet Saxena <puneets@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2770928
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Ketan Patil <ketanp@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-11 05:54:22 +00:00
Laxman Dewangan
4cf8c80669 nvmap: Copy drivers and headers from kernel/nvidia
Copy the driver and header sources of the nvmap to
kernel/nvidia-oot from kernel/nvidia as part of
removing the dependency of kernel/nvidia for OOT drivers.

The latest (few) git history of the files copied are
	b7a355916 video: tegra: nvmap: Fix type casting issue
	2128c5433 video: tegra: nvmap: Fix type casting issues
	0cd082559 video: tegra: nvmap: Change peer vm id data type
	4bd7ece67 tegra: nvmap: mark ivm carveout pages occupied
	e86f3630a video: tegra: nvmap: Fix type casting issue
	c43a23e58 video: tegra: nvmap: Fix type casting issue
	ca1dda22e video: tegra: nvmap: Fix type casting issue
	1f567abfe video: tegra: nvmap: Fix wrap up condition
	29db4d31c video: tegra: nvmap: Remove unnecessary debugfs
	fe72f1413 video: tegra: nvmap: Remove get_drv_data() call
	3b0fc79e7 video: tegra: nvmap: Fix coverity defect
	3cc0ce41b video: tegra: nvmap: Fix coverity defect
	6da39e966 video: tegra: nvmap: Fix WARN_ON condition
	a16351ff1 video: tegra: nvmap: Remove dead code
	9993f2d2d video: tegra: nvmap: Update print level
	6066a2077 video: tegra: nvmap: Remove nvmap_debug_lru_allocations_show
	3cdf2b7ba video: tegra: nvmap: Add kernel version check
	716ded4fc video: tegra: nvmap: Initialize the return value
	9b6c1b4ab video: tegra: nvmap: Correct debugfs code
	33e70118b video: tegra: nvmap: Fix Cert-C error handling bug
	7b960ed79 video: tegra: nvmap: Fix Cert-C error handling bug
	945dc1471 video: tegra: nvmap: Fix Cert-C error handling bug
	31e572de2 video: tegra: nvmap: Fix Cert-C error handling bug
	1f25cbf68 video: tegra: nvmap: Fix Cert-C error handling bug
	fa5428107 video: tegra: nvmap: Remove nvmap_handle_get_from_fd
	df73f2208 video: tegra: nvmap: Protect kmap/kunmap code
	9842e7c6a video: tegra: nvmap: Remove t19x dma_buf map/unmap
	06dff1a8d video: tegra: nvmap: Remove unnecessary export symbols
	6f097f86b video: tegra: nvmap: Fix Cert-C error handling bug
	f14171608 video: tegra: nvmap: load nvmap for T23x compatible platforms
	266812814 video: tegra: nvmap: Get rid of NVMAP_CONFIG_KSTABLE_KERNEL
	1b38c0887 nvmap: Don't use NV_BUILD_KERNEL_OPTIONS
	0ab8dc032 video: tegra: nvmap: Reintroduce NVMAP_CONFIG_VPR_RESIZE
	cc8db9797 driver: platform: tegra: Separate out vpr code
	28955d95c video/tegra: nvmap: Enable build as OOT module
	876d1fbb8 video: tegra: nvmap: Remove IS_ENABLED check
	5ea30867a nvmap: Add support to build as module from OOT kernel
	a71ad020e video: tegra: nvmap: Protect tegra_vpr args under config
	e70061cc1 video: tegra: nvmap: Do not export cvnas_dev
	d2a26ff36 video: tegra: nvmap: Include missing header
	692e4f682 video: tegra: nvmap: Update page coloring algo
	2b9dbb911 video: tegra: nvmap: Check for return value
	de8de12b6 video: tegra: nvmap: Enable legacy init support
	65d478158 video: tegra: nvmap: Remove dependency of cvnas
	38bdd6f05 video: tegra: nvmap: Make nvmap as loadable module
	9668e410b video: tegra: nvmap: Enable handle as ID
	11c6cbd23 tegra: nvmap: Fix build for Linux v5.18
	fbd95c3ab linux: nvmap: change ivm_handle to u32
	eb1e2c302 video: tegra: nvmap: Fix NVSCIIPC support
	022689b29 tegra: nvmap: return error if handle as ID enabled but id is fd
	19e5106ed video: tegra: nvmap: Don't treat ivm as reserved mem carveouts

Bug 4038415

Change-Id: I7108aec3b8532fe79c9423c2835744b1213719e8
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
2023-04-11 05:47:21 +00:00
Gerrit Code Review
96d1f511c7 Merge "tsec: Merge the tsec driver from kernel/nvidia to kernel/nvidia-oot" into dev-main 2023-04-06 00:43:21 -07:00
Mayuresh Kulkarni
6e2882db16 tsec: use correct struct in tsec_of_match
bug 3817626

Change-Id: I98d1e5b63a68abc25dee1fcff49c4b090d58b0d1
Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2874293
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@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-04 05:28:43 +00:00
Sahil Mukund Patki
6df40510f9 video: tegra: tsec: fix static analysis issues
Remove address space errors by casting properly. Also make variables
static if used within the same translation unit.

Bug 3528414

Change-Id: Id9d566f5b5c9594c69a1483d2945712e6c9f665c
Signed-off-by: Sahil Mukund Patki <spatki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2835170
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-04 05:28:43 +00:00
Bharat Nihalani
78db0d7c41 tsec: Conditionally turn off clock in suspend
Problem:
=======
In current implementation of tsec_poweroff, tsec clock is getting
turned off unconditionally.

During suspend-resume operation, there is an issue in MB1 as
explained in bug 3796711 (comment 16). Due to this, when
tsec_poweroff function is called for second suspend operation,
tsec clock is turned off even when the power state variable
"pdata->power_on" is not set to true or 1.

This causes the following warning from clock driver highlighting
that tsec clock is already disabled.

<snip>
[  631.507596] tsec already disabled
[  631.507632] WARNING: CPU: 2 PID: 10535 at drivers/clk/clk.c:1216 clk_core_disable+0x2b4/0x340
[  631.507634] Modules linked in: ... <skipped these prints>
[  631.507714] CPU: 2 PID: 10535 Comm: systemd-sleep Tainted: G           OE     5.10.120-tegra #1
[  631.507716] Hardware name: Unknown t234-Orin-SLT-e2421-1099-e2425-1099/t234-Orin-SLT-e2421-1099-e2425-1099, BIOS buildbrain-gcid-32270834 01/05/2023
[  631.507718] pstate: 60400089 (nZCv daIf +PAN -UAO -TCO BTYPE=--)
[  631.507720] pc : clk_core_disable+0x2b4/0x340
[  631.507722] lr : clk_core_disable+0x2b4/0x340
[  631.507723] sp : ffff80001770b8e0
[  631.507724] x29: ffff80001770b8e0 x28: ffff000081f0d140
[  631.507727] x27: ffff000082345930 x26: ffff8000126b1ee0
[  631.507729] x25: ffff8000126b1f70 x24: ffff800010b75630
[  631.507731] x23: 0000000000000000 x22: ffff8000125f23f8
[  631.507734] x21: ffff8000125f2638 x20: ffff0000869aca00
[  631.507736] x19: ffff0000869aca00 x18: 0000000000000000
[  631.507738] x17: 0000000000000000 x16: ffff800011008460
[  631.507740] x15: 0000000000000000 x14: ffff000080990000
[  631.507742] x13: ffff80079c8dc000 x12: 0000000000000028
[  631.507745] x11: 0000000000000003 x10: 0101010101010101
[  631.507747] x9 : 00000000fffffffe x8 : ffff8000128c2dd8
[  631.507749] x7 : 0000000000000004 x6 : ffff8000128d1e4d
[  631.507751] x5 : ffff0007ae6d8a28 x4 : 0000000100011117
[  631.507754] x3 : 0000000000000001 x2 : ffff0007ae6d8a30
[  631.507756] x1 : 0000000000000000 x0 : 0000000000000000
[  631.507758] Call trace:
[  631.507760]  clk_core_disable+0x2b4/0x340
[  631.507763]  clk_core_disable_lock+0x2c/0x50
[  631.507765]  clk_disable+0x30/0x50
[  631.507769]  tsec_disable_clk+0x4c/0x80
[  631.507771]  tsec_poweroff+0x3c/0x80
[  631.507772]  tsec_module_suspend+0x24/0x40
[  631.507776]  platform_pm_suspend+0x40/0xb0
[  631.507780]  dpm_run_callback+0x60/0x260
[  631.507783]  __device_suspend+0x130/0x560
[  631.507785]  dpm_suspend+0x158/0x390
[  631.507787]  dpm_suspend_start+0xc0/0xf0
[  631.507794]  suspend_devices_and_enter+0x100/0x9f0
[  631.507796]  pm_suspend+0x21c/0x4a0
[  631.507798]  state_store+0xa0/0xd0
[  631.507802]  kobj_attr_store+0x14/0x50
[  631.507806]  sysfs_kf_write+0x60/0x90
[  631.507808]  kernfs_fop_write_iter+0x134/0x1e0
[  631.507811]  new_sync_write+0xfc/0x1d0
[  631.507813]  vfs_write+0x26c/0x3b0
[  631.507815]  ksys_write+0x7c/0x110
[  631.507817]  __arm64_sys_write+0x28/0x40
</snip>

Solution:
========

There is a check present in tsec_poweroff function to conditionally
call tsec_prepare_poweroff only if TSEC is powered on. Use the
same check to conditionally call tsec_disable_clk

Bug 3930482
Bug 3893914

Change-Id: Id1f6a8e42f43db4dd91ef4f6ae39166c13f1ba8f
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2838694
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: Nikesh Oswal <noswal@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Sahil Mukund Patki
e15295fcea video: tegra: tsec: Coverity fix
Fix Coverity issue CID 10164610
Initialize values to NULL to avoid uninitialized pointer error.

Bug 3461002

Change-Id: Ia1205b09f418c3aa3b9b4e457b944cb71d8c927a
Signed-off-by: Sahil Mukund Patki <spatki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2836048
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
f76b77ab85 video: tsec: Add support to alloc GSC memory
For larger commands that do not fit into the
CMD Queue we pass additional parameters and
buffer by using the GSC. DisplayRM uses the
GSC allocation APIs to reserve memory for
such large command parameters.

Bug 3920791

Change-Id: I7a2a9821d32e1a89726cf3fb53cd5647eccbadd7
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2834319
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
83576bbd5d video: tegra: tsec: Launch threaded handler only for SWGEN0
Launch threaded handler to drain TSEC messages only for
SWGEN0 interrupt.

If SWGEN1 interrupt is received to pull out print buffer
then ignore it and mask it out so that it is not received
in future

Bug 3897473

Change-Id: I16e2d442ba77141286171f69114ecf309d411ec7
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2822539
Tested-by: Sahil Patki <spatki@nvidia.com>
Reviewed-by: Sahil Patki <spatki@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@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-04 05:28:43 +00:00
Nikesh Oswal
be91d1bd18 video: tegra: tsec: Remove TSEC_RM_ON_DCE
TSEC IPC GSC-CO Permissions have been modified to allow
access to CCPLEX as well, so we no longer need the flag
TSEC_RM_ON_DCE and now CCPLEX and DCE both can access
the GSC-CO memory for IPC with TSEC

Bug 3817626

Change-Id: Ifb60d508327a5939efb64b27e200933cd15e680e
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2818915
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
096b94b3db video: tegra: tsec: add api to clear init callback
DisplayRm when it unloads will call an API on the tsec
driver to clear the previously registered init message
callback

Bug 3817626

Change-Id: I7d5bd16b3d1040f11d1a85bc2439176002c5a57b
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2818914
Reviewed-by: Sahil Patki <spatki@nvidia.com>
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: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
5889401827 drivers: tsec: use already exported cache API
Earlier we modified the kernel to expose a low level
cache API namely dcache_clean_inval_poc, instead we
can use the already exported arch_invalidate_pmem API
and for ARM invlidating the cache is same as clean
and invalidate

Bug 3817626

Change-Id: Ideb29f2818aece98753aaa40242eaf1246c928cb
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2801851
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Sahil Mukund Patki
4de7c8f6d0 video: tegra: Add T239 support in new TSEC driver
This patch adds T239 support in new TSEC driver and removes the
support from the old driver.

Bug 3817626

Change-Id: I705e0bac25e6a905588145aef4a4cc98d0a81651
Signed-off-by: Sahil Mukund Patki <spatki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2800494
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Jon Hunter
7f6f9f5ff5 video: tegra: tsec: Fix build for Linux v5.14
When building the OOT driver for Linux v5.14 the build fails because the
TSEC driver is looking for the downstream tegra_mc.h header file. Fix
this by ensuring we use the upstream header starting with Linux v5.14.

Bug 3817626

Change-Id: Ifecad497349d357eafc6356beb1dee1e0f923ae1
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2798773
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
31d2e5fff7 video: tegra: tsec: changes to compile for k5.15
This patch does changes needed in cache flush and
carevout related memory apis which are different
between k5.10 and k5.15.

Also Makefile is changed so that driver gets built
as module on k5.15 and as part of kernel image for
the older k5.10 kernel

Bug 3817626

Change-Id: I4050d41efc61353c34d32d347917e813473ba113
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2793274
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-04 05:28:43 +00:00
Nikesh Oswal
d1dc679881 video: tegra: add tsec driver
This driver is inspired from the existing tsec driver
under host1x but its highly simplified to use only
the stuff that is needed and is completely decoupled
from the host1x driver

Bug: 3817626

Change-Id: I8fff7ab539cd5393ea13896c3b056472ca0e0a72
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2785908
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-04 05:28:43 +00:00
Laxman Dewangan
02dd70d7b0 tsec: Remove makefile to prepare driver to integrate from kernel/nvidia
Remove Makefile from drivers/video/tegra/tsec to integrate
the drivers from kernel/nvidia. This will avoid conflict.

Bug 4038415

Change-Id: I43352ffe7e677c4388e9ec6799920d0c31fe247a
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
2023-04-04 05:27:11 +00:00
Richard Zhao
7a0ea85184 video: tegra: virt: enable gr_comm for oot kernel
- enable config for oot
- add GPL license
- include different tegra hv header for oot

Jira GVSCI-16046

Change-Id: I8358b15cec33fbd5fd98265adc9152d8e335511d
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2866154
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: Sagar Kamble <skamble@nvidia.com>
Reviewed-by: Aparna Das <aparnad@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-03 17:41:13 +00:00
Manish Bhardwaj
4636d2781e kernel: nvidia: fix cert warnings
Using this patch we are fixing below cert warnings :-
1. cert_err33_c_violation: The error status of function
   call snprintf(name, 20UL, "ivc-queue%d", i) is not checked.
2. cert_err33_c_violation: The error status of function call
   snprintf(name, 30UL, "gr-virt-comm-%d", i) is not checked.
3. cert_err33_c_violation: The error status of function call
   snprintf(name, 20UL, "mempool%d", i) is not checked.

Below changes has been done to fix above cert warnings:-
1. check the return value to snprintf function and handle
   return error gracefully.

Bug 3512545

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ia41ab89e3759387b36489dca5f57652f7389f328
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2676650
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 17:41:13 +00:00
Manish Bhardwaj
15ef43911c tegra: virt: fix sparse warnings in nvidia repo
1. kernel/nvidia/drivers/video/tegra/virt/tegra_gr_comm.c:604:14:
   warning: incorrect type in assignment (different address spaces)
2. kernel/nvidia/drivers/virt/tegra/hvc_sysfs.c:154:17:
   warning: cast removes address space '__iomem' of expression
3. kernel/nvidia/drivers/virt/tegra/hvc_sysfs.c:189:17:
   warning: incorrect type in argument 1 (different address spaces)
4. kernel/nvidia/drivers/virt/tegra/ivc-cdev.c:330:27:
   warning: incorrect type in initializer (different base types)
5. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:378:42:
    warning: incorrect type in argument 1 (different address spaces)
6. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:386:26:
    warning: incorrect type in argument 1 (different address spaces)
7. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:444:22:
    warning: cast removes address space '__iomem' of expression
8. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:543:58:
    warning: incorrect type in assignment (different base types)
9. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:544:62:
    warning: incorrect type in assignment (different base types)
10. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:547:62:
    warning: incorrect type in assignment (different base types)
11. kernel/nvidia/drivers/virt/tegra/tegra_hv.c:823:10:
    warning: symbol 'tegra_hv_ivc_tx_frames_available' was not declared. Should it be static?
12. kernel/nvidia/drivers/virt/tegra/tegra_hv_pm_ctl.c:330:57:
    warning: incorrect type in initializer (different base types)
13. kernel/nvidia/drivers/virt/tegra/tegra_hv_pm_ctl.c:389:27:
    warning: incorrect type in initializer (different base types)

To fix above sparse warnings we are making below changes :-
1. use the __poll_t data type when we are using polling framework.
2. pass __iomem type pointer to io framework.

Bug 3528414
Jira ESLC-6572

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I371e0bdc435d60623bc1405a9383bf45b6274f90
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2673587
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: Ketan Patil <ketanp@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 17:41:13 +00:00
Antony Clince Alex
d9d3a5e42c virt: tegra_gr_comm: increase waittime to 40 secs
At present, the timeouts are not handled gracefully and it results
in system crash, therefore increase the timetout to 40 as a WAR.

Bug 200775880

Change-Id: I6ea999d0ae59df5f2c995dd0669149e598bb6e9d
Signed-off-by: Antony Clince Alex <aalex@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2604011
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Haley Teng <hteng@nvidia.com>
Reviewed-by: Aparna Das <aparnad@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 17:41:13 +00:00
kdendukuri
33c3cfdf1f virt: tegra_gr_comm: increase waittime to 20 seconds
as we are receiving "tegra_gr_comm_recv: timeout for response!",
increase the waittime to 20 ticks as a WAR.

Bug 2983318

Change-Id: If4e26027e6aba737f6dc3f063eb699b2620f4e62
Signed-off-by: kdendukuri <kdendukuri@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2346682
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Reviewed-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-by: Haley Teng <hteng@nvidia.com>
GVS: Gerrit_Virtual_Submit
2023-04-03 17:41:13 +00:00
Haley Teng
85c3986920 tegra_gr_comm: retry if tegra_gr_comm_send timeout
Bug 2779333

Change-Id: I337ed034258d298f1c46673be6c2ca4006967e6b
Signed-off-by: Haley Teng <hteng@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2268246
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 17:41:13 +00:00
Ketan Patil
7fa087bc72 virt: tegra_gr_comm: fix pointer type
Change the type of ptr to void __iomem * from void *
as ioremap_cache expects the return type to be __iomem *
This fixes the following sparse warning:

tegra_gr_comm.c:243:34:
warning: incorrect type in assignment (different address spaces)

Bug 200434802

Change-Id: I296cc8048da649e84961239cb37bcd99ffe153a7
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1848879
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@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-04-03 17:41:13 +00:00
Richard Zhao
bc2c2bcde6 virt: tegra_hv: remove parameter dn from tegra_hv_mempool_reserve()
Device tree node was not used by the function, so remove it to make the
function more common.

Jira EVLR-2364

Change-Id: I0888773fa584eac2c2133c73d9385b700899fdf7
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1647029
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Dennis Kou <dkou@nvidia.com>
Reviewed-by: Nirav Patel <nipatel@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 17:41:13 +00:00
Richard Zhao
94f2fb429f video: tegra: virt: remove virt_ctx from tegra_gr_comm
queue index can already index the queues. It also help make the api more
common.

Jira EVLR-2364

Change-Id: I5ba8f03bf8ae9cc8d1a51a6d5c48eef969276ed0
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1646195
Reviewed-by: Damian Halas <dhalas@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nirav Patel <nipatel@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-04-03 17:41:13 +00:00
Aniruddha Banerjee
98755f63ca video: tegra: increase wait_event_timout to 500ms
This patch increases the timeout for the wait_event from 250ms to 500ms.

Bug 1653184
Bug 1653182

Change-Id: I339f9d2eef20dcec8cd0a240900ab8af5c710c59
Signed-off-by: Aniruddha Banerjee <aniruddhab@nvidia.com>
Reviewed-on: http://git-master/r/1462093
Reviewed-by: Nitin Sehgal <nsehgal@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Timo Alho <talho@nvidia.com>
2023-04-03 17:41:13 +00:00
Terje Bergstrom
a9442ce5b8 video: tegra: virt: Export functions used by nvgpu
Export functions used by nvgpu so that nvgpu could be built as a
module.

Change-Id: I7cf9162a17c3aaf736d20af8eb0ce623d168ff1d
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/1028350
Reviewed-on: http://git-master/r/1198258
Reviewed-on: http://git-master/r/1314837
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
Richard Zhao
97c0fccbcc video: tegra: virt: fix hung task warnings
add timeout for tegra_gr_comm_recv and fix warnings:

INFO: task gk20a:1085 blocked for more than 120 seconds.
      Tainted: G        W      3.18.21-tegra #9
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
gk20a           D ffffffc000085df8     0  1085      2 0x00000000
Call trace:
[<ffffffc000085df8>] __switch_to+0x94/0xa8
[<ffffffc000a91994>] __schedule+0x2ac/0x7d0
[<ffffffc000a91edc>] schedule+0x24/0x74
[<ffffffc000a94940>] schedule_timeout+0x15c/0x258
[<ffffffc000a93ab0>] __down+0x60/0xa4
[<ffffffc0000e3ff0>] down+0x44/0x60
[<ffffffc0004073a4>] tegra_gr_comm_recv+0x5c/0x100
[<ffffffc0004c0d4c>] vgpu_intr_thread+0x5c/0x10c
[<ffffffc0000bf5fc>] kthread+0xf8/0x110

Bug 1728199

(cherry-picked from commit b9af225268aa6ee42d2bf41df8f6b63f55ddffd2)
Change-Id: Ia07f16a50b226824625131d03e8d677382215315
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: http://git-master/r/1198256
Reviewed-on: http://git-master/r/1314836
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
Bharat Nihalani
27d4ef0964 video: tegra: virt: fix typo
replace ioremap_cached to ioremap_cache. This should fix the build
break seen due to this symbol.

Change-Id: I574b568493f278aef2afb9c0704ae55b8c60affd
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: http://git-master/r/1198249
Reviewed-on: http://git-master/r/1314834
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
e33f9d13f4 video: tegra: virt: update comm framework
The following changes have been made:
- remove support for multiple IVC contexts per queue
- add support for mempools (OOB data support)

JIRA VFND-689

Change-Id: I3a1b8b3d204b579b3a5604858e62283df65b4cb3
Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com>
Reviewed-on: http://git-master/r/1198248
Reviewed-on: http://git-master/r/1314833
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
Peter Daifuku
413331cd4c host1x virtualization: basic support
- Adds a new host1x pushbuffer queue
- Includes support for virtualized VIC

Bug 1509609

(cherry-picked from commit 5589b0ffdaa4b31e7900d23e5d82d8430c710039)
Change-Id: Ie9b604dc8d8e43166dedb13953c4edac813da18b
Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com>
Reviewed-on: http://git-master/r/1198218
Reviewed-on: http://git-master/r/1314832
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
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
Frank Chen
be31fa8edb nvidia-oot: Fix sparse errors for camera
Fix below sparse errors:
1. Unused variable.
2. Defined but not used function.
3. Symbol was not declared, should set it to static.
4. No newline at end of file.

Bug 3954363

Change-Id: I3395b66f9acfbf5206713e87063d0e70ad28b4d0
Signed-off-by: Frank Chen <frankc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2878138
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-30 10:32:18 -07:00
Richard Zhao
91898cedfe add tegra_gr_comm to oot build
source files and header will be copied from nvidia/ repo.

Jira GVSCI-16046

Change-Id: I99c0deca1c206a531cee104b6905952f8753b0af
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2866159
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-by: Aparna Das <aparnad@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-08 18:44:46 -08:00
Ankur Pawar
5957f061b3 Camera: OOT: misc code fixes for drivers
1. Sensor deep power down and mclk enable
   and disable code.
2. Assign pads member in v4l2_subdev_state
   struct passed to v4l2_subdev_call.
3. emc and iso.emc clock are not available
   in K5.15. Disable clock get function.

Bug 3898807

Change-Id: If9e24ccd837af00df250571e6fc4c907886faf93
Signed-off-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2835934
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-02-15 23:54:02 -08:00
Bharat Nihalani
354ef0dbe0 drivers: Use runtime debugfs check
When kernel command line debugfs=off is specified instead of
disabling CONFIG_DEBUG_FS in defconfig to disable Debug-FS,
debugfs functions like debugfs_create_dir will fail.

Use function debugfs_initialized() to check if debugfs
functionality is enabled before calling any debugfs functions.

This allows us to by-pass debugfs initialization if debugfs
is not enabled.

Bug 3752450

Change-Id: I17390c2d9928638d940454c2ea1b3abf00ed4264
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2855128
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-10 06:17:56 -08:00
Mihir Pradeep Garude
2c0f3f9855 nvidia-oot: Add oot support for TI seralizer
This change adds oot supports for TI seralizer driver.

JIRA TDS-11357

Change-Id: I0eb4fa4be82d0e0579dc7acd7f237533b3daf8a6
Signed-off-by: Mihir Pradeep Garude <mgarude@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2817884
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-12-17 18:47:17 -08:00
Frank Chen
5f087cb0ed video: host: Build nvhost camera as OOT modules
Port the nvhost driver below from /kernel/nvidia to
/kernel/nvidia-oot as OOT modules and switching from
using downstream nvhost driver to upstream host1x
driver:
- capture support driver
- nvcsi driver
- vi driver
- isp driver

Change-Id: I31814f202816230029bd8454b8ff58530a96f436
Signed-off-by: Frank Chen <frankc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2797339
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-by: Shiva Dubey <sdubey@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-13 06:15:46 -08:00
Frank Chen
92ac7bc35a media: camera: Build tegra-camera as OOT module
Port camera drivers below from /kenrel/nvidia to
/kernel/nvidia-oot as OOT modules:
- Fusa-capture driver
- Tegra V4L2 framework driver
- vi/csi driver
- tegra camera platform driver

Change-Id: I390af27096425bb11e0934201dd1a90f001bb3fa
Signed-off-by: Frank Chen <frankc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2780698
Reviewed-by: FNU Raunak <fraunak@nvidia.com>
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-by: Shiva Dubey <sdubey@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-12-13 06:15:42 -08:00