Lines 658-663
static const struct drm_ioctl_desc nv_dr
Link Here
|
658 |
|
658 |
|
659 |
static struct drm_driver nv_drm_driver = { |
659 |
static struct drm_driver nv_drm_driver = { |
660 |
|
660 |
|
|
|
661 |
#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) |
662 |
|
663 |
.driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | |
664 |
DRIVER_MODESET | DRIVER_ATOMIC, |
665 |
|
666 |
.master_set = nvidia_drm_master_set, |
667 |
.master_drop = nvidia_drm_master_drop, |
668 |
|
669 |
.dumb_create = nvidia_drm_dumb_create, |
670 |
.dumb_map_offset = nvidia_drm_dumb_map_offset, |
671 |
.dumb_destroy = drm_gem_dumb_destroy, |
672 |
|
673 |
.gem_vm_ops = &nv_drm_gem_vma_ops, |
674 |
.gem_free_object = nvidia_drm_gem_free, |
675 |
|
676 |
.ioctls = nv_drm_ioctls, |
677 |
.num_ioctls = ARRAY_SIZE(nv_drm_ioctls), |
678 |
|
679 |
.prime_handle_to_fd = drm_gem_prime_handle_to_fd, |
680 |
.gem_prime_export = nvidia_drm_gem_prime_export, |
681 |
.gem_prime_get_sg_table = nvidia_drm_gem_prime_get_sg_table, |
682 |
.gem_prime_vmap = nvidia_drm_gem_prime_vmap, |
683 |
.gem_prime_vunmap = nvidia_drm_gem_prime_vunmap, |
684 |
|
685 |
#if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ) |
686 |
.gem_prime_res_obj = nvidia_drm_gem_prime_res_obj, |
687 |
#endif |
688 |
|
689 |
#if defined(NV_DRM_DRIVER_HAS_SET_BUSID) |
690 |
.set_busid = nvidia_drm_pci_set_busid, |
691 |
#endif |
692 |
|
693 |
.load = nvidia_drm_load, |
694 |
.unload = nvidia_drm_unload, |
695 |
|
696 |
.fops = &nv_drm_fops, |
697 |
|
698 |
#if defined(NV_DRM_BUS_PRESENT) |
699 |
.bus = &nv_drm_bus, |
700 |
#endif |
701 |
|
702 |
.name = "nvidia-drm", |
703 |
|
704 |
.desc = "NVIDIA DRM driver", |
705 |
.date = "20160202", |
706 |
|
707 |
#if defined(NV_DRM_DRIVER_HAS_LEGACY_DEV_LIST) |
708 |
.legacy_dev_list = LIST_HEAD_INIT(nv_drm_driver.legacy_dev_list), |
709 |
#else |
710 |
.device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), |
711 |
#endif |
712 |
|
713 |
#else |
714 |
|
661 |
.driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER, |
715 |
.driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER, |
662 |
|
716 |
|
663 |
.gem_free_object = nvidia_drm_gem_free, |
717 |
.gem_free_object = nvidia_drm_gem_free, |
Lines 698-703
static struct drm_driver nv_drm_driver =
Link Here
|
698 |
#else |
752 |
#else |
699 |
.device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), |
753 |
.device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), |
700 |
#endif |
754 |
#endif |
|
|
755 |
|
756 |
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ |
701 |
}; |
757 |
}; |
702 |
|
758 |
|
703 |
|
759 |
|
Lines 711-717
static struct drm_driver nv_drm_driver =
Link Here
|
711 |
static void nvidia_update_drm_driver_features(void) |
767 |
static void nvidia_update_drm_driver_features(void) |
712 |
{ |
768 |
{ |
713 |
#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) |
769 |
#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) |
714 |
|
770 |
/* |
715 |
if (!nvidia_drm_modeset_module_param) { |
771 |
if (!nvidia_drm_modeset_module_param) { |
716 |
return; |
772 |
return; |
717 |
} |
773 |
} |
Lines 728-733
static void nvidia_update_drm_driver_fea
Link Here
|
728 |
|
784 |
|
729 |
nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops; |
785 |
nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops; |
730 |
pax_close_kernel(); |
786 |
pax_close_kernel(); |
|
|
787 |
*/ |
731 |
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ |
788 |
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ |
732 |
} |
789 |
} |
733 |
|
790 |
|
Lines 812-818
int nvidia_drm_probe_devices(void)
Link Here
|
812 |
|
869 |
|
813 |
int ret = 0; |
870 |
int ret = 0; |
814 |
|
871 |
|
815 |
nvidia_update_drm_driver_features(); |
872 |
// nvidia_update_drm_driver_features(); |
816 |
|
873 |
|
817 |
/* Enumerate NVIDIA GPUs */ |
874 |
/* Enumerate NVIDIA GPUs */ |
818 |
|
875 |
|