From 11739dac7f5f33b7784f21fa26cc20ecb2e5f69b Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Tue, 6 Apr 2021 12:15:24 +0100 Subject: [PATCH] linux-5.12.patch from Larry Finger via OpenSUSE --- .SRCINFO | 14 ++++++++------ PKGBUILD | 20 +++++++++++++------- kernel-5.12.patch | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 kernel-5.12.patch diff --git a/.SRCINFO b/.SRCINFO index 8d57d404a78a4..5c86545ec463a 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = nvidia-390xx-utils pkgver = 390.141 - pkgrel = 2 + pkgrel = 3 url = https://www.nvidia.com/ arch = x86_64 license = custom @@ -10,11 +10,13 @@ pkgbase = nvidia-390xx-utils source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.141/NVIDIA-Linux-x86_64-390.141-no-compat32.run source = kernel-4.16.patch source = kernel-5.11.patch - sha512sums = de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770 - sha512sums = 4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499 - sha512sums = c218517ab880470b9048ad40b54014ee6dfced442fc7178e629c1fd0917da58186dece3587b424d99e0b8acfd6f0bdb91ab00035c6b0488fbac198d496b09371 - sha512sums = ef2fea0759d503ad3219a5cd27535b50b833b714f5e20bc754dd9343c6af3608f78c967cce90a5cacfc7f83c8cfa84bb5ad1c16bdbbf4de46cec63920ec0f79d - sha512sums = 94e1e34fa275e28733cf29bff03efffb52ce594d93f5f61785b156cd8de9cd6b40a6e3bb357f111ff8576a5f2f5b0fb579264a9ce139fbcc66fa9c3c2d8b8dc3 + source = kernel-5.12.patch + b2sums = 8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9 + b2sums = c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be + b2sums = fae33e5fcd8f0429f163ad40e58a07c42ff47260bd1b0f56989d6147d63294c475f33ddc02f06a16eaf8c8ea9f74a98dbcb32b5322c68661331ebf7dfe976770 + b2sums = 16480a3df51248b5adf3a3349f602f96cd830b5364c0a1c142a53099ed1e881f727026fe36b837b76f20aef7e7bf606f52c1af28f1eec7cc8bf39a571243a4ba + b2sums = 51f0c73e5e2b3fa96267b60c53c4acf966a6cf4de9acabd10cfc26bbfadba95cc7766546afe37e0e0ce67b5b9a0fb3cbea35ed8d47505d456473d1a9f7248dad + b2sums = a5898e232067a697261840b57e1c3b02b6476f3cad1ab1873fa54235d872bfabab39b78fa9f56495dd3c7bcdee10a63b3adc1d3932f853d5ce5c5d92109f9c4d pkgname = nvidia-390xx-utils pkgdesc = NVIDIA drivers utilities diff --git a/PKGBUILD b/PKGBUILD index 3f904365d2a10..ae766cd06a50c 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,7 +7,7 @@ pkgbase=nvidia-390xx-utils pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx' 'nvidia-390xx-dkms') pkgver=390.141 -pkgrel=2 +pkgrel=3 arch=('x86_64') url="https://www.nvidia.com/" license=('custom') @@ -17,12 +17,14 @@ source=('nvidia-drm-outputclass.conf' 'nvidia-390xx-utils.sysusers' "https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run" kernel-4.16.patch - kernel-5.11.patch) -sha512sums=('de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770' - '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499' - 'c218517ab880470b9048ad40b54014ee6dfced442fc7178e629c1fd0917da58186dece3587b424d99e0b8acfd6f0bdb91ab00035c6b0488fbac198d496b09371' - 'ef2fea0759d503ad3219a5cd27535b50b833b714f5e20bc754dd9343c6af3608f78c967cce90a5cacfc7f83c8cfa84bb5ad1c16bdbbf4de46cec63920ec0f79d' - '94e1e34fa275e28733cf29bff03efffb52ce594d93f5f61785b156cd8de9cd6b40a6e3bb357f111ff8576a5f2f5b0fb579264a9ce139fbcc66fa9c3c2d8b8dc3') + kernel-5.11.patch + kernel-5.12.patch) +b2sums=('8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9' + 'c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be' + 'fae33e5fcd8f0429f163ad40e58a07c42ff47260bd1b0f56989d6147d63294c475f33ddc02f06a16eaf8c8ea9f74a98dbcb32b5322c68661331ebf7dfe976770' + '16480a3df51248b5adf3a3349f602f96cd830b5364c0a1c142a53099ed1e881f727026fe36b837b76f20aef7e7bf606f52c1af28f1eec7cc8bf39a571243a4ba' + '51f0c73e5e2b3fa96267b60c53c4acf966a6cf4de9acabd10cfc26bbfadba95cc7766546afe37e0e0ce67b5b9a0fb3cbea35ed8d47505d456473d1a9f7248dad' + 'a5898e232067a697261840b57e1c3b02b6476f3cad1ab1873fa54235d872bfabab39b78fa9f56495dd3c7bcdee10a63b3adc1d3932f853d5ce5c5d92109f9c4d') create_links() { # create soname links @@ -49,6 +51,10 @@ prepare() { # https://gitlab.com/herecura/packages/nvidia-390xx-dkms/-/blob/herecura/linux-5.11.patch patch -Np1 -i ../kernel-5.11.patch + # From Larry Finger + # https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.12.patch?expand=1 + patch -Np1 -i ../kernel-5.12.patch + cd kernel sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf sed -i 's/__JOBS/`nproc`/' dkms.conf diff --git a/kernel-5.12.patch b/kernel-5.12.patch new file mode 100644 index 0000000000000..9da2c8ac2447e --- /dev/null +++ b/kernel-5.12.patch @@ -0,0 +1,37 @@ +Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.12.patch +Credit to Larry Finger + +Index: NVIDIA-Linux-x86_64-390.141-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c +=================================================================== +--- NVIDIA-Linux-x86_64-390.141-no-compat32.orig/kernel/nvidia-drm/nvidia-drm-drv.c ++++ NVIDIA-Linux-x86_64-390.141-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c +@@ -741,6 +741,17 @@ static struct drm_driver nv_drm_driver = + #endif + }; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0) ++/* Starting with kernel 5.12, drm_gem_dumb_destroy() is no longer exported. ++ * For that reason, we need to supply a replacement version. ++ */ ++int replace_dumb_destroy(struct drm_file *file, ++ struct drm_device *dev, ++ u32 handle) ++{ ++ return drm_gem_handle_delete(file, handle); ++} ++#endif + + /* + * Update the global nv_drm_driver for the intended features. +@@ -764,7 +775,11 @@ static void nv_drm_update_drm_driver_fea + + nv_drm_driver.dumb_create = nv_drm_dumb_create; + nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 12, 0) + nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy; ++#else ++ nv_drm_driver.dumb_destroy = replace_dumb_destroy; ++#endif + #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ + } +