build/patch/kernel/rockchip-dev/2001-Midgard-daptation-to-Linux-4.10.0-rcX-signatures.patch

87 lines
3.2 KiB
Diff

From a105b027add8a85686cb024cf180808d8a81724b Mon Sep 17 00:00:00 2001
From: Myy <myy@miouyouyou.fr>
Date: Fri, 10 Feb 2017 15:07:21 +0000
Subject: [PATCH 3/3] Adaptation to Linux 4.10.0-rcX signatures
These changes are due to these commits:
* mm: add locked parameter to get_user_pages_remote()
5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
Kernel: 4.10.0-rc
* ktime: Get rid of the union
2456e855354415bfaeb7badaa14e11b3e02c8466
Kernel: 4.10.0-rc
* mm: use vmf->address instead of of vmf->virtual_address
1a29d85eb0f19b7d8271923d8917d7b4f5540b3e
Kernel: 4.10.0-rc
Signed-off-by: Myy <myy@miouyouyou.fr>
---
drivers/gpu/arm/midgard/mali_kbase_jd.c | 7 +++++++
drivers/gpu/arm/midgard/mali_kbase_mem.c | 8 +++++++-
drivers/gpu/arm/midgard/mali_kbase_mem_linux.c | 4 +++-
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/arm/midgard/mali_kbase_jd.c b/drivers/gpu/arm/midgard/mali_kbase_jd.c
index e3ea5f8..bcab4d3 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_jd.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_jd.c
@@ -975,7 +975,14 @@ bool jd_submit_atom(struct kbase_context *kctx, const struct base_jd_atom_v2 *us
* the scheduler: 'not ready to run' and 'dependency-only' jobs. */
jctx->job_nr++;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
katom->start_timestamp.tv64 = 0;
+#else
+ /* ktime_t is not an union anymore in the 4.10.0
+ Commit: 2456e855354415bfaeb7badaa14e11b3e02c8466
+ */
+ katom->start_timestamp = 0;
+#endif
katom->udata = user_atom->udata;
katom->kctx = kctx;
katom->nr_extres = user_atom->nr_extres;
diff --git a/drivers/gpu/arm/midgard/mali_kbase_mem.c b/drivers/gpu/arm/midgard/mali_kbase_mem.c
index 20a18a9..3d487b2 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_mem.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_mem.c
@@ -2154,12 +2154,18 @@ static int kbase_jd_user_buf_map(struct kbase_context *kctx,
alloc->imported.user_buf.nr_pages,
reg->flags & KBASE_REG_GPU_WR,
0, pages, NULL);
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
pinned_pages = get_user_pages_remote(NULL, mm,
address,
alloc->imported.user_buf.nr_pages,
reg->flags & KBASE_REG_GPU_WR ? FOLL_WRITE : 0,
pages, NULL);
+#else
+ pinned_pages = get_user_pages_remote(NULL, mm,
+ address,
+ alloc->imported.user_buf.nr_pages,
+ reg->flags & KBASE_REG_GPU_WR ? FOLL_WRITE : 0,
+ pages, NULL, NULL);
#endif
if (pinned_pages <= 0)
diff --git a/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c b/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
index 503a5ec..b5b138b 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c
@@ -1735,7 +1735,9 @@ static int kbase_cpu_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
/* insert all valid pages from the fault location */
i = rel_pgoff;
- addr = (pgoff_t)((uintptr_t)vmf->virtual_address >> PAGE_SHIFT);
+/* virtual_address has been dropped because it served no purpose.
+ Commit: 1a29d85eb0f19b7d8271923d8917d7b4f5540b3e */
+ addr = vmf->address >> PAGE_SHIFT;
while (i < map->alloc->nents && (addr < vma->vm_end >> PAGE_SHIFT)) {
int ret = vm_insert_pfn(vma, addr << PAGE_SHIFT,
PFN_DOWN(map->alloc->pages[i]));
--
2.10.2