1. Add BUILD.bazel file.
2. Add build target of kernel module and required include folder
srctree.* in Makefile to fix the build issue
3. The tr (a build tool defined by kleaf in the sandbox) which
supported by toybox will cause the conversion of header files
to file_define to fail. Fixed it by separating with two tr
commands.
Bug 4344670
Change-Id: I56dcc148960f3b7703335943281589f42caa9af7
Signed-off-by: Jian-Min Liu <jianminl@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3066225
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The functions nvhost_debug_dump_device() and
nvhost_module_remove_client() are a no-op and were initially
added to ensure that the PVA driver worked with both the legacy nvhost
driver and upstream host1x driver. Now the legacy nvhost driver is
deprecated remove these functions.
Bug 4475969
Change-Id: I1c1444b7b6578117f42200259174e2f60a464db3
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3092468
Reviewed-by: Pekka Jylha Ollila <pjylhaollila@nvidia.com>
Tested-by: Pekka Jylha Ollila <pjylhaollila@nvidia.com>
Existing implementation uses a single page_pool
for all Rx DMA channels. As by default all irqs
are on CPU 0, this does not cause any issue.
Routing an irq to some other CPU causes race
conditon for page allocation from page_pool which
leads to random memory corruption.
[ 158.416637] Call trace:
[ 158.416644] arm_lpae_map_pages+0xb4/0x1e0
[ 158.416649] arm_smmu_map_pages+0x8c/0x160
[ 158.416661] __iommu_map+0xf8/0x2b0
[ 158.416677] iommu_map_atomic+0x58/0xb0
[ 158.416683] __iommu_dma_map+0xac/0x150
[ 158.416687] iommu_dma_map_page+0xf4/0x220
[ 158.416690] dma_map_page_attrs+0x1e8/0x260
[ 158.416727] page_pool_dma_map+0x48/0xd0
[ 158.416750] __page_pool_alloc_pages_slow+0xc4/0x390
[ 158.416757] page_pool_alloc_pages+0x64/0x90
[ 158.416762] ether_padctrl_mii_rx_pins+0x164/0x9d0 [nvethernet]
[ 158.416807] ether_padctrl_mii_rx_pins+0x478/0x9d0 [nvethernet]
[ 158.416822] osi_process_rx_completions+0x284/0x4d0 [nvethernet]
[ 158.416832] 0xffffa26218b8f71c
[ 158.416855] __napi_poll+0x48/0x230
[ 158.416871] net_rx_action+0xf4/0x290
[ 158.416875] __do_softirq+0x130/0x3e8
[ 158.416889] __irq_exit_rcu+0xe8/0x110
This change creates a page_pool per Rx DMA channel.
This ensures there is no race conditon for page
alloc/dealloc from each DMA napi context.
Bug 4541158
Change-Id: I12668ee7d824fd30d54a874bbbdf190d02943478
Signed-off-by: Aniruddha Paul <anpaul@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3091494
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
The dma-buf import code currently attaches and maps all imported
dma-bufs to the drm device to get their sgt for mapping to the
directly managed IOMMU domain.
In many cases, like for newer chips (Tegra186+), the directly
managed IOMMU domain is, however, not used. Mapping to the drm
device can also cause issues e.g. with swiotlb since it is not
a real device.
To improve the situation, only attach and map imported dma-bufs
when required.
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Change-Id: If73cc4e9419a2eebf67269eadb34050986f73077
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3090413
Reviewed-by: Santosh BS <santoshb@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The functions nvhost_job_put() and nvhost_syncpt_set_minval() are no
longer used so remove these functions.
The flag CONFIG_TEGRA_HOST1X is always true for out-of-tree drivers and
so remove the legacy code for when this flag is not defined.
Bug 4475969
Change-Id: I88c89d30bfc9be4b8628f115ea96835cb5f6f295
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3091653
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
There is GVS intermittency where few audio tests fail because there is
no APE sound card available. The card registration itself does not
happen because there is kernel data abort and following dump is seen:
[ 36.163223] Unable to handle kernel paging request at virtual address ffffffffffffffc0
[ 36.171180] Mem abort info:
[ 36.171182] ESR = 0x0000000096000004
[ 36.171183] EC = 0x25: DABT (current EL), IL = 32 bits
[ 36.171186] SET = 0, FnV = 0
[ 36.174218] EA = 0, S1PTW = 0
[ 36.174219] FSC = 0x04: level 0 translation fault
[ 36.174221] Data abort info:
[ 36.174222] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[ 36.174223] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 36.174224] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 36.174226] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000813b67000
[ 36.174228] [ffffffffffffffc0] pgd=0000000000000000, p4d=0000000000000000
[ 36.174234] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
This seems to happen because mixer control override driver has the
dependency over the sound card and this dependency check is incorrect.
The attempt is made to register override controls before the sound card
is fully ready.
One option is to use 'card->instantiated' flag to add the dependency.
However this flag update is protected by card mutext and client_mutex
which is local to the core. So this flag check does not appear fully
reliable.
As a safer option, the override device is made child of sound device.
This way the probe order is ensured and override probe happens only
after a successful sound probe. This requires a change in machine driver
to allow probe() happen for child devices. This may be a concern during
usage of upstream machine driver which does not have provision for child
device probing. For now unblock the upstream AHUB usage by using this
safe option and investigate the best option to make the override driver
independent.
Bug 4508166
Bug 4451662
TAS-2251
Change-Id: Ib13f0a3a0ac272a0f2325b9d74efbc31128f0991
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3083180
Reviewed-by: Mohan kumar <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Fix imx477 partial frame issue and wrong frame-length
/exposure time calculations.
Uses hardcoded sensor internal clock frequency
instead of clock values from sensor device tree.
Adding clock frequency to device tree also require
deskew_initial_enable = "true". Setting deskew in
device tree is causing kernel panic in function
nvcsi_deskew_setup(). For unblocking the IMX477
use case, set hardcoded clock in driver for now.
Bug 4384649
Change-Id: Iedb02673c6f4da140aee22adc991805b6aa1eb7e
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3086503
cherry-picked from <4d4e68569911d4424073a3b39f5b2642346a077a>
Signed-off-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3087470
Reviewed-by: Praveen AC <pac@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Currently, the DLA driver does not return an error if the ICC write
handle is not found and so it is possible that ICC failures will go
undetected. By using dev_err_probe(), error messages are only printed if
the error is not -EPROBE_DEFER. If an -EPROBE_DEFER error is returned
from the ICC, then no error message is printed because probe is being
deferred and we will try to probe the driver again later. This ensures
that the DLA driver will wait for the ICC to be ready and if any other
error occurs, then an error message will be displayed and the proper
error code returned.
Bug 4496044
Change-Id: I88632d7c6f7f1b83e0a69e4b132404a77fc090ec
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3084821
Reviewed-by: Johnny Liu <johnliu@nvidia.com>
Reviewed-by: Arvind M <am@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
If the userspace service 'irqbalance' is installed then the nvethernet
driver crashes when there is network activity. To avoid this crash set
the IRQF_NOBALANCING flash for the VM interrupts. No performance
degradation is observed when running iperf3 with a 1Gbps link.
Long-term the nvethernet driver still needs to be fixed to allow IRQ
balancing.
Bug 4293378
Bug 4541158
Change-Id: I0aa4ee28e36c7d273f14ff043544e72d3e988bd3
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3087525
(cherry picked from commit f9ed570c2b)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3088936
Reviewed-by: Revanth Kumar Uppala <ruppala@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
1. Register resume_noirq handler for profiling the time when early
driver resume sequence is started. Since this driver is loaded after
boot, this should get called very early in the resume sequence.
2. Register PM notifier to know when resume is complete. This helps
in profiling the time when entire resume sequence is complete.
These 2 timestamps should approximately indicate the time it takes
for Linux to resume.
Adding this code in this driver removes dependency of providing this
information from some other driver.
Bug 4454722
Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com>
Change-Id: I214eb4ff2808ecb87b828cb4556a2a00cc2d4545
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3047836
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3062030
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Probing a driver can be deferred if a resource is not ready and this is
accomplished by returning -EPROBE_DEFER from the .probe function. This
tells to kernel to probe the driver again some time later. When probing
a driver is deferred it is not necessary to print an error message
because this is an expected error case. To avoid printing an error
message on probe deferral, the dev_err_probe() function can be used
which will only print an error if the error code is not -EPROBE_DEFER.
Therefore, update the camera drivers to use dev_err_probe() to avoid
printing an error message when -EPROBE_DEFER if returned from ICC.
This change will also cause the probing of the rtcpu-debug driver to
be deferred if -EPROBE_DEFER is returned and prevent the rtcpu-debug
driver from being probed at all if an real error is encountered.
Bug 4496044
Change-Id: I8a5313750e11b4bd661191c0c544c39e43478089
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3084829
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Kernel freeze is occurring due to incorrect cleanup
in vi5.c.
Fix for kernel freeze:
1 Don't call vi_channel_drv_unregister() and
tegra_vi_media_controller_cleanup() in vi5_remove.
2 capture_vi_probe() is calling vi_channel_drv_register() and
tegra_capture_vi_media_controller_init(), so capture_vi_remove()
should call vi_channel_drv_unregister() and
tegra_vi_media_controller_cleanup()
3 Use correct dev pointer in vi_channel_drv_unregister().
Code cleanup:
1 Remove use_legacy_path variable that was used for T186.
2 Removed unused t194_vi5_file_private struct.
Bug 4415340
Change-Id: I7a75d90e1d2a1fb78a6a5b083a66836b1723156c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3077660
cherry-picked from <29e88ed17e757c0129a54a3fb44990cec4a33983>
Signed-off-by: Ankur Pawar<ankurp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2936745
Reviewed-by: Anubhav Rai <arai@nvidia.com>
Reviewed-by: Shubham Chandra <shubhamc@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
The OOT variants of the host1x and tegra-drm drivers originally had
a '-next' suffix in the name to differentiate these from the upstream
versions. Now that the OOT drivers are installed under the 'updates'
directory, the '-next' suffix can be dropped because 'kmod' will
prioritise loading the variant in 'updates' over those built from the
kernel tree.
Bug 4410785
Change-Id: I29287ddb935b681a5ee8a3326428eba82715da76
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3065465
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>