--- a/kernel/nvidia-drm/nvidia-drm-drv.c 2017-10-05 16:05:41.692399831 -0400 +++ b/kernel/nvidia-drm/nvidia-drm-drv.c 2017-10-05 16:06:42.219988617 -0400 @@ -658,6 +658,60 @@ static const struct drm_ioctl_desc nv_dr static struct drm_driver nv_drm_driver = { +#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + + .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | + DRIVER_MODESET | DRIVER_ATOMIC, + + .master_set = nvidia_drm_master_set, + .master_drop = nvidia_drm_master_drop, + + .dumb_create = nvidia_drm_dumb_create, + .dumb_map_offset = nvidia_drm_dumb_map_offset, + .dumb_destroy = drm_gem_dumb_destroy, + + .gem_vm_ops = &nv_drm_gem_vma_ops, + .gem_free_object = nvidia_drm_gem_free, + + .ioctls = nv_drm_ioctls, + .num_ioctls = ARRAY_SIZE(nv_drm_ioctls), + + .prime_handle_to_fd = drm_gem_prime_handle_to_fd, + .gem_prime_export = nvidia_drm_gem_prime_export, + .gem_prime_get_sg_table = nvidia_drm_gem_prime_get_sg_table, + .gem_prime_vmap = nvidia_drm_gem_prime_vmap, + .gem_prime_vunmap = nvidia_drm_gem_prime_vunmap, + +#if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ) + .gem_prime_res_obj = nvidia_drm_gem_prime_res_obj, +#endif + +#if defined(NV_DRM_DRIVER_HAS_SET_BUSID) + .set_busid = nvidia_drm_pci_set_busid, +#endif + + .load = nvidia_drm_load, + .unload = nvidia_drm_unload, + + .fops = &nv_drm_fops, + +#if defined(NV_DRM_BUS_PRESENT) + .bus = &nv_drm_bus, +#endif + + .name = "nvidia-drm", + + .desc = "NVIDIA DRM driver", + .date = "20160202", + +#if defined(NV_DRM_DRIVER_HAS_LEGACY_DEV_LIST) + .legacy_dev_list = LIST_HEAD_INIT(nv_drm_driver.legacy_dev_list), +#else + .device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), +#endif + +#else + .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER, .gem_free_object = nvidia_drm_gem_free, @@ -698,6 +752,8 @@ static struct drm_driver nv_drm_driver = #else .device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), #endif + +#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ }; @@ -711,7 +767,7 @@ static struct drm_driver nv_drm_driver = static void nvidia_update_drm_driver_features(void) { #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) - +/* if (!nvidia_drm_modeset_module_param) { return; } @@ -728,6 +784,7 @@ static void nvidia_update_drm_driver_fea nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops; pax_close_kernel(); +*/ #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ } @@ -812,7 +869,7 @@ int nvidia_drm_probe_devices(void) int ret = 0; - nvidia_update_drm_driver_features(); + // nvidia_update_drm_driver_features(); /* Enumerate NVIDIA GPUs */