--- a/kernel/common/inc/nv-list-helpers.h 2019-01-28 00:12:19.000000000 +0800 +++ b/kernel/common/inc/nv-list-helpers.h 2019-05-07 18:34:16.710188281 +0800 @@ -91,7 +91,7 @@ list_entry((pos)->member.next, typeof(*(pos)), member) #endif -static inline int list_is_first(const struct list_head *list, +static inline int nv_list_is_first(const struct list_head *list, const struct list_head *head) { return list->prev == head; --- a/kernel/nvidia-drm/nvidia-drm-connector.c 2019-05-07 18:24:26.082167627 +0800 +++ b/kernel/nvidia-drm/nvidia-drm-connector.c 2019-05-07 18:38:06.492196316 +0800 @@ -20,6 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) @@ -201,6 +202,13 @@ return __nv_drm_connector_detect_internal(connector); } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) +/* Add header constants missing after 5.1 */ +int drm_helper_probe_single_connector_modes(struct drm_connector +*connector, uint32_t maxX, +uint32_t maxY); +#endif + static struct drm_connector_funcs nv_connector_funcs = { #if defined NV_DRM_ATOMIC_HELPER_CONNECTOR_DPMS_PRESENT .dpms = drm_atomic_helper_connector_dpms, --- a/kernel/nvidia-drm/nvidia-drm-drv.c 2019-05-07 18:26:38.401172254 +0800 +++ b/kernel/nvidia-drm/nvidia-drm-drv.c 2019-05-07 18:40:05.756200486 +0800 @@ -20,6 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include #include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */ #include "nvidia-drm-priv.h" @@ -35,6 +36,14 @@ #include "nvidia-drm-gem-nvkms-memory.h" #include "nvidia-drm-gem-user-memory.h" +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) +/* Add header constants missing after 5.1 */ +void drm_kms_helper_poll_init(struct drm_device *dev); +void drm_kms_helper_poll_fini(struct drm_device *dev); +bool drm_helper_hpd_irq_event(struct drm_device *dev); +void drm_kms_helper_poll_disable(struct drm_device *dev); +#endif + #if defined(NV_DRM_AVAILABLE) #include "nvidia-drm-ioctl.h" --- a/kernel/nvidia-drm/nvidia-drm-encoder.c 2019-05-07 18:28:33.180176268 +0800 +++ b/kernel/nvidia-drm/nvidia-drm-encoder.c 2019-05-07 18:42:10.951204864 +0800 @@ -20,6 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) @@ -31,6 +32,11 @@ #include "nvidia-drm-crtc.h" #include "nvidia-drm-helper.h" +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) +/* Add header constants missing after 5.1 */ +void drm_kms_helper_hotplug_event(struct drm_device *dev); +#endif + #include #include @@ -160,6 +166,13 @@ { struct nv_drm_device *nv_dev = to_nv_device(dev); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) +/* Add header constants missing after 5.1 */ +int drm_helper_probe_single_connector_modes(struct drm_connector +*connector, uint32_t maxX, +uint32_t maxY); +#endif + struct NvKmsKapiStaticDisplayInfo *displayInfo = NULL; struct NvKmsKapiConnectorInfo *connectorInfo = NULL; --- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c 2019-05-07 18:29:44.575178764 +0800 +++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c 2019-05-07 18:44:44.866210247 +0800 @@ -20,6 +20,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include #include "nvidia-drm-conftest.h" #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) @@ -268,7 +269,11 @@ */ #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) static int nv_drm_vma_fault(struct vm_fault *vmf) +#else +static vm_fault_t nv_drm_vma_fault(struct vm_fault *vmf) +#endif { return __nv_drm_vma_fault(vmf->vma, vmf); } --- a/kernel/nvidia-uvm/uvm8.c 2019-01-28 00:12:22.000000000 +0800 +++ b/kernel/nvidia-uvm/uvm8.c 2019-05-07 18:48:51.096218857 +0800 @@ -172,7 +172,11 @@ return VM_FAULT_SIGBUS; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) static int uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) +#else +static vm_fault_t uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) +#endif { #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) return uvm_vm_fault_sigbus(vmf->vma, vmf); @@ -507,7 +511,11 @@ } } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) static int uvm_vm_fault_wrapper(struct vm_fault *vmf) +#else +static vm_fault_t uvm_vm_fault_wrapper(struct vm_fault *vmf) +#endif { #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) return uvm_vm_fault(vmf->vma, vmf); --- a/kernel/nvidia-uvm/uvm8_range_tree.c 2019-01-28 00:12:23.000000000 +0800 +++ b/kernel/nvidia-uvm/uvm8_range_tree.c 2019-05-07 18:50:18.079221899 +0800 @@ -31,7 +31,7 @@ uvm_range_tree_node_t *uvm_range_tree_prev(uvm_range_tree_t *tree, uvm_range_tree_node_t *node) { - if (list_is_first(&node->list, &tree->head)) + if (nv_list_is_first(&node->list, &tree->head)) return NULL; return list_prev_entry(node, list); }