From 551176c751ee9dad7be9a0afb8766a59645e4366 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Tue, 18 Feb 2014 11:09:39 +0100 Subject: [PATCH] - updated to 304.119 - added fixes for linux 3.13 --- linux-3.13.patch | 76 ++++++++++++++++++++++ xorg-driver-video-nvidia-legacy-304xx.spec | 10 +-- 2 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 linux-3.13.patch diff --git a/linux-3.13.patch b/linux-3.13.patch new file mode 100644 index 0000000..3aab19f --- /dev/null +++ b/linux-3.13.patch @@ -0,0 +1,76 @@ +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 + union acpi_object dsm_params[4]; + NvU8 argument3[4]; /* For all DSM sub functions, input size is 4 */ + 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 + union acpi_object rom_arg[2]; + struct acpi_object_list input = { 2, rom_arg }; + 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); + #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 --git a/xorg-driver-video-nvidia-legacy-304xx.spec b/xorg-driver-video-nvidia-legacy-304xx.spec index 585cbac..f70e7fb 100644 --- a/xorg-driver-video-nvidia-legacy-304xx.spec +++ b/xorg-driver-video-nvidia-legacy-304xx.spec @@ -46,28 +46,29 @@ 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 2 +%define rel 1 %define mname nvidia-legacy-304xx %define pname xorg-driver-video-%{mname} Summary: Linux Drivers for nVidia GeForce/Quadro Chips Summary(hu.UTF-8): Linux meghajtók nVidia GeForce/Quadro chipekhez Summary(pl.UTF-8): Sterowniki do kart graficznych nVidia GeForce/Quadro Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} -Version: 304.117 +Version: 304.119 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} Epoch: 1 License: nVidia Binary Group: X11 Source0: http://us.download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run -# Source0-md5: 023eb03da304a1842fc503c81e3c5694 +# Source0-md5: a2acb8066ac296005dbf560ee83ae6d9 Source1: http://us.download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}-no-compat32.run -# Source1-md5: 8ee9f672028971c6d36118894d0e2c59 +# Source1-md5: fb93002115c99f15b6ca393a90a9c9ec Source2: xinitrc.sh Source3: gl.pc.in 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.678 %{?with_dist_kernel:%{expand:%kbrs}} @@ -269,6 +270,7 @@ rm -rf NVIDIA-Linux-x86*-%{version}* %endif %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %{?with_kernel:%{expand:%bkpkg}} -- 2.43.0