diff options
Diffstat (limited to 'pkgs/os-specific/linux/amdgpu-pro/patches/0002-linux-4.9-fixes.patch')
-rw-r--r-- | pkgs/os-specific/linux/amdgpu-pro/patches/0002-linux-4.9-fixes.patch | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/amdgpu-pro/patches/0002-linux-4.9-fixes.patch b/pkgs/os-specific/linux/amdgpu-pro/patches/0002-linux-4.9-fixes.patch new file mode 100644 index 00000000000..86dbea29e08 --- /dev/null +++ b/pkgs/os-specific/linux/amdgpu-pro/patches/0002-linux-4.9-fixes.patch @@ -0,0 +1,97 @@ +From 52e47be93c7a492730477f590e5eb42e035018bd Mon Sep 17 00:00:00 2001 +From: David McFarland <corngood@gmail.com> +Date: Sun, 29 Jan 2017 18:23:47 -0400 +Subject: [PATCH 2/4] linux-4.9 fixes + +--- + amd/amdgpu/amdgpu_connectors.c | 8 ++++++++ + amd/amdgpu/amdgpu_ttm.c | 4 ++++ + amd/display/amdgpu_dm/amdgpu_dm_types.c | 8 ++++++++ + include/kcl/kcl_mm.h | 4 +++- + 4 files changed, 23 insertions(+), 1 deletion(-) + +diff --git a/amd/amdgpu/amdgpu_connectors.c b/amd/amdgpu/amdgpu_connectors.c +index 1b51981..4b43379 100644 +--- a/amd/amdgpu/amdgpu_connectors.c ++++ b/amd/amdgpu/amdgpu_connectors.c +@@ -168,12 +168,20 @@ int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector) + } + + /* Any defined maximum tmds clock limit we must not exceed? */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++ if (connector->display_info.max_tmds_clock > 0) { ++#else + if (connector->max_tmds_clock > 0) { ++#endif + /* mode_clock is clock in kHz for mode to be modeset on this connector */ + mode_clock = amdgpu_connector->pixelclock_for_modeset; + + /* Maximum allowable input clock in kHz */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++ max_tmds_clock = connector->display_info.max_tmds_clock * 1000; ++#else + max_tmds_clock = connector->max_tmds_clock * 1000; ++#endif + + DRM_DEBUG("%s: hdmi mode dotclock %d kHz, max tmds input clock %d kHz.\n", + connector->name, mode_clock, max_tmds_clock); +diff --git a/amd/amdgpu/amdgpu_ttm.c b/amd/amdgpu/amdgpu_ttm.c +index 447529d..252bab4 100644 +--- a/amd/amdgpu/amdgpu_ttm.c ++++ b/amd/amdgpu/amdgpu_ttm.c +@@ -255,7 +255,11 @@ static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp) + + if (amdgpu_ttm_tt_get_usermm(bo->ttm)) + return -EPERM; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++ return drm_vma_node_verify_access(&abo->gem_base.vma_node, filp->private_data); ++#else + return drm_vma_node_verify_access(&abo->gem_base.vma_node, filp); ++#endif + } + + static void amdgpu_move_null(struct ttm_buffer_object *bo, +diff --git a/amd/display/amdgpu_dm/amdgpu_dm_types.c b/amd/display/amdgpu_dm/amdgpu_dm_types.c +index be7aafb..5e11f26 100644 +--- a/amd/display/amdgpu_dm/amdgpu_dm_types.c ++++ b/amd/display/amdgpu_dm/amdgpu_dm_types.c +@@ -1692,6 +1692,10 @@ static int dm_plane_helper_prepare_fb( + struct drm_plane *plane, + struct drm_framebuffer *fb, + const struct drm_plane_state *new_state) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++static int dm_plane_helper_prepare_fb( ++ struct drm_plane *plane, ++ struct drm_plane_state *new_state) + #else + static int dm_plane_helper_prepare_fb( + struct drm_plane *plane, +@@ -1735,6 +1739,10 @@ static void dm_plane_helper_cleanup_fb( + struct drm_plane *plane, + struct drm_framebuffer *fb, + const struct drm_plane_state *old_state) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++static void dm_plane_helper_cleanup_fb( ++ struct drm_plane *plane, ++ struct drm_plane_state *old_state) + #else + static void dm_plane_helper_cleanup_fb( + struct drm_plane *plane, +diff --git a/include/kcl/kcl_mm.h b/include/kcl/kcl_mm.h +index a18936d..f068195 100644 +--- a/include/kcl/kcl_mm.h ++++ b/include/kcl/kcl_mm.h +@@ -8,7 +8,9 @@ static inline int kcl_get_user_pages(struct task_struct *tsk, struct mm_struct * + int write, int force, struct page **pages, + struct vm_area_struct **vmas) + { +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++ return get_user_pages(start, nr_pages, write ? FOLL_WRITE : 0, pages, vmas); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) + return get_user_pages(start, nr_pages, write, force, pages, vmas); + #else + return get_user_pages(tsk, mm, start, nr_pages, +-- +2.11.0 + |