diff options
19 files changed, 20 insertions, 1243 deletions
diff --git a/gui-libs/display-manager-init/Manifest b/gui-libs/display-manager-init/Manifest deleted file mode 100644 index 24989ab2..00000000 --- a/gui-libs/display-manager-init/Manifest +++ /dev/null @@ -1,7 +0,0 @@ -AUX display-manager-setup.initd 224 BLAKE2B 8513295b8c315d71521ac24fc9da1878e32044ebe7b6e37afb77a25eb8ec449568a82e516fd04de7fb2b0f0b5ff355a54a257041616d0035b25d0ae191e336e4 SHA512 d0048fc5b3c0fd92a44b71f7b8132e35787e42095c22f53aa41c10505c219eb25015f76163069aab7ebb6f0ac9feeac62d1b74682fd3947e835ea5de36957727 -AUX display-manager.confd 608 BLAKE2B 814b4d36ce74d2f70a771cda31c3b9f6e21246bef681607d2687b3ed51f1baab8752fe94ad1021b9fd81b3e8444a328d2c1de83718534ea722ef9dadcbdca164 SHA512 40fb28fb6ac06b59fed9fec86816a444f53ea499bb9a7e7a072a5a932b45a29f830b9da9de0954b1f5cb21903c08ff5c997db2e32ee0bb1a300cd6c070cc8aa6 -AUX display-manager.initd 6145 BLAKE2B fb1debd71978b157c185d9a7065c7f630a0d64839652b3882e6f69823444694f4a7fb347a49dcff35c11a9df94b5e8dcc85eac8351ce9a9992c23a13e67eb669 SHA512 5ea8c89d29c03ebf814a5bd036387bf9d8e65962f402b6ea2ce26e3c99f2972fc971b3b6e5e6971a3f1dc559a6d0ddf8b7f5b7f2170bafacfa79653cf3c5445d -AUX startDM 786 BLAKE2B c5026e862508e598a0b3e8940a5dffd697fecc109eef343ea0f91d72b1b6df927dd273a1e69cddbae7324b707c9cc7b2f2699c44d106100f2b32db28c331f331 SHA512 a35ef86109624f5adb4275906f8466ef8e7a62af93bf2038b5f44e713b446264f1ecb00ff8bb7bb498a89bdbf3b96e50ebf5a7a39471c3c4395506c92f907dcd -AUX xdm.initd 200 BLAKE2B ec997b7080037a7197a6f75728d9075c846168115d705015afc6518e1e72d815cdf87c2e9e3f3ad950034599e548d015e530cb7821f83b9d289337908455c17a SHA512 4552215cc2cdffa3298a9136e2a22f600f55958d7f74b2d06bbf48568d8034ef24deea27ad9f8d6d100516b0efb4e2688c1f454dc556120f759b1da7fecd877c -EBUILD display-manager-init-1.0.ebuild 1097 BLAKE2B e053ed6307efcfb8bfd28e031d675cfcf0283fe228eb61429c546568d902687d1ffc651195b15468c7dc56adbc0fff33c7dde0ed92203cda243ec5422fe62849 SHA512 97bd4912687bf6854c1837688ee90ada622857ea7c5fa9913d79d48b1523bd486becdf3a9b7810bd3ef11d9f43ed152a70fb159544b6e9cae11bb09d088334b8 -MISC metadata.xml 234 BLAKE2B b45f6795dbd73dfcee2a68f93ec5460509b15a69401467bc8f4af9505eeb04a2aa35a2b144eb88781df4abd4e15d2b88fc728daf033c6d646762170ffb00b1a7 SHA512 fabcd59aeede4ac93d66552746edacc44fd565551aafaca67185aff7f8e6a4c0fa21f3d54e4fccd7def948ec57b90489631bd779fb992cd9322132b0a3aa503b diff --git a/sys-kernel/broadcom-sta-dkms/Manifest b/sys-kernel/broadcom-sta-dkms/Manifest index d95223f7..4f6f6c9c 100644 --- a/sys-kernel/broadcom-sta-dkms/Manifest +++ b/sys-kernel/broadcom-sta-dkms/Manifest @@ -1,2 +1 @@ -DIST README-broadcom-sta-dkms-6.30.223.271.txt 102 BLAKE2B 6d6ef1fa24beb39df1d10b66d79430100b4a3b098f93aebbd1792385ecbd5a41cf83cb4c76a6c0fcbd87f05ccc843761860f0800aed0f2d472c0ada084c5aa36 SHA512 ca1bda36ee07d00d40fc7a336c10058c01d7454d96b8dd7bbaef5ca1b4762af9746b939300ff2b57f42aed73243f1c6aff7cb731b183a6a2f797a1c181da90d5 DIST hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz 2928541 BLAKE2B e9d01c1a1a63c07f720e3ee53ee3ef634ab12694135300cb0ce47ade0e9e0084967a0b6df64d983e8184240eb3defb128f650bddb7727e901d50315307f3398a SHA512 6855781f7c69a9aecb9461932423688964879d5a4df571f01ae7adaa7bf21a410bef839605d555afb6c8f4eec92fe8510af6cb120930095617ff6cdcccedaf17 diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/Manifest b/sys-kernel/nvidia-drivers-legacy-dkms/Manifest index b3070520..df7b4407 100644 --- a/sys-kernel/nvidia-drivers-legacy-dkms/Manifest +++ b/sys-kernel/nvidia-drivers-legacy-dkms/Manifest @@ -1 +1 @@ -DIST NVIDIA-Linux-x86_64-390.138.run 83780873 BLAKE2B 5e6a9d77dd2b9de17d923198105a9227ffe2adbc1ed7c9dd5ef3cc810358f71ae47ce9615cbe04f36090f052082a2066772505fd763cbfdbce272f0fb7c25dc7 SHA512 2984fb8f5de598fd3031ebd928942ceb09fd26ae9e61b40b2d348e3174e172a932a1b2a5c2e5534f299b883ade323932be4fdcd26d6f7235a17f6f5a04fa792c +DIST NVIDIA-Linux-x86_64-390.141.run 85330901 BLAKE2B 7759d8cf6c9a75607b9a3ecd53cdd6f6a93f2f372d740a5a87d4d3f41a22f3bd953cc7dd6a0dc0e23a829ec86df8d65b9de499a76cfd4266a13b0aa3288aceb5 SHA512 5448d70e6e64a6403e61a004d83c69a442dd8ed0d61da3a31d3e3b7943c06c559a66b0f8d135982868ecbf209a965f60dae1a633367630b4d9287f725bbaa53c diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/nvidia-drivers-legacy-dkms-390.138-conf.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/dkms.patch index 8bd7c1ce..c91579ff 100644 --- a/sys-kernel/nvidia-drivers-legacy-dkms/files/nvidia-drivers-legacy-dkms-390.138-conf.patch +++ b/sys-kernel/nvidia-drivers-legacy-dkms/files/dkms.patch @@ -5,7 +5,7 @@ diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf -PACKAGE_NAME="nvidia" -PACKAGE_VERSION="__VERSION_STRING" +PACKAGE_NAME="nvidia-drivers-legacy-dkms" -+PACKAGE_VERSION="390.138" ++PACKAGE_VERSION="390.141" AUTOINSTALL="yes" # By default, DKMS will add KERNELRELEASE to the make command line; however, diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.10.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.10.patch deleted file mode 100644 index 7591802a..00000000 --- a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.10.patch +++ /dev/null @@ -1,145 +0,0 @@ -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( diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.8.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.8.patch deleted file mode 100644 index 66d3ef8d..00000000 --- a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.8.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index ac5bb95..3d2f0b7 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -531,7 +531,11 @@ extern int nv_pat_mode; - - static inline void *nv_vmalloc(unsigned long size) - { -+#if defined(NV_VMALLOC_HAS_PGPROT_T_ARG) - void *ptr = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); -+#else -+ void *ptr = __vmalloc(size, GFP_KERNEL); -+#endif - if (ptr) - NV_MEMDBG_ADD(ptr, size); - return ptr; -diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h -index 1270bf3..d2d7657 100644 ---- a/kernel/common/inc/nv-mm.h -+++ b/kernel/common/inc/nv-mm.h -@@ -29,6 +29,10 @@ - typedef int vm_fault_t; - #endif - -+#if defined(NV_MM_HAS_MMAP_LOCK) -+#define mmap_sem mmap_lock -+#endif -+ - /* get_user_pages - * - * The 8-argument version of get_user_pages was deprecated by commit -diff --git a/kernel/conftest.sh b/kernel/conftest.sh -index 7da7505..7793dd6 100755 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -4067,6 +4067,44 @@ compile_test() { - compile_check_conftest "$CODE" "NV_KTIME_GET_REAL_TS64_PRESENT" "" "functions" - ;; - -+ vmalloc_has_pgprot_t_arg) -+ # -+ # Determine if __vmalloc has the 'pgprot' argument. -+ # -+ # The third argument to __vmalloc, page protection -+ # 'pgprot_t prot', was removed by commit 88dca4ca5a93 -+ # (mm: remove the pgprot argument to __vmalloc) -+ # in v5.8-rc1 (2020-06-01). -+ CODE=" -+ #include <linux/vmalloc.h> -+ -+ void conftest_vmalloc_has_pgprot_t_arg(void) { -+ pgprot_t prot; -+ (void)__vmalloc(0, 0, prot); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types" -+ -+ ;; -+ -+ mm_has_mmap_lock) -+ # -+ # Determine if the 'mm_struct' structure has a 'mmap_lock' field. -+ # -+ # Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem -+ # to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock' -+ # in v5.8-rc1 (2020-06-08). -+ CODE=" -+ #include <linux/mm_types.h> -+ -+ int conftest_mm_has_mmap_lock(void) { -+ return offsetof(struct mm_struct, mmap_lock); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types" -+ -+ ;; -+ - pci_dev_has_skip_bus_pm) - # - # Determine if skip_bus_pm flag is present in struct pci_dev. -diff --git a/kernel/nvidia/nvidia.Kbuild b/kernel/nvidia/nvidia.Kbuild -index 63e369f..656db7b 100644 ---- a/kernel/nvidia/nvidia.Kbuild -+++ b/kernel/nvidia/nvidia.Kbuild -@@ -192,7 +192,9 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += iterate_dir - NV_CONFTEST_TYPE_COMPILE_TESTS += kstrtoull - NV_CONFTEST_TYPE_COMPILE_TESTS += backlight_properties_type - NV_CONFTEST_TYPE_COMPILE_TESTS += proc_ops -+NV_CONFTEST_TYPE_COMPILE_TESTS += vmalloc_has_pgprot_t_arg - NV_CONFTEST_TYPE_COMPILE_TESTS += timeval -+NV_CONFTEST_TYPE_COMPILE_TESTS += mm_has_mmap_lock - NV_CONFTEST_TYPE_COMPILE_TESTS += kmem_cache_has_kobj_remove_work - NV_CONFTEST_TYPE_COMPILE_TESTS += sysfs_slab_unlink - NV_CONFTEST_TYPE_COMPILE_TESTS += pci_dev_has_skip_bus_pm --- -2.25.1 diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.9.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.9.patch deleted file mode 100644 index d01eba7a..00000000 --- a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.9.patch +++ /dev/null @@ -1,364 +0,0 @@ -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index ab06dbc..dd335b5 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -159,7 +159,7 @@ static inline uid_t __kuid_val(kuid_t uid) - } - #endif - --#if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL) -+#if defined(NVCPU_X86_64) && !defined(NV_FILE_OPERATIONS_HAS_COMPAT_IOCTL) - #include <linux/syscalls.h> /* sys_ioctl() */ - #include <linux/ioctl32.h> /* register_ioctl32_conversion() */ - #endif -diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h -index d2d7657..a5325fe 100644 ---- a/kernel/common/inc/nv-mm.h -+++ b/kernel/common/inc/nv-mm.h -@@ -144,9 +144,13 @@ typedef int vm_fault_t; - flags |= FOLL_FORCE; - - #if defined(NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG) -- -+ #if defined (NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG) - return get_user_pages_remote(tsk, mm, start, nr_pages, flags, - pages, vmas, NULL); -+ #else -+ return get_user_pages_remote(mm, start, nr_pages, flags, -+ pages, vmas, NULL); -+ #endif - - #else - -@@ -159,7 +163,7 @@ typedef int vm_fault_t; - #endif - #else - #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) -- #define NV_GET_USER_PAGES_REMOTE NV_GET_USER_PAGES -+ #define NV_GET_USER_PAGES_REMOTE get_user_pages - #else - #include <linux/mm.h> - #include <linux/sched.h> -diff --git a/kernel/conftest.sh b/kernel/conftest.sh -index e900963..ef82dee 100755 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -3043,6 +3043,7 @@ compile_test() { - - if [ -f conftest$$.o ]; then - echo "#undef NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o -@@ -3070,14 +3071,20 @@ compile_test() { - rm -f conftest$$.c - - if [ -f conftest$$.o ]; then -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#define NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o - return - fi - -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" -+ -+ # - # conftest #3: check if get_user_pages_remote() has locked argument -- -+ # Return if these arguments are present. Fall through to conftest #4 -+ # if these args are absent. -+ # - echo "$CONFTEST_PREAMBLE - #include <linux/mm.h> - long get_user_pages_remote(struct task_struct *tsk, -@@ -3095,13 +3102,40 @@ compile_test() { - rm -f conftest$$.c - - if [ -f conftest$$.o ]; then -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" -+ rm -f conftest$$.o -+ return -+ fi -+ -+ # -+ # conftest #4: check if get_user_pages_remote() does not take -+ # tsk argument. -+ # -+ echo "$CONFTEST_PREAMBLE -+ #include <linux/mm.h> -+ long get_user_pages_remote(struct mm_struct *mm, -+ unsigned long start, -+ unsigned long nr_pages, -+ unsigned int gup_flags, -+ struct page **pages, -+ struct vm_area_struct **vmas, -+ int *locked) { -+ return 0; -+ }" > conftest$$.c -+ -+ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 -+ rm -f conftest$$.c -+ -+ if [ -f conftest$$.o ]; then -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o - else -+ -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - fi -- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" -- - ;; - - usleep_range) -@@ -4131,6 +4165,115 @@ compile_test() { - compile_check_conftest "$CODE" "NV_PCI_DEV_HAS_SKIP_BUS_PM" "" "types" - ;; - -+ drm_gem_object_put_unlocked) -+ # -+ # Determine if the function drm_gem_object_put_unlocked() is present. -+ # -+ # In v5.9-rc1, commit 2f4dd13d4bb8 ("drm/gem: add -+ # drm_gem_object_put helper") removes drm_gem_object_put_unlocked() -+ # function and replace its definition by transient macro. Commit -+ # ab15d56e27be ("drm: remove transient -+ # drm_gem_object_put_unlocked()") finally removes -+ # drm_gem_object_put_unlocked() macro. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_GEM_H_PRESENT) -+ #include <drm/drm_gem.h> -+ #endif -+ void conftest_drm_gem_object_put_unlocked(void) { -+ drm_gem_object_put_unlocked(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT" "" "functions" -+ ;; -+ -+ drm_display_mode_has_vrefresh) -+ # -+ # Determine if the 'drm_display_mode' structure has a 'vrefresh' -+ # field. -+ # -+ # Removed by commit 0425662fdf05 ("drm: Nuke mode->vrefresh") in -+ # v5.9-rc1. -+ # -+ CODE=" -+ #include <drm/drm_modes.h> -+ -+ int conftest_drm_display_mode_has_vrefresh(void) { -+ return offsetof(struct drm_display_mode, vrefresh); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DISPLAY_MODE_HAS_VREFRESH" "types" -+ -+ ;; -+ -+ drm_driver_master_set_has_int_return_type) -+ # -+ # Determine if drm_driver::master_set() returns integer value -+ # -+ # Changed to void by commit 907f53200f98 ("drm: vmwgfx: remove -+ # drm_driver::master_set() return type") in v5.9-rc1. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_DRV_H_PRESENT) -+ #include <drm/drm_drv.h> -+ #endif -+ -+ int conftest_drm_driver_master_set_has_int_return_type(struct drm_driver *drv, -+ struct drm_device *dev, struct drm_file *file_priv, bool from_open) { -+ -+ return drv->master_set(dev, file_priv, from_open); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_SET_MASTER_HAS_INT_RETURN_TYPE" "" "types" -+ ;; -+ -+ drm_driver_has_gem_free_object) -+ # -+ # Determine if the 'drm_driver' structure has a 'gem_free_object' -+ # function pointer. -+ # -+ # drm_driver::gem_free_object is removed by commit 1a9458aeb8eb -+ # ("drm: remove drm_driver::gem_free_object") in v5.9-rc1. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_DRV_H_PRESENT) -+ #include <drm/drm_drv.h> -+ #endif -+ -+ int conftest_drm_driver_has_gem_free_object(void) { -+ return offsetof(struct drm_driver, gem_free_object); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT" "" "types" -+ ;; -+ -+ vga_tryget) -+ # -+ # Determine if vga_tryget() is present -+ # -+ # vga_tryget() was removed by commit f369bc3f9096 ("vgaarb: mark -+ # vga_tryget static") in v5.9-rc1 (2020-08-01). -+ # -+ CODE=" -+ #include <linux/vgaarb.h> -+ void conftest_vga_tryget(void) { -+ vga_tryget(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_VGA_TRYGET_PRESENT" "" "functions" -+ ;; - esac - } - -diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c -index 17e377d..85d9798 100644 ---- a/kernel/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel/nvidia-drm/nvidia-drm-drv.c -@@ -466,8 +466,8 @@ static void nv_drm_unload(struct drm_device *dev) - - #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) - --static int nv_drm_master_set(struct drm_device *dev, -- struct drm_file *file_priv, bool from_open) -+static int __nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) - { - struct nv_drm_device *nv_dev = to_nv_device(dev); - -@@ -478,6 +478,22 @@ static int nv_drm_master_set(struct drm_device *dev, - return 0; - } - -+#include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) -+static int nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) -+{ -+ return __nv_drm_master_set(dev, file_priv, from_open); -+} -+#else -+static void nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) -+{ -+ WARN_ON(__nv_drm_master_set(dev, file_priv, from_open) != 0); -+} -+#endif -+ -+ - #if defined(NV_DRM_MASTER_DROP_HAS_FROM_RELEASE_ARG) - static - void nv_drm_master_drop(struct drm_device *dev, -@@ -677,7 +693,9 @@ static struct drm_driver nv_drm_driver = { - #endif - DRIVER_GEM | DRIVER_RENDER, - -+#if defined(NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT) - .gem_free_object = nv_drm_gem_free, -+#endif - - .ioctls = nv_drm_ioctls, - .num_ioctls = ARRAY_SIZE(nv_drm_ioctls), -diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h -index 5691a7a..18c50ca 100644 ---- a/kernel/nvidia-drm/nvidia-drm-gem.h -+++ b/kernel/nvidia-drm/nvidia-drm-gem.h -@@ -87,7 +87,13 @@ static inline void - nv_drm_gem_object_unreference_unlocked(struct nv_drm_gem_object *nv_gem) - { - #if defined(NV_DRM_GEM_OBJECT_GET_PRESENT) -+ -+#if defined(NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT) - drm_gem_object_put_unlocked(&nv_gem->base); -+#else -+ drm_gem_object_put(&nv_gem->base); -+#endif -+ - #else - drm_gem_object_unreference_unlocked(&nv_gem->base); - #endif -diff --git a/kernel/nvidia-drm/nvidia-drm-utils.c b/kernel/nvidia-drm/nvidia-drm-utils.c -index 8cb2d5e..e30b2b6 100644 ---- a/kernel/nvidia-drm/nvidia-drm-utils.c -+++ b/kernel/nvidia-drm/nvidia-drm-utils.c -@@ -103,7 +103,9 @@ void - nvkms_display_mode_to_drm_mode(const struct NvKmsKapiDisplayMode *displayMode, - struct drm_display_mode *mode) - { -+#if defined(NV_DRM_DISPLAY_MODE_HAS_VREFRESH) - mode->vrefresh = (displayMode->timings.refreshRate + 500) / 1000; /* In Hz */ -+#endif - - mode->clock = (displayMode->timings.pixelClockHz + 500) / 1000; /* In Hz */ - -@@ -189,7 +191,11 @@ bool drm_format_to_nvkms_format(u32 format, - void drm_mode_to_nvkms_display_mode(const struct drm_display_mode *src, - struct NvKmsKapiDisplayMode *dst) - { -+#if defined(NV_DRM_DISPLAY_MODE_HAS_VREFRESH) - dst->timings.refreshRate = src->vrefresh * 1000; -+#else -+ dst->timings.refreshRate = drm_mode_vrefresh(src) * 1000; -+#endif - - dst->timings.pixelClockHz = src->clock * 1000; /* In Hz */ - -diff --git a/kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c -index 86dbb77..63d0b64 100644 ---- a/kernel/nvidia-uvm/uvm8_tools.c -+++ b/kernel/nvidia-uvm/uvm8_tools.c -@@ -190,7 +190,6 @@ static uvm_tools_event_tracker_t *tools_event_tracker(struct file *filp) - { - long event_tracker = atomic_long_read((atomic_long_t *)&filp->private_data); - -- smp_read_barrier_depends(); - return (uvm_tools_event_tracker_t *)event_tracker; - } - -diff --git a/kernel/nvidia-uvm/uvm8_va_range.h b/kernel/nvidia-uvm/uvm8_va_range.h -index 8cae357..6166cc8 100644 ---- a/kernel/nvidia-uvm/uvm8_va_range.h -+++ b/kernel/nvidia-uvm/uvm8_va_range.h -@@ -717,7 +717,6 @@ static uvm_va_block_t *uvm_va_range_block(uvm_va_range_t *va_range, size_t index - // make sure that any initialization of this block by the creating thread is - // visible to later accesses in this thread, which requires a data - // dependency barrier. -- smp_read_barrier_depends(); - return block; - } - -diff --git a/kernel/nvidia/nv.c b/kernel/nvidia/nv.c -index 15983f6..cfb2375 100644 ---- a/kernel/nvidia/nv.c -+++ b/kernel/nvidia/nv.c -@@ -3872,7 +3872,9 @@ nvidia_probe - - #if defined(CONFIG_VGA_ARB) && !defined(NVCPU_PPC64LE) - #if defined(VGA_DEFAULT_DEVICE) -+#if defined(NV_VGA_TRYGET_PRESENT) - vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); -+#endif - #endif - vga_set_legacy_decoding(dev, VGA_RSRC_NONE); - #endif diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.138.ebuild b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.141.ebuild index a7b858e4..e95877a1 100644 --- a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.138.ebuild +++ b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.141.ebuild @@ -23,10 +23,7 @@ RDEPEND="${DEPEND} !!sys-kernel/nvidia-drivers-dkms" PATCHES=( - "${FILESDIR}"/kernel-5.8.patch - "${FILESDIR}"/kernel-5.9.patch - "${FILESDIR}"/kernel-5.10.patch - "${FILESDIR}"/"${P}"-conf.patch + "${FILESDIR}"/dkms.patch ) S="${WORKDIR}/${AMD64_NV_PACKAGE}" diff --git a/x11-drivers/nvidia-drivers-legacy/Manifest b/x11-drivers/nvidia-drivers-legacy/Manifest index b3070520..df7b4407 100644 --- a/x11-drivers/nvidia-drivers-legacy/Manifest +++ b/x11-drivers/nvidia-drivers-legacy/Manifest @@ -1 +1 @@ -DIST NVIDIA-Linux-x86_64-390.138.run 83780873 BLAKE2B 5e6a9d77dd2b9de17d923198105a9227ffe2adbc1ed7c9dd5ef3cc810358f71ae47ce9615cbe04f36090f052082a2066772505fd763cbfdbce272f0fb7c25dc7 SHA512 2984fb8f5de598fd3031ebd928942ceb09fd26ae9e61b40b2d348e3174e172a932a1b2a5c2e5534f299b883ade323932be4fdcd26d6f7235a17f6f5a04fa792c +DIST NVIDIA-Linux-x86_64-390.141.run 85330901 BLAKE2B 7759d8cf6c9a75607b9a3ecd53cdd6f6a93f2f372d740a5a87d4d3f41a22f3bd953cc7dd6a0dc0e23a829ec86df8d65b9de499a76cfd4266a13b0aa3288aceb5 SHA512 5448d70e6e64a6403e61a004d83c69a442dd8ed0d61da3a31d3e3b7943c06c559a66b0f8d135982868ecbf209a965f60dae1a633367630b4d9287f725bbaa53c diff --git a/x11-drivers/nvidia-drivers-legacy/files/nvidia-drivers-legacy-390.138-conf.patch b/x11-drivers/nvidia-drivers-legacy/files/dkms.patch index 8bd7c1ce..c91579ff 100644 --- a/x11-drivers/nvidia-drivers-legacy/files/nvidia-drivers-legacy-390.138-conf.patch +++ b/x11-drivers/nvidia-drivers-legacy/files/dkms.patch @@ -5,7 +5,7 @@ diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf -PACKAGE_NAME="nvidia" -PACKAGE_VERSION="__VERSION_STRING" +PACKAGE_NAME="nvidia-drivers-legacy-dkms" -+PACKAGE_VERSION="390.138" ++PACKAGE_VERSION="390.141" AUTOINSTALL="yes" # By default, DKMS will add KERNELRELEASE to the make command line; however, diff --git a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch b/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch deleted file mode 100644 index 7591802a..00000000 --- a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.10.patch +++ /dev/null @@ -1,145 +0,0 @@ -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( diff --git a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.8.patch b/x11-drivers/nvidia-drivers-legacy/files/kernel-5.8.patch deleted file mode 100644 index 66d3ef8d..00000000 --- a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.8.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index ac5bb95..3d2f0b7 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -531,7 +531,11 @@ extern int nv_pat_mode; - - static inline void *nv_vmalloc(unsigned long size) - { -+#if defined(NV_VMALLOC_HAS_PGPROT_T_ARG) - void *ptr = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); -+#else -+ void *ptr = __vmalloc(size, GFP_KERNEL); -+#endif - if (ptr) - NV_MEMDBG_ADD(ptr, size); - return ptr; -diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h -index 1270bf3..d2d7657 100644 ---- a/kernel/common/inc/nv-mm.h -+++ b/kernel/common/inc/nv-mm.h -@@ -29,6 +29,10 @@ - typedef int vm_fault_t; - #endif - -+#if defined(NV_MM_HAS_MMAP_LOCK) -+#define mmap_sem mmap_lock -+#endif -+ - /* get_user_pages - * - * The 8-argument version of get_user_pages was deprecated by commit -diff --git a/kernel/conftest.sh b/kernel/conftest.sh -index 7da7505..7793dd6 100755 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -4067,6 +4067,44 @@ compile_test() { - compile_check_conftest "$CODE" "NV_KTIME_GET_REAL_TS64_PRESENT" "" "functions" - ;; - -+ vmalloc_has_pgprot_t_arg) -+ # -+ # Determine if __vmalloc has the 'pgprot' argument. -+ # -+ # The third argument to __vmalloc, page protection -+ # 'pgprot_t prot', was removed by commit 88dca4ca5a93 -+ # (mm: remove the pgprot argument to __vmalloc) -+ # in v5.8-rc1 (2020-06-01). -+ CODE=" -+ #include <linux/vmalloc.h> -+ -+ void conftest_vmalloc_has_pgprot_t_arg(void) { -+ pgprot_t prot; -+ (void)__vmalloc(0, 0, prot); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types" -+ -+ ;; -+ -+ mm_has_mmap_lock) -+ # -+ # Determine if the 'mm_struct' structure has a 'mmap_lock' field. -+ # -+ # Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem -+ # to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock' -+ # in v5.8-rc1 (2020-06-08). -+ CODE=" -+ #include <linux/mm_types.h> -+ -+ int conftest_mm_has_mmap_lock(void) { -+ return offsetof(struct mm_struct, mmap_lock); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types" -+ -+ ;; -+ - pci_dev_has_skip_bus_pm) - # - # Determine if skip_bus_pm flag is present in struct pci_dev. -diff --git a/kernel/nvidia/nvidia.Kbuild b/kernel/nvidia/nvidia.Kbuild -index 63e369f..656db7b 100644 ---- a/kernel/nvidia/nvidia.Kbuild -+++ b/kernel/nvidia/nvidia.Kbuild -@@ -192,7 +192,9 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += iterate_dir - NV_CONFTEST_TYPE_COMPILE_TESTS += kstrtoull - NV_CONFTEST_TYPE_COMPILE_TESTS += backlight_properties_type - NV_CONFTEST_TYPE_COMPILE_TESTS += proc_ops -+NV_CONFTEST_TYPE_COMPILE_TESTS += vmalloc_has_pgprot_t_arg - NV_CONFTEST_TYPE_COMPILE_TESTS += timeval -+NV_CONFTEST_TYPE_COMPILE_TESTS += mm_has_mmap_lock - NV_CONFTEST_TYPE_COMPILE_TESTS += kmem_cache_has_kobj_remove_work - NV_CONFTEST_TYPE_COMPILE_TESTS += sysfs_slab_unlink - NV_CONFTEST_TYPE_COMPILE_TESTS += pci_dev_has_skip_bus_pm --- -2.25.1 diff --git a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.9.patch b/x11-drivers/nvidia-drivers-legacy/files/kernel-5.9.patch deleted file mode 100644 index d01eba7a..00000000 --- a/x11-drivers/nvidia-drivers-legacy/files/kernel-5.9.patch +++ /dev/null @@ -1,364 +0,0 @@ -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index ab06dbc..dd335b5 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -159,7 +159,7 @@ static inline uid_t __kuid_val(kuid_t uid) - } - #endif - --#if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL) -+#if defined(NVCPU_X86_64) && !defined(NV_FILE_OPERATIONS_HAS_COMPAT_IOCTL) - #include <linux/syscalls.h> /* sys_ioctl() */ - #include <linux/ioctl32.h> /* register_ioctl32_conversion() */ - #endif -diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h -index d2d7657..a5325fe 100644 ---- a/kernel/common/inc/nv-mm.h -+++ b/kernel/common/inc/nv-mm.h -@@ -144,9 +144,13 @@ typedef int vm_fault_t; - flags |= FOLL_FORCE; - - #if defined(NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG) -- -+ #if defined (NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG) - return get_user_pages_remote(tsk, mm, start, nr_pages, flags, - pages, vmas, NULL); -+ #else -+ return get_user_pages_remote(mm, start, nr_pages, flags, -+ pages, vmas, NULL); -+ #endif - - #else - -@@ -159,7 +163,7 @@ typedef int vm_fault_t; - #endif - #else - #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) -- #define NV_GET_USER_PAGES_REMOTE NV_GET_USER_PAGES -+ #define NV_GET_USER_PAGES_REMOTE get_user_pages - #else - #include <linux/mm.h> - #include <linux/sched.h> -diff --git a/kernel/conftest.sh b/kernel/conftest.sh -index e900963..ef82dee 100755 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -3043,6 +3043,7 @@ compile_test() { - - if [ -f conftest$$.o ]; then - echo "#undef NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o -@@ -3070,14 +3071,20 @@ compile_test() { - rm -f conftest$$.c - - if [ -f conftest$$.o ]; then -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#define NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o - return - fi - -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" -+ -+ # - # conftest #3: check if get_user_pages_remote() has locked argument -- -+ # Return if these arguments are present. Fall through to conftest #4 -+ # if these args are absent. -+ # - echo "$CONFTEST_PREAMBLE - #include <linux/mm.h> - long get_user_pages_remote(struct task_struct *tsk, -@@ -3095,13 +3102,40 @@ compile_test() { - rm -f conftest$$.c - - if [ -f conftest$$.o ]; then -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" -+ rm -f conftest$$.o -+ return -+ fi -+ -+ # -+ # conftest #4: check if get_user_pages_remote() does not take -+ # tsk argument. -+ # -+ echo "$CONFTEST_PREAMBLE -+ #include <linux/mm.h> -+ long get_user_pages_remote(struct mm_struct *mm, -+ unsigned long start, -+ unsigned long nr_pages, -+ unsigned int gup_flags, -+ struct page **pages, -+ struct vm_area_struct **vmas, -+ int *locked) { -+ return 0; -+ }" > conftest$$.c -+ -+ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 -+ rm -f conftest$$.c -+ -+ if [ -f conftest$$.o ]; then -+ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - rm -f conftest$$.o - else -+ -+ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" - echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" - fi -- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" -- - ;; - - usleep_range) -@@ -4131,6 +4165,115 @@ compile_test() { - compile_check_conftest "$CODE" "NV_PCI_DEV_HAS_SKIP_BUS_PM" "" "types" - ;; - -+ drm_gem_object_put_unlocked) -+ # -+ # Determine if the function drm_gem_object_put_unlocked() is present. -+ # -+ # In v5.9-rc1, commit 2f4dd13d4bb8 ("drm/gem: add -+ # drm_gem_object_put helper") removes drm_gem_object_put_unlocked() -+ # function and replace its definition by transient macro. Commit -+ # ab15d56e27be ("drm: remove transient -+ # drm_gem_object_put_unlocked()") finally removes -+ # drm_gem_object_put_unlocked() macro. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_GEM_H_PRESENT) -+ #include <drm/drm_gem.h> -+ #endif -+ void conftest_drm_gem_object_put_unlocked(void) { -+ drm_gem_object_put_unlocked(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT" "" "functions" -+ ;; -+ -+ drm_display_mode_has_vrefresh) -+ # -+ # Determine if the 'drm_display_mode' structure has a 'vrefresh' -+ # field. -+ # -+ # Removed by commit 0425662fdf05 ("drm: Nuke mode->vrefresh") in -+ # v5.9-rc1. -+ # -+ CODE=" -+ #include <drm/drm_modes.h> -+ -+ int conftest_drm_display_mode_has_vrefresh(void) { -+ return offsetof(struct drm_display_mode, vrefresh); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DISPLAY_MODE_HAS_VREFRESH" "types" -+ -+ ;; -+ -+ drm_driver_master_set_has_int_return_type) -+ # -+ # Determine if drm_driver::master_set() returns integer value -+ # -+ # Changed to void by commit 907f53200f98 ("drm: vmwgfx: remove -+ # drm_driver::master_set() return type") in v5.9-rc1. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_DRV_H_PRESENT) -+ #include <drm/drm_drv.h> -+ #endif -+ -+ int conftest_drm_driver_master_set_has_int_return_type(struct drm_driver *drv, -+ struct drm_device *dev, struct drm_file *file_priv, bool from_open) { -+ -+ return drv->master_set(dev, file_priv, from_open); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_SET_MASTER_HAS_INT_RETURN_TYPE" "" "types" -+ ;; -+ -+ drm_driver_has_gem_free_object) -+ # -+ # Determine if the 'drm_driver' structure has a 'gem_free_object' -+ # function pointer. -+ # -+ # drm_driver::gem_free_object is removed by commit 1a9458aeb8eb -+ # ("drm: remove drm_driver::gem_free_object") in v5.9-rc1. -+ # -+ CODE=" -+ #if defined(NV_DRM_DRMP_H_PRESENT) -+ #include <drm/drmP.h> -+ #endif -+ -+ #if defined(NV_DRM_DRM_DRV_H_PRESENT) -+ #include <drm/drm_drv.h> -+ #endif -+ -+ int conftest_drm_driver_has_gem_free_object(void) { -+ return offsetof(struct drm_driver, gem_free_object); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT" "" "types" -+ ;; -+ -+ vga_tryget) -+ # -+ # Determine if vga_tryget() is present -+ # -+ # vga_tryget() was removed by commit f369bc3f9096 ("vgaarb: mark -+ # vga_tryget static") in v5.9-rc1 (2020-08-01). -+ # -+ CODE=" -+ #include <linux/vgaarb.h> -+ void conftest_vga_tryget(void) { -+ vga_tryget(); -+ }" -+ -+ compile_check_conftest "$CODE" "NV_VGA_TRYGET_PRESENT" "" "functions" -+ ;; - esac - } - -diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c -index 17e377d..85d9798 100644 ---- a/kernel/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel/nvidia-drm/nvidia-drm-drv.c -@@ -466,8 +466,8 @@ static void nv_drm_unload(struct drm_device *dev) - - #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) - --static int nv_drm_master_set(struct drm_device *dev, -- struct drm_file *file_priv, bool from_open) -+static int __nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) - { - struct nv_drm_device *nv_dev = to_nv_device(dev); - -@@ -478,6 +478,22 @@ static int nv_drm_master_set(struct drm_device *dev, - return 0; - } - -+#include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) -+static int nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) -+{ -+ return __nv_drm_master_set(dev, file_priv, from_open); -+} -+#else -+static void nv_drm_master_set(struct drm_device *dev, -+ struct drm_file *file_priv, bool from_open) -+{ -+ WARN_ON(__nv_drm_master_set(dev, file_priv, from_open) != 0); -+} -+#endif -+ -+ - #if defined(NV_DRM_MASTER_DROP_HAS_FROM_RELEASE_ARG) - static - void nv_drm_master_drop(struct drm_device *dev, -@@ -677,7 +693,9 @@ static struct drm_driver nv_drm_driver = { - #endif - DRIVER_GEM | DRIVER_RENDER, - -+#if defined(NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT) - .gem_free_object = nv_drm_gem_free, -+#endif - - .ioctls = nv_drm_ioctls, - .num_ioctls = ARRAY_SIZE(nv_drm_ioctls), -diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h -index 5691a7a..18c50ca 100644 ---- a/kernel/nvidia-drm/nvidia-drm-gem.h -+++ b/kernel/nvidia-drm/nvidia-drm-gem.h -@@ -87,7 +87,13 @@ static inline void - nv_drm_gem_object_unreference_unlocked(struct nv_drm_gem_object *nv_gem) - { - #if defined(NV_DRM_GEM_OBJECT_GET_PRESENT) -+ -+#if defined(NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT) - drm_gem_object_put_unlocked(&nv_gem->base); -+#else -+ drm_gem_object_put(&nv_gem->base); -+#endif -+ - #else - drm_gem_object_unreference_unlocked(&nv_gem->base); - #endif -diff --git a/kernel/nvidia-drm/nvidia-drm-utils.c b/kernel/nvidia-drm/nvidia-drm-utils.c -index 8cb2d5e..e30b2b6 100644 ---- a/kernel/nvidia-drm/nvidia-drm-utils.c -+++ b/kernel/nvidia-drm/nvidia-drm-utils.c -@@ -103,7 +103,9 @@ void - nvkms_display_mode_to_drm_mode(const struct NvKmsKapiDisplayMode *displayMode, - struct drm_display_mode *mode) - { -+#if defined(NV_DRM_DISPLAY_MODE_HAS_VREFRESH) - mode->vrefresh = (displayMode->timings.refreshRate + 500) / 1000; /* In Hz */ -+#endif - - mode->clock = (displayMode->timings.pixelClockHz + 500) / 1000; /* In Hz */ - -@@ -189,7 +191,11 @@ bool drm_format_to_nvkms_format(u32 format, - void drm_mode_to_nvkms_display_mode(const struct drm_display_mode *src, - struct NvKmsKapiDisplayMode *dst) - { -+#if defined(NV_DRM_DISPLAY_MODE_HAS_VREFRESH) - dst->timings.refreshRate = src->vrefresh * 1000; -+#else -+ dst->timings.refreshRate = drm_mode_vrefresh(src) * 1000; -+#endif - - dst->timings.pixelClockHz = src->clock * 1000; /* In Hz */ - -diff --git a/kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c -index 86dbb77..63d0b64 100644 ---- a/kernel/nvidia-uvm/uvm8_tools.c -+++ b/kernel/nvidia-uvm/uvm8_tools.c -@@ -190,7 +190,6 @@ static uvm_tools_event_tracker_t *tools_event_tracker(struct file *filp) - { - long event_tracker = atomic_long_read((atomic_long_t *)&filp->private_data); - -- smp_read_barrier_depends(); - return (uvm_tools_event_tracker_t *)event_tracker; - } - -diff --git a/kernel/nvidia-uvm/uvm8_va_range.h b/kernel/nvidia-uvm/uvm8_va_range.h -index 8cae357..6166cc8 100644 ---- a/kernel/nvidia-uvm/uvm8_va_range.h -+++ b/kernel/nvidia-uvm/uvm8_va_range.h -@@ -717,7 +717,6 @@ static uvm_va_block_t *uvm_va_range_block(uvm_va_range_t *va_range, size_t index - // make sure that any initialization of this block by the creating thread is - // visible to later accesses in this thread, which requires a data - // dependency barrier. -- smp_read_barrier_depends(); - return block; - } - -diff --git a/kernel/nvidia/nv.c b/kernel/nvidia/nv.c -index 15983f6..cfb2375 100644 ---- a/kernel/nvidia/nv.c -+++ b/kernel/nvidia/nv.c -@@ -3872,7 +3872,9 @@ nvidia_probe - - #if defined(CONFIG_VGA_ARB) && !defined(NVCPU_PPC64LE) - #if defined(VGA_DEFAULT_DEVICE) -+#if defined(NV_VGA_TRYGET_PRESENT) - vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK); -+#endif - #endif - vga_set_legacy_decoding(dev, VGA_RSRC_NONE); - #endif diff --git a/x11-drivers/nvidia-drivers-legacy/files/nvidia-drm-outputclass.conf b/x11-drivers/nvidia-drivers-legacy/files/nvidia-drm-outputclass.conf index 9c36f59b..a94d18ca 100644 --- a/x11-drivers/nvidia-drivers-legacy/files/nvidia-drm-outputclass.conf +++ b/x11-drivers/nvidia-drivers-legacy/files/nvidia-drm-outputclass.conf @@ -3,6 +3,6 @@ Section "OutputClass" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" - ModulePath "/usr/lib/nvidia/xorg" - ModulePath "/usr/lib/xorg/modules" + ModulePath "/usr/lib64/nvidia/xorg" + ModulePath "/usr/lib64/xorg/modules" EndSection diff --git a/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.138-r1.ebuild b/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.141.ebuild index c62d8c8b..22df8001 100644 --- a/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.138-r1.ebuild +++ b/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.141.ebuild @@ -48,10 +48,7 @@ RDEPEND=" QA_PREBUILT="opt/* usr/lib*" PATCHES=( - "${FILESDIR}"/kernel-5.8.patch - "${FILESDIR}"/kernel-5.9.patch - "${FILESDIR}"/kernel-5.10.patch - "${FILESDIR}"/"${P}"-conf.patch + "${FILESDIR}"/dkms.patch ) S=${WORKDIR}/ @@ -176,10 +173,10 @@ src_install() { doexe ${NV_OBJ}/nvidia-smi # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe ${NV_OBJ}/nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym /{opt,usr}/bin/nvidia-modprobe + #doexe ${NV_OBJ}/nvidia-modprobe + #fowners root:video /opt/bin/nvidia-modprobe + #fperms 4710 /opt/bin/nvidia-modprobe + #dosym /{opt,usr}/bin/nvidia-modprobe # init newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi diff --git a/x11-misc/nvidia-settings-legacy/Manifest b/x11-misc/nvidia-settings-legacy/Manifest index 782046dc..00523de1 100644 --- a/x11-misc/nvidia-settings-legacy/Manifest +++ b/x11-misc/nvidia-settings-legacy/Manifest @@ -1 +1 @@ -DIST nvidia-settings-legacy-390.138.tar.gz 1297269 BLAKE2B 6b48f095cd1ea874b65e8e2df0dc6469e1b19336498df76f537ff2b6fbe441363909131e2abbd8bb7c061ad8b52562c0afc28592093cc2b2f578aae383e25fbf SHA512 c27c8dbb858f06982e251bd3bf49650d05ca8811d61eb342b43bf00bc595b8d789b38b7ebd76b9ab5786ec5bee84b1cb44ee3f3fb24c40dee1b1b9d535993eb6 +DIST nvidia-settings-legacy-390.141.tar.gz 1297261 BLAKE2B 452870df1ba598692f5da47444eb2daf4db40c79cac98c10b1c994c0ff39fc7936909b9d7788cbfe784999e68a2bdbbc12e85d63c3bc02ac872e6b3c46834697 SHA512 dbf7c389bbdc94291a1b974adfa33414148b1ab752aa7d948a27e91ee1bceb3b8435aceb6b7ef3cb806333572db11b5524667045ef7686b119d7955d2699cb04 diff --git a/x11-misc/nvidia-settings-legacy/nvidia-settings-legacy-390.138.ebuild b/x11-misc/nvidia-settings-legacy/nvidia-settings-legacy-390.141.ebuild index 69d2fd71..d9320b84 100644 --- a/x11-misc/nvidia-settings-legacy/nvidia-settings-legacy-390.138.ebuild +++ b/x11-misc/nvidia-settings-legacy/nvidia-settings-legacy-390.141.ebuild @@ -12,12 +12,13 @@ SRC_URI="https://github.com/NVIDIA/nvidia-settings/archive/${PV}.tar.gz -> ${P}. LICENSE="GPL-2" SLOT="0" KEYWORDS="-* amd64" -IUSE="+gtk3" +IUSE="" QA_PREBUILT= COMMON_DEPEND=" - gtk3? ( x11-libs/gtk+:3 ) + x11-libs/gtk+:2 + x11-libs/gtk+:3 x11-libs/libX11 x11-libs/libXext x11-libs/libXxf86vm @@ -61,7 +62,7 @@ src_compile() { emake -C src/ \ CC="$(tc-getCC)" \ DO_STRIP= \ - GTK3_AVAILABLE=$(usex gtk3 1 0) \ + GTK3_AVAILABLE=1 \ LD="$(tc-getCC)" \ LIBDIR="$(get_libdir)" \ NVLD="$(tc-getLD)" \ @@ -73,7 +74,7 @@ src_compile() { src_install() { emake -C src/ \ DESTDIR="${D}" \ - GTK3_AVAILABLE=$(usex gtk3 1 0) \ + GTK3_AVAILABLE=1 \ LIBDIR="${D}/usr/$(get_libdir)" \ NV_USE_BUNDLED_LIBJANSSON=0 \ NV_VERBOSE=1 \ @@ -91,4 +92,6 @@ src_install() { domenu ${FILESDIR}/${PN}.desktop dodoc doc/*.txt + + rm -rvf ${D}usr/$(get_libdir)/libnvidia-gtk2.so.${PV} } diff --git a/x11-misc/nvidia-settings/Manifest b/x11-misc/nvidia-settings/Manifest index 8a332005..99b51e8f 100644 --- a/x11-misc/nvidia-settings/Manifest +++ b/x11-misc/nvidia-settings/Manifest @@ -1,2 +1 @@ -DIST nvidia-settings-440.82.tar.gz 1314506 BLAKE2B 5f7393f2caaa0ca74e81d95e9d4b6b4346c30abd096c327f0aec41e83a6bb574a79305ad6081a42437ef3085d373f0b9006e6da3ff93ebf833ef314b03176005 SHA512 2974a82b63a55c9129e171663ef57e2b2fcf47750e0b725eefef5e176a25ad08f47dd5cfd1875bd0002d89b3b1fb24bd9bbc034c5feeefc6256052bf7d04e997 DIST nvidia-settings-455.45.01.tar.gz 1229448 BLAKE2B 6e8f98a2a9358a2975b8331f2c1351afdbfe9f33407d48020e3e010fc633e4f3c6a76f2fbfa91e69d77ea5823b941b481d4854e226ba41d7cc84a3a591d652b8 SHA512 c29575cc7133c2c6d49b2435fc1d57285b744341adb96c7a7a060362ac2077e99b31fde28702ac0d1c6ad18178967c21340f968d13e74642b3ccb1fb47757ed5 diff --git a/x11-themes/redcore-artwork-core/Manifest b/x11-themes/redcore-artwork-core/Manifest deleted file mode 100644 index c9e48c98..00000000 --- a/x11-themes/redcore-artwork-core/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST redcore-artwork-core.tar.xz 18833008 BLAKE2B 83bca493d3f360cfdffe1f0fd559bd91589f86dd2be707a974ae7edfde49837c78e7968d5d1f08aa40786df4f9944ae4dd85f9dd5a42f50a4979b4300e3725f7 SHA512 f7c2aa98606d22c2a7153bb9f6769834414a75f9e134ad597658532d3e0ec9e53c6659cb2bf46fee577b3e0a9cc79f616f0102ce83f3fc9108078a5bd944e0e6 |