[arch-commits] Commit in nvidia/trunk (4.15-FS57305.patch PKGBUILD)

Sven-Hendrik Haase svenstaro at archlinux.org
Sat Feb 10 12:00:48 UTC 2018


    Date: Saturday, February 10, 2018 @ 12:00:47
  Author: svenstaro
Revision: 316580

upgpkg: nvidia 390.25-9

Fix FS#57305

Added:
  nvidia/trunk/4.15-FS57305.patch
Modified:
  nvidia/trunk/PKGBUILD

--------------------+
 4.15-FS57305.patch |  181 +++++++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD           |   10 +-
 2 files changed, 188 insertions(+), 3 deletions(-)

Added: 4.15-FS57305.patch
===================================================================
--- 4.15-FS57305.patch	                        (rev 0)
+++ 4.15-FS57305.patch	2018-02-10 12:00:47 UTC (rev 316580)
@@ -0,0 +1,181 @@
+diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
+index 292d7da..5f254e1 100755
+--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
++++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
+@@ -2123,6 +2123,7 @@ compile_test() {
+             #endif
+             #include <drm/drm_atomic.h>
+             #include <drm/drm_atomic_helper.h>
++            #include <linux/version.h>
+             #if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE)
+             #error DRM not enabled
+             #endif
+@@ -2146,8 +2147,12 @@ compile_test() {
+                 /* 2014-12-18 88a48e297b3a3bac6022c03babfb038f1a886cea */
+                 i = DRIVER_ATOMIC;
+ 
++                #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+                 /* 2015-04-10 df63b9994eaf942afcdb946d27a28661d7dfbf2a */
+                 for_each_crtc_in_state(s, c, cs, i) { }
++                #else
++                for_each_new_crtc_in_state(s, c, cs, i) {}
++                #endif
+ 
+                 /* 2015-05-18 036ef5733ba433760a3512bb5f7a155946e2df05 */
+                 a = offsetof(struct drm_mode_config_funcs, atomic_state_alloc);
+diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
+index cf16b6f..a66ae5a 100644
+--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
++++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
+@@ -33,6 +33,7 @@
+ 
+ #include <drm/drm_atomic.h>
+ #include <drm/drm_atomic_helper.h>
++#include <linux/version.h>
+ 
+ static void nv_drm_connector_destroy(struct drm_connector *connector)
+ {
+@@ -87,7 +88,11 @@ static enum drm_connector_status __nv_drm_connector_detect_internal(
+             break;
+         }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+         encoder = drm_encoder_find(dev, connector->encoder_ids[i]);
++#else
++        encoder = drm_encoder_find(dev, NULL, connector->encoder_ids[i]);
++#endif
+ 
+         if (encoder == NULL) {
+             BUG_ON(encoder != NULL);
+diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
+index b54128a..d820dc2 100644
+--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
++++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
+@@ -37,6 +37,7 @@
+ 
+ #include <drm/drm_atomic.h>
+ #include <drm/drm_atomic_helper.h>
++#include <linux/version.h>
+ 
+ static const u32 nv_default_supported_plane_drm_formats[] = {
+     DRM_FORMAT_ARGB1555,
+@@ -141,7 +142,11 @@ static int nv_drm_plane_atomic_check(struct drm_plane *plane,
+         goto done;
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     for_each_crtc_in_state(plane_state->state, crtc, crtc_state, i) {
++#else
++    for_each_new_crtc_in_state(plane_state->state, crtc, crtc_state, i) {
++#endif
+         struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc_state);
+         struct NvKmsKapiHeadRequestedConfig *head_req_config =
+             &nv_crtc_state->req_config;
+@@ -365,7 +370,11 @@ static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc,
+ 
+         req_config->flags.displaysChanged = NV_TRUE;
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+         for_each_connector_in_state(crtc_state->state,
++#else
++        for_each_new_connector_in_state(crtc_state->state,
++#endif
+                                     connector, connector_state, j) {
+             if (connector_state->crtc != crtc) {
+                 continue;
+@@ -613,7 +622,11 @@ int nv_drm_get_crtc_crc32_ioctl(struct drm_device *dev,
+         goto done;
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     crtc = drm_crtc_find(dev, params->crtc_id);
++#else
++    crtc = drm_crtc_find(dev, NULL, params->crtc_id);
++#endif
+     if (!crtc) {
+         ret = -ENOENT;
+         goto done;
+diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
+index da15d89..91f64ea 100644
+--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
++++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
+@@ -33,6 +33,7 @@
+ #include <drm/drm_atomic.h>
+ #include <drm/drm_atomic_helper.h>
+ #include <drm/drm_crtc.h>
++#include <linux/version.h>
+ 
+ struct nv_drm_atomic_state {
+     struct NvKmsKapiRequestedModeSetConfig config;
+@@ -110,7 +111,11 @@ nv_drm_atomic_apply_modeset_config(struct drm_device *dev,
+     memset(requested_config, 0, sizeof(*requested_config));
+ 
+     /* Loop over affected crtcs and construct NvKmsKapiRequestedModeSetConfig */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+         /*
+          * When commiting a state, the new state is already stored in
+          * crtc->state. When checking a proposed state, the proposed state is
+@@ -178,7 +183,11 @@ void nv_drm_atomic_helper_commit_tail(struct drm_atomic_state *state)
+          nv_drm_write_combine_flush();
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
+         struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc->state);
+         struct nv_drm_flip *nv_flip = nv_crtc_state->nv_flip;
+@@ -282,7 +291,11 @@ static void nv_drm_atomic_commit_task_callback(struct work_struct *work)
+             ret);
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
+ 
+         if (wait_event_timeout(
+@@ -351,7 +364,11 @@ static int nv_drm_atomic_commit_internal(
+          * condition between two/more nvKms->applyModeSetConfig() on single
+          * crtc and generate flip events in correct order.
+          */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+         for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++        for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+             struct nv_drm_device *nv_dev = to_nv_device(dev);
+             struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
+ 
+@@ -372,7 +389,11 @@ static int nv_drm_atomic_commit_internal(
+             }
+         }
+     } else {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+         for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++        for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+             struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
+ 
+             if (atomic_read(&nv_crtc->has_pending_commit) ||
+@@ -388,7 +409,11 @@ static int nv_drm_atomic_commit_internal(
+      * flip events.
+      */
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+     for_each_crtc_in_state(state, crtc, crtc_state, i) {
++#else
++    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
++#endif
+         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
+ 
+         atomic_set(&nv_crtc->has_pending_commit, true);

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-02-10 01:04:11 UTC (rev 316579)
+++ PKGBUILD	2018-02-10 12:00:47 UTC (rev 316580)
@@ -7,7 +7,7 @@
 pkgname=(nvidia nvidia-dkms)
 pkgver=390.25
 _extramodules=extramodules-4.15-ARCH
-pkgrel=8
+pkgrel=9
 pkgdesc="NVIDIA drivers for linux"
 arch=('x86_64')
 url="http://www.nvidia.com/"
@@ -14,8 +14,10 @@
 makedepends=('nvidia-libgl' "nvidia-utils=${pkgver}" 'linux' 'linux-headers>=4.15' 'linux-headers<4.16')
 license=('custom')
 options=('!strip')
-source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha256sums=('02263bc81b66e68fc8224447b249f4f0ca4ae201c467e236d917be2fe187f3d6')
+source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run"
+        4.15-FS57305.patch)
+sha256sums=('02263bc81b66e68fc8224447b249f4f0ca4ae201c467e236d917be2fe187f3d6'
+            '145d436f117455a1a8315b31dc2c9fce3c90c135d8c530b8b8da0e70548f48d9')
 
 _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
 
@@ -23,6 +25,8 @@
     sh "${_pkg}.run" --extract-only
     cd "${_pkg}"
 
+    patch -Np2 -i "${srcdir}"/4.15-FS57305.patch
+
     cp -a kernel kernel-dkms
     cd kernel-dkms
     sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf



More information about the arch-commits mailing list