summaryrefslogtreecommitdiff
path: root/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch')
-rw-r--r--x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch145
1 files changed, 145 insertions, 0 deletions
diff --git a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch b/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch
new file mode 100644
index 00000000..7591802a
--- /dev/null
+++ b/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch
@@ -0,0 +1,145 @@
+diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h
+index dd335b5..7eae890 100644
+--- a/kernel/common/inc/nv-linux.h
++++ b/kernel/common/inc/nv-linux.h
+@@ -178,6 +178,10 @@
+ #include <linux/dma-mapping.h>
+ #endif
+
++#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT)
++#include <linux/dma-map-ops.h>
++#endif
++
+ #if defined(CONFIG_SWIOTLB) && defined(NVCPU_AARCH64)
+ #include <linux/swiotlb.h>
+ #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"
+@@ -2046,6 +2046,7 @@
+ #
+ CODE="
+ #include <linux/dma-mapping.h>
++ #include <linux/dma-map-ops.h>
+ 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(