Add support for numa aware nvmap heaps:
- Add carveout node for gpu1 which is gpu carveout on numa node 1.
- Add numa_node_id property in nvmap_heap and nvmap platform carveout
structures to hold numa id info i.e. numa node on which this heap is
created.
- gpu0 and gpu1 would have same heap bit but different numa node ids.
- Update buffer allocation function: If user specify the allocate from
a particular numa node instance of the heap, then allocate from that
particular instance. By default input to numa node id is NUMA_NO_NODE,
so in this case, iterate over heaps on all numa nodes to satisfy the
allocation request e.g. if user specify to allocate from gpu carveout
without specifying any particular numa node, then iterate over all gpu
carveouts on all numa nodes, whichever has sufficient free memory,
allocate from thatheap instance.
- Update debugfs functions to pass heap type and numa id, so that
debugfs info is fetched from correct heap instance.
Bug 4231517
Change-Id: I77ba4b626546003ea3c40d09351d832100596d9a
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3003219
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Use the proper enum name for returning the value from
pci_client_get_drv_mode().
Instead of returning NVCPU_MAXIMU, return DRV_MODE_MAXIMUM
which is more appropriate return value.
Bug 4374520
Change-Id: I172fe7bdc926fcacbde6428db59c17bec57f7443
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3014987
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
There is additional argument added in iommu_map() from Linux6.3.
Pass the proper argument from the drier who are using this
APIs. Using conftest methods for differentiating whether
additional argument is needed or not.
Bug 4374520
Change-Id: Ica06363802d31be317675a50194f34670521e023
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3014986
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
When BPMP BWMGR receives ICC avg_bw requests from different memory
clients, it will sum up all avg_bw values together and use it to
determine the final EMC frequency.
Transitioning to ICC peak_bw requests will cause BPMP to evaluate
the bandwidth requirements of each memory client individually,
selecting the maximum bandwidth request from among all the clients
to determine the final EMC frequency.
This modification prevents excessive memory bandwidth allocation
when multiple host1x clients collaborate for data processing.
Currently, host1x clients request the full theoretical 100% data
bandwidth, even though the system typically doesn't fully utilize
that amount during runtime.
To address the issue of insufficient memory bandwidth when multiple
host1x clients are used together, we can reduce the boost_up_threshold
value of cactmon DFS. This adjustment ensures that when actual memory
bandwidth utilization surpasses the specified boost-up bandwidth
threshold, EMC frequency will be further scaled by one step further
to alleviate the problem.
Bug 4328471
Signed-off-by: Johnny Liu <johnliu@nvidia.com>
Change-Id: I826a374666f38718652c5cae449c0aadeabfbdb5
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2996561
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Instead of using the Linux kernel version, use the
configs coming from core kernel to find out whether
legacy or next-gen prod configuration method is used.
This will help on porting changes on any kernel and
configuring via core kernel configs.
Bug 3389584
Change-Id: I19c242c573dd63c7dbecbf87d4ba807857dcf4fb
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3013911
Reviewed-by: Krishna Yarlagadda <kyarlagadda@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The callback APIs of class attribute are updated on
Linux6.4 and above to have the constant type pointer
argument.
Update the driver compatible with the updated APIs
for Linux 6.4 and above.
Bug 4370594
Change-Id: Ic06cb0d752797bb272f110aa0bb35bdd3afa1e6a
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3013107
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Tegra BPMP driver is not supported with Linux 6.6. However,
the packaging of the embedded-linux required this driver.
Add dummy driver to complete the packaging till packaging
files have solution to complete with and without this
driver.
Bug 4346767
Change-Id: I113019d6ef25860511683b326f9c90d6ff1e99a3
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3012092
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
- update ar0234 driver to support ar0234 sensor
hardware provided support for capturing frames
using alternating exposure time and analog gain
settings through automatic context switching
- added new v4l2 control having control id
TEGRA_CAMERA_CID_ALTERNATING_EXPOSURE for
configuring alternating exposure settings
- other changes to support aforementioned changes
Bug 4064517
Jira L4T-4501
Change-Id: Id1d3d745345836436b16da1fd00cc97f2e3b5553
Signed-off-by: Shashank Kumar <shaskumar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2881141
(cherry picked from commit e973475525c9a7a99552282316e06126b8fff625)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2987067
Reviewed-by: Anubhav Rai <arai@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Tested-by: Anubhav Rai <arai@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
There is major changes in the engine context operation
for Linux 6.6 and it is required to handle properly.
While fix is in a way, disable this driver for Linux6.6
to unblock further development.
Bug 4346767
Change-Id: I0f9325637726feb57b51a27e582d7d531ac1b6a7
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3009040
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The FB deferred IO ops helper name is changed in Linux 6.6 with
below mainline kernel change:
---
commit 744d35d3436fbeed9131f6ab717aeb3f775b19c4
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date: Sat Jul 29 21:26:49 2023 +0200
fbdev: Align deferred I/O with naming of helpers
---
Use the new macros name.
Bug 4346767
Change-Id: Idc2e2319994fd2ed7040d8d5528a0d6074257420
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008092
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The functions for fd/handle conversion are unexported as it is
used internally to drm_prime based on following change:
---
Author: Thomas Zimmermann <tzimmermann@suse.de>
Date: Tue Jun 20 09:59:59 2023 +0200
drm/prime: Unexport helpers for fd/handle conversion
---
Remove the initialisation of these functions pointer.
Bug 4346767
Change-Id: I821f4e63663a7f35e5fa39ed84383765ed8599fa
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008091
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Split the type and declaration of page_pool header for Linux6.6
based on below change from kernel 6.6:
---
commit a9ca9f9ceff382b58b488248f0c0da9e157f5d06
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date: Fri Aug 4 20:05:24 2023 +0200
page_pool: split types and declarations from page_pool.h
---
Bug 4346767
Change-Id: I0217da34c67d952c97c6812c2760bed2fb3df3e0
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008090
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The API v4l2_async_notifier_init() changed to v4l2_async_subdev_nf_init() in
Linux 6.6 with below kernel change:
---
commit bda8953e8c3e7ecbbf6cb1be11790496300e3961
Author: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Date: Tue Apr 18 11:52:07 2023 +0200
media: v4l: async: Drop v4l2_async_nf_parse_fwnode_endpoints()
---
Use the new API.
Bug 4346767
Change-Id: Iff3137d07cd270300c4b9a90974a4dd81fb53740
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008087
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The match type enum and structure has been changed in Linux 6.6.
with below changes in kernel:
---
commit 7a2259fc5182bc792b7ce90d83d8f6e197808b9a
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date: Fri May 5 09:09:10 2023 +0200
media: v4l: async: Rename V4L2_ASYNC_MATCH_ macros, add TYPE_
commit f0e10d0a971c43fb2035fccc06de8bdd22674ec9
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date: Sun Feb 19 13:09:00 2023 +0100
media: v4l: async: Make V4L2 async match information a struct
---
Modify accordingly for Linux 6.6.
Bug 4346767
Change-Id: I49e94f7ad5e2fa4a390fdf0d79df7c2d4d2bd090
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008086
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The API v4l2_async_subdev is replaced by v4l2_async_connection in Linux 6.6
with below kernel change:
----
commit adb2dcd5f2d49d3ba3171160fabd4be0d4b2a86c
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date: Thu Feb 16 14:54:53 2023 +0100
media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection
----
Using the new API.
Bug 4346767
Change-Id: I73c39fd499a0a5cbeb8d3f24de08c52a5ea8dda5
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3008085
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>