diff options
author | Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> | 2017-05-09 11:35:15 -0700 |
---|---|---|
committer | Nathan Rossi <nathan@nathanrossi.com> | 2017-05-15 21:32:36 +1000 |
commit | 4a7e3d5195f8b57fa95b2e76fd737d3752165b6f (patch) | |
tree | 53fe9ac01297f41fc588ea85993a39db05eaf4a9 | |
parent | eb1497ce130e6ac60dd1200a86b23e6bd19e4fc0 (diff) | |
download | meta-xilinx-4a7e3d5195f8b57fa95b2e76fd737d3752165b6f.tar.gz |
kernel-module-mali.bb: Update MALI kernel module to r7p0
Update kernel-module-mali to r7p0 version
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
Reviewed-by: Nathan Rossi <nathan@nathanrossi.com>
11 files changed, 441 insertions, 51 deletions
diff --git a/recipes-graphics/mali/kernel-module-mali.bb b/recipes-graphics/mali/kernel-module-mali.bb index 4efece39..0ad1a49b 100644 --- a/recipes-graphics/mali/kernel-module-mali.bb +++ b/recipes-graphics/mali/kernel-module-mali.bb | |||
@@ -3,24 +3,31 @@ SECTION = "kernel/modules" | |||
3 | 3 | ||
4 | LICENSE = "GPLv2" | 4 | LICENSE = "GPLv2" |
5 | LIC_FILES_CHKSUM = " \ | 5 | LIC_FILES_CHKSUM = " \ |
6 | file://linux/license/gpl/mali_kernel_license.h;md5=68c66513a9dacef77a52c3d6c5e6afd5 \ | 6 | file://linux/license/gpl/mali_kernel_license.h;md5=1436c0d104589824163a3eb50fbb5050 \ |
7 | " | 7 | " |
8 | 8 | ||
9 | PV = "r5p1-01rel0" | 9 | PV = "r7p0-00rel0" |
10 | 10 | ||
11 | SRC_URI = " \ | 11 | SRC_URI = " \ |
12 | http://malideveloper.arm.com/downloads/drivers/DX910/${PV}/DX910-SW-99002-${PV}.tgz \ | 12 | http://malideveloper.arm.com/downloads/drivers/DX910/${PV}/DX910-SW-99002-${PV}.tgz \ |
13 | file://Makefile.patch \ | 13 | file://0001-Change-Makefile-to-be-compatible-with-Yocto.patch \ |
14 | file://0001-mali-r5p1-01rel0-Remove-unused-trace-macros.patch \ | 14 | file://0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch \ |
15 | file://0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch \ | ||
16 | file://0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch \ | ||
17 | file://0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch \ | ||
18 | file://0006-staging-mali-r7p0-page_cache_release-to-put_page.patch \ | ||
19 | file://0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch \ | ||
20 | file://0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch \ | ||
21 | file://0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \ | ||
15 | " | 22 | " |
16 | SRC_URI[md5sum] = "9c85c113e4d41ae992e45ba27287d1ab" | 23 | SRC_URI[md5sum] = "db3ef3258eb55700484ecadfdce1fee1" |
17 | SRC_URI[sha256sum] = "86209c99c36a7622402b016b6f764c212b738ccdec9cdc6d6f16758c013957a0" | 24 | SRC_URI[sha256sum] = "496ba80684aa4236806891a8445978849f7dd07299f5e58b14d52cd5e7ba0536" |
18 | 25 | ||
19 | inherit module | 26 | inherit module |
20 | 27 | ||
21 | do_make_scripts[depends] += "virtual/kernel:do_unpack" | 28 | do_make_scripts[depends] += "virtual/kernel:do_unpack" |
22 | 29 | ||
23 | S = "${WORKDIR}/driver/src/devicedrv/mali" | 30 | S = "${WORKDIR}/DX910-SW-99002-${PV}/driver/src/devicedrv/mali" |
24 | 31 | ||
25 | COMPATIBLE_MACHINE = "^$" | 32 | COMPATIBLE_MACHINE = "^$" |
26 | COMPATIBLE_MACHINE_zynqmp = "zynqmp" | 33 | COMPATIBLE_MACHINE_zynqmp = "zynqmp" |
@@ -33,4 +40,5 @@ EXTRA_OEMAKE = 'KDIR="${STAGING_KERNEL_DIR}" \ | |||
33 | MALI_SHARED_INTERRUPTS=1 \ | 40 | MALI_SHARED_INTERRUPTS=1 \ |
34 | CROSS_COMPILE="${TARGET_PREFIX}" \ | 41 | CROSS_COMPILE="${TARGET_PREFIX}" \ |
35 | O=${STAGING_KERNEL_BUILDDIR} \ | 42 | O=${STAGING_KERNEL_BUILDDIR} \ |
43 | MALI_QUIET=1 \ | ||
36 | ' | 44 | ' |
diff --git a/recipes-graphics/mali/kernel-module-mali/Makefile.patch b/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch index 0f056875..0314734e 100644 --- a/recipes-graphics/mali/kernel-module-mali/Makefile.patch +++ b/recipes-graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with-Yocto.patch | |||
@@ -1,10 +1,20 @@ | |||
1 | Change Makefile to be compatible with Yocto | 1 | From d9a4441c31faef60b7f39692df6913d58ec69d1b Mon Sep 17 00:00:00 2001 |
2 | From: Hyun Kwon <hyun.kwon@xilinx.com> | ||
3 | Date: Thu, 8 Sep 2016 09:56:40 -0700 | ||
4 | Subject: [PATCH 1/6] Change Makefile to be compatible with Yocto | ||
2 | 5 | ||
3 | Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> | 6 | Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> |
7 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
4 | Upstream Status: Pending | 8 | Upstream Status: Pending |
5 | --- driver/src/devicedrv/mali/Makefile 2015-03-29 20:38:45.000000000 -0700 | 9 | --- |
6 | +++ b/Makefile 2016-01-26 20:13:56.053436042 -0800 | 10 | driver/src/devicedrv/mali/Makefile | 13 +++++++++++-- |
7 | @@ -85,7 +85,11 @@ | 11 | 1 file changed, 11 insertions(+), 2 deletions(-) |
12 | |||
13 | diff --git a/driver/src/devicedrv/mali/Makefile b/driver/src/devicedrv/mali/Makefile | ||
14 | index f39ae4d..9ef9713 100755 | ||
15 | --- Makefile | ||
16 | +++ b/Makefile | ||
17 | @@ -88,7 +88,11 @@ endif | ||
8 | # Define host system directory | 18 | # Define host system directory |
9 | KDIR-$(shell uname -m):=/lib/modules/$(shell uname -r)/build | 19 | KDIR-$(shell uname -m):=/lib/modules/$(shell uname -r)/build |
10 | 20 | ||
@@ -17,8 +27,8 @@ Upstream Status: Pending | |||
17 | 27 | ||
18 | ifeq ($(ARCH), arm) | 28 | ifeq ($(ARCH), arm) |
19 | # when compiling for ARM we're cross compiling | 29 | # when compiling for ARM we're cross compiling |
20 | @@ -170,10 +174,15 @@ | 30 | @@ -193,10 +197,15 @@ ifeq ($(MALI_MEM_SWAP_TRACKING),1) |
21 | EXTRA_DEFINES += -DPROFILING_SKIP_PP_JOBS=1 -DPROFILING_SKIP_GP_JOBS=1 | 31 | EXTRA_DEFINES += -DMALI_MEM_SWAP_TRACKING=1 |
22 | endif | 32 | endif |
23 | 33 | ||
24 | +EXTRA_DEFINES += -Wno-error=date-time | 34 | +EXTRA_DEFINES += -Wno-error=date-time |
@@ -34,3 +44,6 @@ Upstream Status: Pending | |||
34 | clean: | 44 | clean: |
35 | $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) clean | 45 | $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) clean |
36 | 46 | ||
47 | -- | ||
48 | 2.7.4 | ||
49 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0001-mali-r5p1-01rel0-Remove-unused-trace-macros.patch b/recipes-graphics/mali/kernel-module-mali/0001-mali-r5p1-01rel0-Remove-unused-trace-macros.patch deleted file mode 100644 index b7758bed..00000000 --- a/recipes-graphics/mali/kernel-module-mali/0001-mali-r5p1-01rel0-Remove-unused-trace-macros.patch +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | From 79e49b32d8d52ac765e6ee30ff7d25b8660bd704 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yasir-Khan <yasir_khan@mentor.com> | ||
3 | Date: Fri, 4 Nov 2016 18:43:43 +0500 | ||
4 | Subject: [PATCH] mali: r5p1-01rel0: Remove unused trace macros | ||
5 | |||
6 | TRACE_SYSTEM_STRING is not needed in each trace file anymore. | ||
7 | |||
8 | Based on: | ||
9 | https://patchwork.kernel.org/patch/6150651/ | ||
10 | https://github.com/Xilinx/linux-xlnx/commit/dadb5e41f28f9619debc9aae4ae543aa1dcd5be8 | ||
11 | |||
12 | Upstream-status: Pending | ||
13 | |||
14 | Signed-off-by: Yasir-Khan <yasir_khan@mentor.com> | ||
15 | --- | ||
16 | src/devicedrv/mali/linux/mali_linux_trace.h | 2 -- | ||
17 | 1 file changed, 2 deletions(-) | ||
18 | |||
19 | diff --git a/driver/src/devicedrv/mali/linux/mali_linux_trace.h b/driver/src/devicedrv/mali/linux/mali_linux_trace.h | ||
20 | index c6cd2bf..195e3cf 100644 | ||
21 | --- a/linux/mali_linux_trace.h | ||
22 | +++ b/linux/mali_linux_trace.h | ||
23 | @@ -13,12 +13,10 @@ | ||
24 | |||
25 | #include <linux/types.h> | ||
26 | |||
27 | -#include <linux/stringify.h> | ||
28 | #include <linux/tracepoint.h> | ||
29 | |||
30 | #undef TRACE_SYSTEM | ||
31 | #define TRACE_SYSTEM mali | ||
32 | -#define TRACE_SYSTEM_STRING __stringfy(TRACE_SYSTEM) | ||
33 | |||
34 | #define TRACE_INCLUDE_PATH . | ||
35 | #define TRACE_INCLUDE_FILE mali_linux_trace | ||
36 | -- | ||
37 | 2.8.1 | ||
38 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch b/recipes-graphics/mali/kernel-module-mali/0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch new file mode 100644 index 00000000..363153ee --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | From 65a8f9eb32322538396607805dcbc28aa0aadcb7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hyun Kwon <hyun.kwon@xilinx.com> | ||
3 | Date: Thu, 25 Jun 2015 17:14:42 -0700 | ||
4 | Subject: [PATCH 2/6] staging: mali: r7p0-00rel0: Add the ZYNQ/ZYNQMP platform | ||
5 | |||
6 | Add the number of PP cores that is required for Zynq/ZynqMP configuration. | ||
7 | |||
8 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
9 | Signed-off-by: Michal Simek <michal.simek@xilinx.com> | ||
10 | Upstream Status: Pending | ||
11 | --- | ||
12 | driver/src/devicedrv/mali/platform/arm/arm.c | 10 ++++++++++ | ||
13 | 1 file changed, 10 insertions(+) | ||
14 | |||
15 | diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c b/driver/src/devicedrv/mali/platform/arm/arm.c | ||
16 | index a7ff1b2..0682842 100755 | ||
17 | --- platform/arm/arm.c | ||
18 | +++ b/platform/arm/arm.c | ||
19 | @@ -261,6 +261,10 @@ static struct mali_gpu_device_data mali_gpu_data = { | ||
20 | .dedicated_mem_start = 0x80000000, /* Physical start address (use 0xD0000000 for old indirect setup) */ | ||
21 | .dedicated_mem_size = 0x10000000, /* 256MB */ | ||
22 | #endif | ||
23 | +#if defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) | ||
24 | + .fb_start = 0x00000000, | ||
25 | + .fb_size = 0xfffff000, | ||
26 | +#else | ||
27 | #if defined(CONFIG_ARM64) | ||
28 | /* Some framebuffer drivers get the framebuffer dynamically, such as through GEM, | ||
29 | * in which the memory resource can't be predicted in advance. | ||
30 | @@ -271,6 +275,7 @@ static struct mali_gpu_device_data mali_gpu_data = { | ||
31 | .fb_start = 0xe0000000, | ||
32 | .fb_size = 0x01000000, | ||
33 | #endif | ||
34 | +#endif /* !defined(CONFIG_ARCH_ZYNQ) && !defined(CONFIG_ARCH_ZYNQMP) */ | ||
35 | .control_interval = 1000, /* 1000ms */ | ||
36 | .utilization_callback = mali_gpu_utilization_callback, | ||
37 | .get_clock_info = NULL, | ||
38 | @@ -505,6 +510,11 @@ int mali_platform_device_init(struct platform_device *device) | ||
39 | mali_write_phys(0xC0010020, 0xA); /* Enable direct memory mapping for FPGA */ | ||
40 | } | ||
41 | } | ||
42 | +#elif defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) | ||
43 | + | ||
44 | + MALI_DEBUG_PRINT(4, ("Registering Zynq/ZynqMP Mali-400 device\n")); | ||
45 | + num_pp_cores = 2; | ||
46 | + | ||
47 | #endif | ||
48 | |||
49 | /* After kernel 3.15 device tree will default set dev | ||
50 | -- | ||
51 | 2.7.4 | ||
52 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch b/recipes-graphics/mali/kernel-module-mali/0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch new file mode 100644 index 00000000..fc0dc6e6 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From c86d22f1133647518a68f9f1cbe73e1797e68fa8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hyun Kwon <hyun.kwon@xilinx.com> | ||
3 | Date: Tue, 3 May 2016 08:11:38 -0700 | ||
4 | Subject: [PATCH 3/6] staging: mali: r7p0-00rel0: Remove unused trace macros | ||
5 | |||
6 | TRACE_SYSTEM_STRING is not need in each trace file anymore. | ||
7 | |||
8 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
9 | Upstream Status: Pending | ||
10 | --- | ||
11 | driver/src/devicedrv/mali/linux/mali_linux_trace.h | 2 -- | ||
12 | 1 file changed, 2 deletions(-) | ||
13 | |||
14 | diff --git a/driver/src/devicedrv/mali/linux/mali_linux_trace.h b/driver/src/devicedrv/mali/linux/mali_linux_trace.h | ||
15 | index 2c91ddc..d4e45ab 100755 | ||
16 | --- linux/mali_linux_trace.h | ||
17 | +++ b/linux/mali_linux_trace.h | ||
18 | @@ -13,12 +13,10 @@ | ||
19 | |||
20 | #include <linux/types.h> | ||
21 | |||
22 | -#include <linux/stringify.h> | ||
23 | #include <linux/tracepoint.h> | ||
24 | |||
25 | #undef TRACE_SYSTEM | ||
26 | #define TRACE_SYSTEM mali | ||
27 | -#define TRACE_SYSTEM_STRING __stringfy(TRACE_SYSTEM) | ||
28 | |||
29 | #define TRACE_INCLUDE_PATH . | ||
30 | #define TRACE_INCLUDE_FILE mali_linux_trace | ||
31 | -- | ||
32 | 2.7.4 | ||
33 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch b/recipes-graphics/mali/kernel-module-mali/0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch new file mode 100644 index 00000000..ce3bea0a --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch | |||
@@ -0,0 +1,47 @@ | |||
1 | From 3e6fb4697bddc4cfbb82e6a0b2f9f28d5c1d0a04 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hyun Kwon <hyun.kwon@xilinx.com> | ||
3 | Date: Wed, 29 Jun 2016 09:14:37 -0700 | ||
4 | Subject: [PATCH 4/6] staging: mali: r7p0-00rel0: Don't include | ||
5 | mali_read_phys() for zynq/zynqmp | ||
6 | |||
7 | mali_read_phys() is not used with CONFIG_ARCH_ZYNQ and CONFIG_ARCH_ZYNQMP. | ||
8 | |||
9 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
10 | Upstream Status: Pending | ||
11 | --- | ||
12 | driver/src/devicedrv/mali/platform/arm/arm.c | 4 ++++ | ||
13 | 1 file changed, 4 insertions(+) | ||
14 | |||
15 | diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c b/driver/src/devicedrv/mali/platform/arm/arm.c | ||
16 | index 0682842..c6f58d8 100755 | ||
17 | --- platform/arm/arm.c | ||
18 | +++ b/platform/arm/arm.c | ||
19 | @@ -38,7 +38,9 @@ | ||
20 | static int mali_core_scaling_enable = 0; | ||
21 | |||
22 | void mali_gpu_utilization_callback(struct mali_gpu_utilization_data *data); | ||
23 | +#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) | ||
24 | static u32 mali_read_phys(u32 phys_addr); | ||
25 | +#endif | ||
26 | #if defined(CONFIG_ARCH_REALVIEW) | ||
27 | static void mali_write_phys(u32 phys_addr, u32 value); | ||
28 | #endif | ||
29 | @@ -578,6 +580,7 @@ int mali_platform_device_deinit(struct platform_device *device) | ||
30 | |||
31 | #endif /* CONFIG_MALI_DT */ | ||
32 | |||
33 | +#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) | ||
34 | static u32 mali_read_phys(u32 phys_addr) | ||
35 | { | ||
36 | u32 phys_addr_page = phys_addr & 0xFFFFE000; | ||
37 | @@ -592,6 +595,7 @@ static u32 mali_read_phys(u32 phys_addr) | ||
38 | |||
39 | return ret; | ||
40 | } | ||
41 | +#endif | ||
42 | |||
43 | #if defined(CONFIG_ARCH_REALVIEW) | ||
44 | static void mali_write_phys(u32 phys_addr, u32 value) | ||
45 | -- | ||
46 | 2.7.4 | ||
47 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch b/recipes-graphics/mali/kernel-module-mali/0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch new file mode 100644 index 00000000..32dd9d45 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From ac3baaacbaa564e768529dcb2353a84eb47ae847 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hyun Kwon <hyun.kwon@xilinx.com> | ||
3 | Date: Mon, 12 Sep 2016 13:12:46 -0700 | ||
4 | Subject: [PATCH 5/6] mali: r7p0: PAGE_CACHE_SHIFT to PAGE_CACHE | ||
5 | |||
6 | 09cbfea removed PAGE_CACHE_*. | ||
7 | |||
8 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
9 | Upstream Status: Pending | ||
10 | --- | ||
11 | driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | ||
15 | index 4793328..1aea47b 100755 | ||
16 | --- linux/mali_memory_swap_alloc.c | ||
17 | +++ b/linux/mali_memory_swap_alloc.c | ||
18 | @@ -52,7 +52,7 @@ extern struct mali_mem_os_allocator mali_mem_os_allocator; | ||
19 | #define MALI_SWAP_LOW_MEM_DEFAULT_VALUE (60*1024*1024) | ||
20 | #define MALI_SWAP_INVALIDATE_MALI_ADDRESS (0) /* Used to mark the given memory cookie is invalidate. */ | ||
21 | #define MALI_SWAP_GLOBAL_SWAP_FILE_SIZE (0xFFFFFFFF) | ||
22 | -#define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX ((MALI_SWAP_GLOBAL_SWAP_FILE_SIZE) >> PAGE_CACHE_SHIFT) | ||
23 | +#define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX ((MALI_SWAP_GLOBAL_SWAP_FILE_SIZE) >> PAGE_SHIFT) | ||
24 | #define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX_RESERVE (1 << 15) /* Reserved for CoW nonlinear swap backend memory, the space size is 128MB. */ | ||
25 | |||
26 | unsigned int mali_mem_swap_out_threshold_value = MALI_SWAP_LOW_MEM_DEFAULT_VALUE; | ||
27 | -- | ||
28 | 2.7.4 | ||
29 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0006-staging-mali-r7p0-page_cache_release-to-put_page.patch b/recipes-graphics/mali/kernel-module-mali/0006-staging-mali-r7p0-page_cache_release-to-put_page.patch new file mode 100644 index 00000000..5582bfa4 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0006-staging-mali-r7p0-page_cache_release-to-put_page.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 9dd708ba609b826c07fa91d8a5ee56b368ae8183 Mon Sep 17 00:00:00 2001 | ||
2 | From: "madhurki@xilinx.com" <madhurki@xilinx.com> | ||
3 | Date: Mon, 12 Sep 2016 17:14:34 -0700 | ||
4 | Subject: [PATCH 6/6] staging: mali: r7p0: page_cache_release() to put_page() | ||
5 | |||
6 | 09cbfea replaced page_cache_release() to put_page(). | ||
7 | |||
8 | Signed-off-by: Hyun Kwon <hyun.kwon@xilinx.com> | ||
9 | Signed-off-by: madhurki@xilinx.com <madhurki@xilinx.com> | ||
10 | Upstream Status: Pending | ||
11 | --- | ||
12 | driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | ||
16 | index 1aea47b..068e4d0 100755 | ||
17 | --- linux/mali_memory_swap_alloc.c | ||
18 | +++ b/linux/mali_memory_swap_alloc.c | ||
19 | @@ -183,7 +183,7 @@ static void mali_mem_swap_out_page_node(mali_page_node *page_node) | ||
20 | dma_unmap_page(&mali_platform_device->dev, page_node->swap_it->dma_addr, | ||
21 | _MALI_OSK_MALI_PAGE_SIZE, DMA_TO_DEVICE); | ||
22 | set_page_dirty(page_node->swap_it->page); | ||
23 | - page_cache_release(page_node->swap_it->page); | ||
24 | + put_page(page_node->swap_it->page); | ||
25 | } | ||
26 | |||
27 | void mali_mem_swap_unlock_single_mem_backend(mali_mem_backend *mem_bkend) | ||
28 | -- | ||
29 | 2.7.4 | ||
30 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch b/recipes-graphics/mali/kernel-module-mali/0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch new file mode 100644 index 00000000..79c507d2 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch | |||
@@ -0,0 +1,92 @@ | |||
1 | From f0a49bccbdd910c48aab59e07aed98093f4a0fea Mon Sep 17 00:00:00 2001 | ||
2 | From: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
3 | Date: Wed, 25 Jan 2017 02:59:40 -0800 | ||
4 | Subject: [PATCH 1/2] mali_memory_os_alloc.c: Align with dma_attrs changes from | ||
5 | 4.8 Kernel | ||
6 | |||
7 | From 4.8 Kernel the DMA attributes is no longer a pointer but an unsigned long. | ||
8 | |||
9 | Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
10 | Upstream Status: Pending | ||
11 | --- | ||
12 | .../devicedrv/mali/linux/mali_memory_os_alloc.c | 25 +++++++++++++++++----- | ||
13 | 1 file changed, 20 insertions(+), 5 deletions(-) | ||
14 | |||
15 | diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c | ||
16 | index 7f229eb..08fa2fb 100755 | ||
17 | --- linux/mali_memory_os_alloc.c | ||
18 | +++ b/linux/mali_memory_os_alloc.c | ||
19 | @@ -26,9 +26,11 @@ | ||
20 | #define MALI_OS_MEMORY_KERNEL_BUFFER_SIZE_IN_PAGES (MALI_OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB * 256) | ||
21 | #define MALI_OS_MEMORY_POOL_TRIM_JIFFIES (10 * CONFIG_HZ) /* Default to 10s */ | ||
22 | |||
23 | -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) | ||
24 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
25 | /* Write combine dma_attrs */ | ||
26 | static DEFINE_DMA_ATTRS(dma_attrs_wc); | ||
27 | +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) | ||
28 | +static unsigned long dma_attrs_wc; | ||
29 | #endif | ||
30 | |||
31 | #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0) | ||
32 | @@ -511,10 +513,14 @@ _mali_osk_errcode_t mali_mem_os_get_table_page(mali_dma_addr *phys, mali_io_addr | ||
33 | spin_unlock(&mali_mem_page_table_page_pool.lock); | ||
34 | |||
35 | if (_MALI_OSK_ERR_OK != ret) { | ||
36 | -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) | ||
37 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
38 | *mapping = dma_alloc_attrs(&mali_platform_device->dev, | ||
39 | _MALI_OSK_MALI_PAGE_SIZE, &tmp_phys, | ||
40 | GFP_KERNEL, &dma_attrs_wc); | ||
41 | +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) | ||
42 | + *mapping = dma_alloc_attrs(&mali_platform_device->dev, | ||
43 | + _MALI_OSK_MALI_PAGE_SIZE, &tmp_phys, | ||
44 | + GFP_KERNEL, dma_attrs_wc); | ||
45 | #else | ||
46 | *mapping = dma_alloc_writecombine(&mali_platform_device->dev, | ||
47 | _MALI_OSK_MALI_PAGE_SIZE, &tmp_phys, GFP_KERNEL); | ||
48 | @@ -550,10 +556,14 @@ void mali_mem_os_release_table_page(mali_dma_addr phys, void *virt) | ||
49 | } else { | ||
50 | spin_unlock(&mali_mem_page_table_page_pool.lock); | ||
51 | |||
52 | -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) | ||
53 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
54 | dma_free_attrs(&mali_platform_device->dev, | ||
55 | _MALI_OSK_MALI_PAGE_SIZE, virt, phys, | ||
56 | &dma_attrs_wc); | ||
57 | +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) | ||
58 | + dma_free_attrs(&mali_platform_device->dev, | ||
59 | + _MALI_OSK_MALI_PAGE_SIZE, virt, phys, | ||
60 | + dma_attrs_wc); | ||
61 | #else | ||
62 | dma_free_writecombine(&mali_platform_device->dev, | ||
63 | _MALI_OSK_MALI_PAGE_SIZE, virt, phys); | ||
64 | @@ -606,9 +616,12 @@ static void mali_mem_os_page_table_pool_free(size_t nr_to_free) | ||
65 | |||
66 | /* After releasing the spinlock: free the pages we removed from the pool. */ | ||
67 | for (i = 0; i < nr_to_free; i++) { | ||
68 | -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) | ||
69 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
70 | dma_free_attrs(&mali_platform_device->dev, _MALI_OSK_MALI_PAGE_SIZE, | ||
71 | virt_arr[i], (dma_addr_t)phys_arr[i], &dma_attrs_wc); | ||
72 | +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) | ||
73 | + dma_free_attrs(&mali_platform_device->dev, _MALI_OSK_MALI_PAGE_SIZE, | ||
74 | + virt_arr[i], (dma_addr_t)phys_arr[i], dma_attrs_wc); | ||
75 | #else | ||
76 | dma_free_writecombine(&mali_platform_device->dev, | ||
77 | _MALI_OSK_MALI_PAGE_SIZE, | ||
78 | @@ -757,8 +770,10 @@ _mali_osk_errcode_t mali_mem_os_init(void) | ||
79 | return _MALI_OSK_ERR_NOMEM; | ||
80 | } | ||
81 | |||
82 | -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) | ||
83 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
84 | dma_set_attr(DMA_ATTR_WRITE_COMBINE, &dma_attrs_wc); | ||
85 | +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) | ||
86 | + dma_attrs_wc |= DMA_ATTR_WRITE_COMBINE; | ||
87 | #endif | ||
88 | |||
89 | register_shrinker(&mali_mem_os_allocator.shrinker); | ||
90 | -- | ||
91 | 2.7.4 | ||
92 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch b/recipes-graphics/mali/kernel-module-mali/0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch new file mode 100644 index 00000000..c11b60a8 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 4bb78550d818b9e6491fa2d3b9706bb217a1597b Mon Sep 17 00:00:00 2001 | ||
2 | From: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
3 | Date: Wed, 25 Jan 2017 10:00:33 -0800 | ||
4 | Subject: [PATCH 2/2] arm.c: dma_ops will be modified by the driver only till | ||
5 | Kernel v4.7 | ||
6 | |||
7 | From v4.8(Platform specific) Kernel the arch_setup_dma_ops will | ||
8 | not give a dummy_dma_ops if acpi is disabled rather pass a valid | ||
9 | dma_ops. | ||
10 | |||
11 | Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
12 | Upstream Status: Pending | ||
13 | --- | ||
14 | driver/src/devicedrv/mali/platform/arm/arm.c | 3 ++- | ||
15 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c b/driver/src/devicedrv/mali/platform/arm/arm.c | ||
18 | index c6f58d8..36965fe 100755 | ||
19 | --- platform/arm/arm.c | ||
20 | +++ b/platform/arm/arm.c | ||
21 | @@ -529,8 +529,9 @@ int mali_platform_device_init(struct platform_device *device) | ||
22 | */ | ||
23 | if (!device->dev.dma_mask) | ||
24 | device->dev.dma_mask = &device->dev.coherent_dma_mask; | ||
25 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) | ||
26 | device->dev.archdata.dma_ops = dma_ops; | ||
27 | - | ||
28 | +#endif | ||
29 | err = platform_device_add_data(device, &mali_gpu_data, sizeof(mali_gpu_data)); | ||
30 | |||
31 | if (0 == err) { | ||
32 | -- | ||
33 | 2.7.4 | ||
34 | |||
diff --git a/recipes-graphics/mali/kernel-module-mali/0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch b/recipes-graphics/mali/kernel-module-mali/0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch new file mode 100644 index 00000000..34cbccf4 --- /dev/null +++ b/recipes-graphics/mali/kernel-module-mali/0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch | |||
@@ -0,0 +1,90 @@ | |||
1 | From ba8c94302a1c606315109a9d1cee342213fdbf98 Mon Sep 17 00:00:00 2001 | ||
2 | From: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
3 | Date: Thu, 16 Feb 2017 12:15:58 -0800 | ||
4 | Subject: [PATCH] linux/mali_kernel_linux.c: Handle clock when probed and | ||
5 | removed | ||
6 | |||
7 | This patch will handle the clock through clock | ||
8 | specifier for GPU PP0 and PP1. | ||
9 | |||
10 | Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com> | ||
11 | Upstream-Status: Inappropriate [Specific to Xilinx ZynqMP] | ||
12 | --- | ||
13 | .../src/devicedrv/mali/linux/mali_kernel_linux.c | 40 +++++++++++++++++++++- | ||
14 | 1 file changed, 39 insertions(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/driver/src/devicedrv/mali/linux/mali_kernel_linux.c b/driver/src/devicedrv/mali/linux/mali_kernel_linux.c | ||
17 | index 9bfa2bd..cfde20f 100755 | ||
18 | --- linux/mali_kernel_linux.c | ||
19 | +++ b/linux/mali_kernel_linux.c | ||
20 | @@ -45,6 +45,14 @@ | ||
21 | #if defined(CONFIG_MALI400_INTERNAL_PROFILING) | ||
22 | #include "mali_profiling_internal.h" | ||
23 | #endif | ||
24 | + | ||
25 | +#if defined(CONFIG_ARCH_ZYNQMP) | ||
26 | +/* Initialize variables for clocks */ | ||
27 | +struct clk *clk_gpu; | ||
28 | +struct clk *clk_gpu_pp0; | ||
29 | +struct clk *clk_gpu_pp1; | ||
30 | +#endif | ||
31 | + | ||
32 | #if defined(CONFIG_MALI400_PROFILING) && defined(CONFIG_MALI_DVFS) | ||
33 | #include "mali_osk_profiling.h" | ||
34 | #include "mali_dvfs_policy.h" | ||
35 | @@ -580,7 +588,23 @@ static int mali_probe(struct platform_device *pdev) | ||
36 | } | ||
37 | #endif | ||
38 | |||
39 | - | ||
40 | +#if defined(CONFIG_ARCH_ZYNQMP) | ||
41 | + /* Initialize clocks for GPU and PP */ | ||
42 | + clk_gpu = devm_clk_get(&pdev->dev, "gpu"); | ||
43 | + if (IS_ERR(clk_gpu)) | ||
44 | + return PTR_ERR(clk_gpu); | ||
45 | + clk_prepare_enable(clk_gpu); | ||
46 | + | ||
47 | + clk_gpu_pp0 = devm_clk_get(&pdev->dev, "gpu_pp0"); | ||
48 | + if (IS_ERR(clk_gpu_pp0)) | ||
49 | + return PTR_ERR(clk_gpu_pp0); | ||
50 | + clk_prepare_enable(clk_gpu_pp0); | ||
51 | + | ||
52 | + clk_gpu_pp1 = devm_clk_get(&pdev->dev, "gpu_pp1"); | ||
53 | + if (IS_ERR(clk_gpu_pp1)) | ||
54 | + return PTR_ERR(clk_gpu_pp1); | ||
55 | + clk_prepare_enable(clk_gpu_pp1); | ||
56 | +#endif | ||
57 | if (_MALI_OSK_ERR_OK == _mali_osk_wq_init()) { | ||
58 | /* Initialize the Mali GPU HW specified by pdev */ | ||
59 | if (_MALI_OSK_ERR_OK == mali_initialize_subsystems()) { | ||
60 | @@ -608,6 +632,12 @@ static int mali_probe(struct platform_device *pdev) | ||
61 | _mali_osk_wq_term(); | ||
62 | } | ||
63 | |||
64 | +#if defined(CONFIG_ARCH_ZYNQMP) | ||
65 | + clk_disable_unprepare(clk_gpu); | ||
66 | + clk_disable_unprepare(clk_gpu_pp0); | ||
67 | + clk_disable_unprepare(clk_gpu_pp1); | ||
68 | +#endif | ||
69 | + | ||
70 | #ifdef CONFIG_MALI_DEVFREQ | ||
71 | mali_devfreq_term(mdev); | ||
72 | devfreq_init_failed: | ||
73 | @@ -673,6 +703,14 @@ static int mali_remove(struct platform_device *pdev) | ||
74 | mali_platform_device_deinit(mali_platform_device); | ||
75 | #endif | ||
76 | mali_platform_device = NULL; | ||
77 | + | ||
78 | +#if defined(CONFIG_ARCH_ZYNQMP) | ||
79 | + /* Remove clock */ | ||
80 | + clk_disable_unprepare(clk_gpu); | ||
81 | + clk_disable_unprepare(clk_gpu_pp0); | ||
82 | + clk_disable_unprepare(clk_gpu_pp1); | ||
83 | +#endif | ||
84 | + | ||
85 | return 0; | ||
86 | } | ||
87 | |||
88 | -- | ||
89 | 2.7.4 | ||
90 | |||