diff options
Diffstat (limited to 'system/nvidia-legacy390-kernel/patches/kernel-5.10.patch')
-rw-r--r-- | system/nvidia-legacy390-kernel/patches/kernel-5.10.patch | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/system/nvidia-legacy390-kernel/patches/kernel-5.10.patch b/system/nvidia-legacy390-kernel/patches/kernel-5.10.patch new file mode 100644 index 0000000000000..6fa40d0f946c5 --- /dev/null +++ b/system/nvidia-legacy390-kernel/patches/kernel-5.10.patch @@ -0,0 +1,162 @@ +From a7b47c7adad039c65e75cfc31e0ca77d29b915f7 Mon Sep 17 00:00:00 2001 +From: BlackEagle <ike.devolder@gmail.com> +Date: Sat, 19 Dec 2020 14:50:07 +0100 +Subject: [PATCH] kernel-5.10 + +based on: https://gist.github.com/xtrymind/70919c82347670e788d4787dc321b72f + +Signed-off-by: BlackEagle <ike.devolder@gmail.com> +--- + kernel/common/inc/nv-linux.h | 3 ++ + kernel/conftest.sh | 29 +++++++++++++++++-- + .../nvidia-drm/nvidia-drm-gem-user-memory.c | 10 +++++-- + 3 files changed, 38 insertions(+), 4 deletions(-) + +diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h +index 30afd4a..c9e5af7 100644 +--- a/kernel/common/inc/nv-linux.h ++++ b/kernel/common/inc/nv-linux.h +@@ -179,6 +179,9 @@ static inline uid_t __kuid_val(kuid_t uid) + #include <linux/dma-mapping.h> + #else + #include <linux/dma-direct.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++#include <linux/dma-map-ops.h> ++#endif + #endif + #endif + +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 9612796..1c1eb30 100755 +--- a/kernel/conftest.sh ++++ b/kernel/conftest.sh +@@ -134,6 +134,7 @@ test_headers() { + FILES="$FILES linux/fence.h" + FILES="$FILES linux/ktime.h" + FILES="$FILES linux/dma-resv.h" ++ FILES="$FILES linux/dma-map-ops.h" + + # Arch specific headers which need testing + FILES_ARCH="asm/book3s/64/hash-64k.h" +@@ -2050,6 +2051,9 @@ compile_test() { + #include <linux/dma-mapping.h> + #else + #include <linux/dma-direct.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + #endif + void conftest_phys_to_dma(void) { + phys_to_dma(); +@@ -2064,6 +2068,9 @@ compile_test() { + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_dma_ops(void) { + (void)dma_ops; + }" +@@ -2078,6 +2085,9 @@ compile_test() { + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_dma_ops(void) { + (void)swiotlb_dma_ops; + }" +@@ -2088,22 +2098,28 @@ compile_test() { + dma_map_ops) + # + # Determine if the 'struct dma_map_ops' type is present. +- # ++ # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_dma_map_ops(void) { + struct dma_map_ops ops; + }" + + compile_check_conftest "$CODE" "NV_DMA_MAP_OPS_PRESENT" "" "types" + ;; +- ++ + get_dma_ops) + # + # Determine if the get_dma_ops() function is present. + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_get_dma_ops(void) { + get_dma_ops(); + }" +@@ -2117,6 +2133,9 @@ compile_test() { + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_noncoherent_swiotlb_dma_ops(void) { + (void)noncoherent_swiotlb_dma_ops; + }" +@@ -2133,6 +2152,9 @@ compile_test() { + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_dma_map_resource(void) { + dma_map_resource(); + }" +@@ -3961,6 +3983,9 @@ compile_test() { + # + CODE=" + #include <linux/dma-mapping.h> ++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT) ++ #include <linux/dma-map-ops.h> ++#endif + void conftest_dma_is_direct(void) { + dma_is_direct(); + }" +diff --git a/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c b/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c +index 76dedba..92a5192 100644 +--- a/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c ++++ b/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c +@@ -20,6 +20,7 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> + #include "nvidia-drm-conftest.h" + + #if defined(NV_DRM_AVAILABLE) +@@ -47,8 +48,13 @@ static struct sg_table *__nv_drm_gem_user_memory_prime_get_sg_table( + { + struct nv_drm_gem_user_memory *nv_user_memory = to_nv_user_memory(nv_gem); + +- return drm_prime_pages_to_sg(nv_user_memory->pages, +- nv_user_memory->pages_count); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) ++ return drm_prime_pages_to_sg(nv_gem->nv_dev->dev, nv_user_memory->pages, ++ nv_user_memory->pages_count); ++#else ++ return drm_prime_pages_to_sg(nv_user_memory->pages, ++ nv_user_memory->pages_count); ++#endif + } + + static void *__nv_drm_gem_user_memory_prime_vmap( +-- +2.29.2 + |