From cb97276bfbb30a0c28c02a8a6eac99e648b50f0d Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sun, 2 Feb 2014 14:23:27 +0100 Subject: Update nvidia-drd --- nvidia-drd/PKGBUILD | 15 +++++++----- nvidia-drd/nvidia.install | 6 ++--- nvidia-drd/nvidia_3.13_kernel.patch | 46 +++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 nvidia-drd/nvidia_3.13_kernel.patch (limited to 'nvidia-drd') diff --git a/nvidia-drd/PKGBUILD b/nvidia-drd/PKGBUILD index 6dde0f3..b7830f9 100644 --- a/nvidia-drd/PKGBUILD +++ b/nvidia-drd/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 199771 2013-11-15 21:40:40Z svenstaro $ +# $Id: PKGBUILD 204744 2014-01-26 11:36:20Z thomas $ # Maintainer : Thomas Baechler pkgname=nvidia-drd pkgver=331.38 -_extramodules=extramodules-3.12-drd -pkgrel=1 +_extramodules=extramodules-3.13-drd +pkgrel=3 pkgdesc="NVIDIA drivers for linux" arch=('i686' 'x86_64') url="http://www.nvidia.com/" -depends=('linux-drd>=3.12' 'linux-drd<3.13' "nvidia-libgl" "nvidia-utils=${pkgver}") -makedepends=('linux-drd-headers>=3.12' 'linux-drd-headers<3.13') +depends=('linux-drd>=3.13' 'linux-drd<3.14' "nvidia-libgl" "nvidia-utils=${pkgver}") +makedepends=('linux-drd-headers>=3.13' 'linux-drd-headers<3.14') conflicts=('nvidia-96xx' 'nvidia-173xx') license=('custom') install=nvidia.install options=(!strip) +source=('nvidia_3.13_kernel.patch') _arch='x86_64' _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32" @@ -23,6 +24,7 @@ prepare() { cd "${srcdir}" sh "${_pkg}.run" --extract-only cd "${_pkg}" + patch -p1 -i "${srcdir}"/nvidia_3.13_kernel.patch } build() { @@ -39,4 +41,5 @@ package() { sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/nvidia.install" gzip "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko" } -md5sums=('f2059ae373665cb6c8fb826e1173b04d') +md5sums=('90fc2d263157fa672fc8d1eb0309cb3a' + 'f2059ae373665cb6c8fb826e1173b04d') diff --git a/nvidia-drd/nvidia.install b/nvidia-drd/nvidia.install index fc4e891..e8a4c75 100644 --- a/nvidia-drd/nvidia.install +++ b/nvidia-drd/nvidia.install @@ -1,11 +1,11 @@ post_install() { - EXTRAMODULES='extramodules-3.12-drd' + EXTRAMODULES='extramodules-3.13-drd' depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) echo 'In order to use nvidia module, reboot the system.' } post_upgrade() { - EXTRAMODULES='extramodules-3.12-drd' + EXTRAMODULES='extramodules-3.13-drd' depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) if [ "$(vercmp $2 310.19-2)" -lt 0 ]; then echo 'If your card is from the 7xxx series or earlier, install nvidia-304xx' @@ -13,6 +13,6 @@ post_upgrade() { } post_remove() { - EXTRAMODULES='extramodules-3.12-drd' + EXTRAMODULES='extramodules-3.13-drd' depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) } diff --git a/nvidia-drd/nvidia_3.13_kernel.patch b/nvidia-drd/nvidia_3.13_kernel.patch new file mode 100644 index 0000000..c9dc7dd --- /dev/null +++ b/nvidia-drd/nvidia_3.13_kernel.patch @@ -0,0 +1,46 @@ +--- a/kernel/nv-acpi.c ++++ b/kernel/nv-acpi.c +@@ -15,6 +15,10 @@ + #include "nv-linux.h" + #include "nv-reg.h" + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) && defined(ACPI_HANDLE) ++#define DEVICE_ACPI_HANDLE(a) ACPI_HANDLE(a) ++#endif ++ + #if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) + static RM_STATUS nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *); + static RM_STATUS nv_acpi_extract_buffer (const union acpi_object *, void *, NvU32, NvU32 *); +@@ -303,7 +307,10 @@ static int nv_acpi_remove(struct acpi_de + + if (pNvAcpiObject->notify_handler_installed) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) ++ /* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */ + NV_ACPI_OS_WAIT_EVENTS_COMPLETE(); ++#endif + + // remove event notifier + status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event); +--- a/kernel/uvm/nvidia_uvm_linux.h ++++ b/kernel/uvm/nvidia_uvm_linux.h +@@ -405,11 +405,17 @@ typedef void irqreturn_t; + // not require the RCU's read lock on current->cred. + // + // ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) ++#define NV_KUID_TO_UID(value) (__kuid_val(value)) ++#else ++#define NV_KUID_TO_UID(value) (value) ++#endif ++ + #if defined(NV_TASK_STRUCT_HAS_CRED) + #define NV_CURRENT_EUID() \ +- (((typeof(*current->cred) __force __kernel *)current->cred)->euid) ++ NV_KUID_TO_UID(((typeof(*current->cred) __force __kernel *)current->cred)->euid) + #else +-#define NV_CURRENT_EUID() (current->euid) ++#define NV_CURRENT_EUID() NV_KUID_TO_UID(current->euid) + #endif + + #define NV_ATOMIC_SET(data,val) atomic_set(&(data), (val)) -- cgit v1.2.3-54-g00ecf