Your L4T kernel (got from https://nv-tegra.nvidia.com/linux-4.9.git) is considered to be v4.9.140 according to its main Makefile, however difference between mainline 4.9.140 and your kernel is too enourmous to be just a “kernel ported for Tegra”. What is the real version of your 4.9 kernel?
My research in this difference is motivated by the willing to boot mainline kernels on my device based on Jetson Nano module, however nowadays I’m compelled to use your kernel repo due to the way you provide Linux support for your devices (srctree overlays, etc…). Shall I believe that this practice will be changed one day?
Is your concern is only about the way device tree is present in a separate git and there is a separate nvidia git for nvidia downstream code?
Definitely not, because the things you noticed are not the only modifications applied to mainline kernel by NVIDIA engineers. My concern is about the inability to place all these modifications into a distinct patch, that can be applied to any version of the mainline kernel.
While we are updating the minor version further in upcoming release by picking upstream changes, that kind of clear demarcation of single patch to separate upstream and downstream changes is not available on K4.9 which Nvidia is releasing with Jetpack. This is a curated kernel on top of upstream with many downstream patches.
You can though try upstream kernel on Jetson Nano or TX1