NVIDIA – Driver for Kernel 4.7.. Patch for 4.8 Still Works

NVIDIA have released their latest driver – 370.23 – which (finally!) works with Kernel 4.7, without any patches..

The driver fails to compile with Kernel 4.8, but the previous 367.35 patch fixes this (See article here: http://rglinuxtech.com/?p=1788).
Tested with 4.8-rc2:

..............
ld -r -o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset/nv-modeset-interface.o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset/nvidia-modeset-linux.o
 Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.8-rc2'
make[1]: Leaving directory '/usr/src/linux-4.8-rc2'

Robert Gadsdon.   August 16, 2016.


Comments

NVIDIA – Driver for Kernel 4.7.. Patch for 4.8 Still Works — 2 Comments

  1. Used this patch on 367.44 Driver and on 370.23 Beta Driver. Both drivers installed on 4.8 Kernel

    — NVIDIA-Linux-x86_64-370.23/kernel/nvidia-drm/nvidia-drm-drv.c 2016-08-09 01:43:19.000000000 +0200
    +++ NVIDIA-Linux-x86_64-370.23.patched/kernel/nvidia-drm/nvidia-drm-drv.c 2016-08-16 20:15:01.058822359 +0200
    @@ -37,6 +37,7 @@
    #include “nvidia-drm-ioctl.h”

    #include
    +#include

    #include

    @@ -420,7 +421,7 @@

    static
    void nvidia_drm_master_drop(struct drm_device *dev,
    – struct drm_file *file_priv, bool from_release)
    + struct drm_file *file_priv)
    {
    struct nvidia_drm_device *nv_dev = dev->dev_private;
    int ret;
    @@ -453,7 +454,7 @@
    mutex_lock(&dev->master_mutex);

    if (!file_priv->is_master ||
    – !file_priv->minor->master)
    + !file_priv->master)
    {
    goto done;
    }
    @@ -474,7 +475,7 @@
    * NVKMS modeset ownership, because nvidia_drm_master_set()’s call to
    * grabOwnership() will fail.
    */
    – drm_master_put(&file_priv->minor->master);
    + drm_master_put(&file_priv->master);
    file_priv->is_master = 0;

    ret = 0;
    — NVIDIA-Linux-x86_64-370.23/kernel/nvidia-drm/nvidia-drm-modeset.c 2016-08-09 01:43:19.000000000 +0200
    +++ NVIDIA-Linux-x86_64-370.23.patched/kernel/nvidia-drm/nvidia-drm-modeset.c 2016-08-16 20:15:01.058822359 +0200
    @@ -675,7 +675,7 @@
    goto failed;
    }

    – drm_atomic_helper_swap_state(dev, state);
    + drm_atomic_helper_swap_state(state, true);

    nvidia_drm_update_head_mode_config(state, requested_config);

Leave a Reply

Your email address will not be published. Required fields are marked *