[packages/xorg-driver-video-nvidia] - added fixes for linux 3.13 - rel 2
baggins
baggins at pld-linux.org
Sun Feb 9 21:58:28 CET 2014
commit ed30d88b65cb54d2c2d9fb80ed3371b978a7de96
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Feb 9 21:58:09 2014 +0100
- added fixes for linux 3.13
- rel 2
linux-3.13.patch | 122 ++++++++++++++++++++++++++++++++++++++++++
xorg-driver-video-nvidia.spec | 4 +-
2 files changed, 125 insertions(+), 1 deletion(-)
---
diff --git a/xorg-driver-video-nvidia.spec b/xorg-driver-video-nvidia.spec
index 52b9b26..8de24bc 100644
--- a/xorg-driver-video-nvidia.spec
+++ b/xorg-driver-video-nvidia.spec
@@ -45,7 +45,7 @@ exit 1
%define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
%define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
-%define rel 1
+%define rel 2
%define pname xorg-driver-video-nvidia
Summary: Linux Drivers for nVidia GeForce/Quadro Chips
Summary(hu.UTF-8): Linux meghajtók nVidia GeForce/Quadro chipekhez
@@ -67,6 +67,7 @@ Source4: 10-nvidia.conf
Source5: 10-nvidia-modules.conf
Patch0: X11-driver-nvidia-GL.patch
Patch1: X11-driver-nvidia-desktop.patch
+Patch2: linux-3.13.patch
URL: http://www.nvidia.com/object/unix.html
BuildRequires: rpmbuild(macros) >= 1.679
%{?with_dist_kernel:%{expand:%kbrs}}
@@ -268,6 +269,7 @@ rm -rf NVIDIA-Linux-x86*-%{version}*
%endif
%patch0 -p1
%patch1 -p1
+%patch2 -p1
echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild
%build
diff --git a/linux-3.13.patch b/linux-3.13.patch
new file mode 100644
index 0000000..477ac13
--- /dev/null
+++ b/linux-3.13.patch
@@ -0,0 +1,122 @@
+diff -rupN NVIDIA-Linux-x86_64-331.38.orig/kernel/nv-acpi.c NVIDIA-Linux-x86_64-331.38/kernel/nv-acpi.c
+--- NVIDIA-Linux-x86_64-331.38.orig/kernel/nv-acpi.c 2014-01-25 09:39:47.126966926 +0100
++++ NVIDIA-Linux-x86_64-331.38/kernel/nv-acpi.c 2014-01-26 09:59:45.853427603 +0100
+@@ -303,7 +303,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);
+@@ -1076,10 +1079,17 @@ RM_STATUS NV_API_CALL nv_acpi_dsm_method
+ NvU8 argument3[4]; /* For all DSM sub functions, input size is 4 */
+ NvU32 data_size;
+ acpi_handle dev_handle = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ #ifdef DEVICE_ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
+ #endif
++#else
++#ifdef ACPI_HANDLE
++ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
++ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
++#endif
++#endif
+
+ if (!dev_handle)
+ return RM_ERR_NOT_SUPPORTED;
+@@ -1179,12 +1189,21 @@ RM_STATUS NV_API_CALL nv_acpi_ddc_method
+ NvU32 i;
+ acpi_handle dev_handle = NULL;
+ acpi_handle lcd_dev_handle = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ #ifdef DEVICE_ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
+ #else
+ return RM_ERR_NOT_SUPPORTED;
+ #endif
++#else
++#ifdef ACPI_HANDLE
++ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
++ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
++#else
++ return RM_ERR_NOT_SUPPORTED;
++#endif
++#endif
+ if (!dev_handle)
+ return RM_ERR_INVALID_ARGUMENT;
+
+@@ -1294,12 +1313,21 @@ RM_STATUS NV_API_CALL nv_acpi_rom_method
+ struct acpi_object_list input = { 2, rom_arg };
+ acpi_handle dev_handle = NULL;
+ uint32_t offset, length;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ #ifdef DEVICE_ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+- dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
++ dev_handle = ACPI_DEVICE_HANDLE(&nvl->dev->dev);
+ #else
+ return RM_ERR_NOT_SUPPORTED;
+ #endif
++#else
++#ifdef ACPI_HANDLE
++ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
++ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
++#else
++ return RM_ERR_NOT_SUPPORTED;
++#endif
++#endif
+
+ if (!dev_handle)
+ return RM_ERR_INVALID_ARGUMENT;
+@@ -1364,12 +1392,21 @@ RM_STATUS NV_API_CALL nv_acpi_dod_method
+ union acpi_object *dod;
+ acpi_handle dev_handle = NULL;
+ NvU32 i, count = (*pSize / sizeof(NvU32));
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ #ifdef DEVICE_ACPI_HANDLE
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
+ #else
+ return RM_ERR_NOT_SUPPORTED;
+ #endif
++#else
++#ifdef ACPI_HANDLE
++ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
++ dev_handle = ACPI_HANDLE(&nvl->dev->dev);
++#else
++ return RM_ERR_NOT_SUPPORTED;
++#endif
++#endif
+
+ if (!dev_handle)
+ return RM_ERR_INVALID_ARGUMENT;
+diff -rupN NVIDIA-Linux-x86_64-331.38.orig/kernel/uvm/nvidia_uvm_linux.h NVIDIA-Linux-x86_64-331.38/kernel/uvm/nvidia_uvm_linux.h
+--- NVIDIA-Linux-x86_64-331.38.orig/kernel/uvm/nvidia_uvm_linux.h 2014-01-25 09:39:47.172966925 +0100
++++ NVIDIA-Linux-x86_64-331.38/kernel/uvm/nvidia_uvm_linux.h 2014-01-25 09:46:40.572999245 +0100
+@@ -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))
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xorg-driver-video-nvidia.git/commitdiff/ed30d88b65cb54d2c2d9fb80ed3371b978a7de96
More information about the pld-cvs-commit
mailing list