Remove dependencies on the following deprecated
nvhost API functions by implementing their functionality
directly in the NVDLA driver:
1. nvhost_module_init:
Replaced with direct implementation in nvdla_module_init:
- Get clock resources and set clock rates
- Initialize reset control
- Set up power management runtime
- Create debugfs entries
2. nvhost_module_deinit:
Replaced with direct implementation in nvdla_module_deinit:
- Disable power management runtime
- Free falcon firmware if present
- Clean up debugfs entries
3. nvhost_module_reset:
Replaced with direct implementation in nvdla_module_reset:
- Handle prepare_poweroff callback
- Acquire and release reset control
- Load clock gating registers
- Handle finalize_poweron callback
4. nvhost_module_busy:
Replaced with direct implementation in nvdla_module_busy:
- Get PM runtime sync
- Handle PM runtime errors
5. nvhost_module_idle and nvhost_module_idle_mult:
Replaced with direct implementations:
- Mark last busy for PM runtime
- Handle autosuspend or regular PM runtime put
6. nvhost_module_pm_ops:
Replaced with custom nvdla_pm_ops structure:
- Implement nvdla_runtime_suspend and nvdla_runtime_resume
- Implement nvdla_suspend and nvdla_resume
- Configure SET_RUNTIME_PM_OPS and SET_SYSTEM_SLEEP_PM_OPS
7. nvhost_module_load_regs:
Replaced with nvdla_module_load_regs:
- Implement register manipulation with direct memory mapped I/O
- Use writel instead of host1x_writel
Bug 4921620
Jira HOSTX-5963
Change-Id: I3006a92a05966da138da31730e97f74f786c9d0c
Signed-off-by: Mainak Sen <msen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3321246
Reviewed-by: Arvind M <am@nvidia.com>
Reviewed-by: Mitch Harwell <mharwell@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Replace deprecated nvhost client device functions with
their direct implementations to maintain compatibility
with newer host1x drivers:
1. Replace nvhost_client_device_get_resources with
direct implementation:
- Get host1x data from parent device
- Map device resources directly
2. Replace nvhost_client_device_init with
nvdla_client_device_init:
- Allocate character device region
- Create device node using nvdla_client_device_create
3. Replace nvhost_client_device_release with
nvdla_client_device_release:
- Clean up device node
- Unregister character device region
This change ensures the NVDLA driver continues to work
correctly with the host1x driver while removing
dependencies on deprecated functions.The device node
"nvhost-ctrl-dla" is still created with the same
functionality as before.
Bug 4921461
Jira HOSTX-5963
Change-Id: Ib27000fa47fdd72f80ca4030232d31e100c01ea4
Signed-off-by: Mainak Sen <msen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3320695
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Arvind M <am@nvidia.com>
Reviewed-by: Mitch Harwell <mharwell@nvidia.com>
Replace the deprecated nvhost_syncpt_unit_interface_init()
function with host1x_syncpt_get_shim_info() in
the NVDLA driver. This change:
1. Adds a local def of struct nvhost_syncpt_interface
2. Implements the functionality in nvdla_sync_syncpt.c
3. Adds necessary include files for IOMMU and DMA mapping
This change ensures the NVDLA driver continues to work
correctly with the host1x driver while removing the
dependency on deprecated functions.
Bug 4921461
Jira HOSTX-5963
Change-Id: I085a24045758a2ecbb026654c3ee57a8dfda9271
Signed-off-by: Mainak Sen <msen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3320585
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mitch Harwell <mharwell@nvidia.com>
Reviewed-by: Arvind M <am@nvidia.com>
This change adds SC7 wake support to cec driver.
CEC engine can detect TV packets in SC7 state and
can wake up when particular pattern detected.
In resume functionality, the total arrived packets on FIFO
needs to read and reported back to user-space.
This change adds -
1. Program CEC engine to activate for SC7 wake.
2. Program required opcode and physical address.
3. Register for wake and read packets in resume path.
4. Provide sysfs control to program physical address.
Verification of SC7 wake is done for below cases -
1. TV turn on and off is tested.
2. TV source input change is tested.
3. CEC Analyzer set-stream is tested.
Bug 4974679
Change-Id: Ia1ceeb13b89614c96d0b6d42f2bb58419865414b
Signed-off-by: Robert Huang <robhuang@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3300821
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Prafull Suryawanshi <prafulls@nvidia.com>
Calling tegra_camrtc_reboot() can cause a memory fabric timeout error by
asserting reset when the RTCPU is in the middle of a memory transaction.
As a solution (similar to tegra_camrtc_halt), before asserting the
hardware reset, signaling the RTCPU to suspend its operations using
CAMRTC_HSP_BYE and waiting for RTCPU to enter WFI.
Bug 5051748
Change-Id: Iba8e4e837ee0983ffe9629e7627e0056ce1c2341
Signed-off-by: Petri Niemela <pniemela@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3317142
Reviewed-by: Semi Malinen <smalinen@nvidia.com>
Tested-by: Semi Malinen <smalinen@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sudhir Vyas <svyas@nvidia.com>
Previous implementation lacks of documentation and it's hard to
understand the effect of changing specific tunable parameter.
Revise the implementation so that the scaling behavior is somehow
aligned with the tegra_wmark governor supported by the actmon. The
only different is that nvhost_podgov governor is polling-based DFS
algorithm and it maintaines the moving average load in the governor
instead of hardware itself.
Bug 4892068
Change-Id: I033cb1359a484d4c9433fa4f2e7a99c42cb636b3
Signed-off-by: Johnny Liu <johnliu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3315446
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Rajesh Devaraj <rdevaraj@nvidia.com>
using this patch fixing below cert & misra errors:-
- cert_int08_c_violation: Unsigned integer operation
"vma->vm_end - vma->vm_start" may wrap.
- cert_int08_c_violation: Unsigned integer operation
"vma->vm_end - vma->vm_start" may wrap.
- cert_str07_c_violation: Using unsafe interface
"strncpy" instead of "strncpy_s" for string manipulation.
- cert_str07_c_violation: Using unsafe interface "strncat"
instead of "strncat_s" for string manipulation.
- cert_exp39_c_violation: Accessing an object through a
pointer "(uint64_t *)buf" whose type "uint64_t *" is
incompatible with the type of the object
- cert_exp39_c_violation: Calling function
"hyp_trace_get_mask(uint64_t *)" which accesses an object
through a pointer "(uint64_t *)buf" whose type "uint64_t *"
is incompatible with the type of the object. [details]
- cert_exp39_c_violation: Accessing an object through a
pointer "(uint64_t *)buf" whose type "uint64_t *" is
incompatible with the type of the object.
JIRA ESLC-8400
Change-Id: Ia8e03dac4e939078719543d8e6d3bbc464301b16
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3304759
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
The Tegra264 PCIe drivers don't build for kernels that don't have:
1. The structure mrq_pcie_request_req defined
2. The function pci_epc_deinit_notify() present
This is currently being handling by building a dummy driver for kernels
that don't have these. To simplify this, use conftest to detect if the
above are present and modify the Tegra264 PCIe driver accordingly if
they are not present. By using conftest we can remove the Makefile
variable 'NV_OOT_PCIE_T264_SOC_SKIP_BUILD' and ccflag
'DNV_CONFIG_PCIE_TEGRA_DMA_DISABLE'.
Finally, the PCIe drivers are always built as modules so simplify the
Makefile and remove the usage of 'CONFIG_TEGRA_OOT_MODULE'.
Bug 4911768
Change-Id: Id282497b8607a732b5e6c90e1e7c1436589a0b5f
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3245592
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
The camera driver fails to build if the compiler option
-Werror=declaration-after-statement is enabled and the following error
is seen ...
drivers/media/platform/tegra/camera/tegracam_ctrls.c:1120:17: error:
ISO C90 forbids mixed declarations and code
[-Werror=declaration-after-statement]
1120 | int index = tegracam_get_ctrl_index(cid);
| ^~~
JIRA CAMERASW-32529
Fix this by moving the declaration of the 'index' and 'size' variables
to the start of the for-loop code block.
Change-Id: I69590c147e8effd031b962606a077856ad4f8d07
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3316537
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mike Jia <mijia@nvidia.com>
NvRmMemRead/NvRmMemWrite APIs don't have corresponding requirements in
DriveOS 7.0 Linux NSR. We have taken sign-off from the stakeholders to
confirm that they are not using these APIs in T264 Linux Prod NSR
variant. But some of them are using these APIs in dev_nsr and did not
agree to remove it from dev-nsr, L4T, HOS etc. Hence we need to
make sure that they do not accidentally start using these APIs. Add
bug_on when the corresponding ioctl is called in prod_nsr.
Bug 4980658
Change-Id: Ie9aaa9cc52fc1971b82243bb652d0ee9ce1017ca
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3315736
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
This commit deprecates the falcon hardware interface implementation from the host1x-nvhost driver.
falcon_exit() function will be deprecated once usage of
nvhost_module_deinit API is removed from PVA/DLA/Camera elements.
Jira HOSTX-5933
Bug 4918838
Change-Id: I268836c8c8fc2f1ab060412bb4446c7080f846c4
Signed-off-by: Mainak Sen <msen@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3311319
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Reviewed-by: Sanif Veeras <sveeras@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>