Applied Thanks, Manju
> -----Original Message----- > From: Manjukumar Matha [mailto:[email protected]] > Sent: Friday, April 13, 2018 1:01 PM > To: [email protected] > Cc: Madhurkiran Harikrishnan <[email protected]>; Madhurkiran > Harikrishnan <[email protected]>; Manjukumar Harthikote Matha > <[email protected]> > Subject: [meta-xilinx-bsp][PATCH v2] kernel-module-mali: Update Mali driver to > r8p0-01rel0 > > From: Madhurkiran Harikrishnan <[email protected]> > > This patch will update Mali kernel driver to r8p0-01rel0. > > Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > Tested-by: Jaewon Lee <[email protected]> > Reviewed-by: Hyun Kwon <[email protected]> > Signed-off-by: Manjukumar Matha <[email protected]> > --- > Changelog: > v2: Add missing patches to kernel-module-mali > 0010-common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch > 0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch > > .../recipes-graphics/mali/kernel-module-mali.bb | 25 ++-- > ...ange-Makefile-to-be-compatible-with-Yocto.patch | 24 ++-- > ...i-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch | 52 ------- > ...i-r8p0-01rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch | 52 +++++++ > ...li-r7p0-00rel0-Remove-unused-trace-macros.patch | 33 ----- > ...li-r8p0-01rel0-Remove-unused-trace-macros.patch | 35 +++++ > ...i-r7p0-00rel0-Don-t-include-mali_read_phy.patch | 47 ------- > ...i-r8p0-01rel0-Don-t-include-mali_read_phy.patch | 47 +++++++ > ...kernel_linux.c-Handle-clock-when-probed-a.patch | 90 ++++++++++++ > ...-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch | 29 ---- > ...l-variable-dma_ops-is-removed-from-the-ke.patch | 35 +++++ > ...-mali-r7p0-page_cache_release-to-put_page.patch | 30 ---- > ...place-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch | 54 ++++++++ > ..._os_alloc.c-Align-with-dma_attrs-changes-.patch | 92 ------------- > ...ps-will-be-modified-by-the-driver-only-ti.patch | 34 ----- > ...al_sync-Rename-wait_queue_t-with-wait_que.patch | 108 +++++++++++++++ > ...kernel_linux.c-Handle-clock-when-probed-a.patch | 90 ------------ > ..._swap_alloc.c-Rename-global_page_state-wi.patch | 48 +++++++ > ..._pm.c-Add-PM-runtime-barrier-after-removi.patch | 4 +- > ...kernel_linux.c-Enable-disable-clock-for-r.patch | 153 > +++++++++++++++++++++ > 20 files changed, 648 insertions(+), 434 deletions(-) > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0002-staging-mali-r8p0-01rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0003-staging-mali-r8p0-01rel0-Remove-unused-trace-macros.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0004-staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0005-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0006-arm.c-global-variable-dma_ops-is-removed-from-the-ke.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0006-staging-mali-r7p0-page_cache_release-to-put_page.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch > delete mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch > create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module- > mali/0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch > > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb > b/meta- > xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb > index edd8cbe..3d7c6a9 100644 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb > @@ -3,26 +3,27 @@ SECTION = "kernel/modules" > > LICENSE = "GPLv2" > LIC_FILES_CHKSUM = " \ > - > file://linux/license/gpl/mali_kernel_license.h;md5=1436c0d10458982416 > 3a3eb50fbb5050 \ > + > file://linux/license/gpl/mali_kernel_license.h;md5=436192a2c5cfd47df0a > d1987dffc4ae6 \ > " > > -PV = "r7p0-00rel0" > +PV = "r8p0-01rel0" > > SRC_URI = " \ > https://developer.arm.com/-/media/Files/downloads/mali- > drivers/kernel/mali-utgard-gpu/DX910-SW-99002-${PV}.tgz \ > file://0001-Change-Makefile-to-be-compatible-with-Yocto.patch \ > - file://0002-staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP- > platfor.patch \ > - file://0003-staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch > \ > - file://0004-staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch \ > - file://0005-mali-r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch \ > - file://0006-staging-mali-r7p0-page_cache_release-to-put_page.patch \ > - file://0007-mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch > \ > - file://0008-arm.c-dma_ops-will-be-modified-by-the-driver-only-ti.patch \ > - file://0009-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \ > + file://0002-staging-mali-r8p0-01rel0-Add-the-ZYNQ-ZYNQMP- > platfor.patch \ > + file://0003-staging-mali-r8p0-01rel0-Remove-unused-trace-macros.patch > \ > + file://0004-staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch \ > + file://0005-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \ > + file://0006-arm.c-global-variable-dma_ops-is-removed-from-the-ke.patch > \ > + file://0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch \ > + file://0008-mali_internal_sync-Rename-wait_queue_t-with- > wait_que.patch \ > + file://0009-mali_memory_swap_alloc.c-Rename-global_page_state- > wi.patch \ > file://0010-common-mali_pm.c-Add-PM-runtime-barrier-after- > removi.patch \ > + file://0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch\ > " > -SRC_URI[md5sum] = "db3ef3258eb55700484ecadfdce1fee1" > -SRC_URI[sha256sum] = > "496ba80684aa4236806891a8445978849f7dd07299f5e58b14d52cd5e7ba0536" > +SRC_URI[md5sum] = "8f04ae86957fd56197ad5a9d017b84ff" > +SRC_URI[sha256sum] = > "bfd14fa3f75a71d4ba313534e651ca1c58dc354e882c0b39867e335882a06350" > > inherit module > > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001- > Change-Makefile-to-be-compatible-with-Yocto.patch b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0001-Change-Makefile-to-be-compatible-with- > Yocto.patch > index 0314734..e5eeb19 100644 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change- > Makefile-to-be-compatible-with-Yocto.patch > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0001-Change- > Makefile-to-be-compatible-with-Yocto.patch > @@ -1,20 +1,21 @@ > -From d9a4441c31faef60b7f39692df6913d58ec69d1b Mon Sep 17 00:00:00 > 2001 > -From: Hyun Kwon <[email protected]> > -Date: Thu, 8 Sep 2016 09:56:40 -0700 > -Subject: [PATCH 1/6] Change Makefile to be compatible with Yocto > +From 6d283b9aa3f7fb761da4cb076b47a62275fc4caa Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Tue, 21 Nov 2017 03:57:25 -0800 > +Subject: [PATCH 1/9] Change Makefile to be compatible with Yocto > > Signed-off-by: Manjukumar Matha <[email protected]> > Signed-off-by: Hyun Kwon <[email protected]> > -Upstream Status: Pending > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream Status: Inappropriate [Xilinx specific] > --- > - driver/src/devicedrv/mali/Makefile | 13 +++++++++++-- > - 1 file changed, 11 insertions(+), 2 deletions(-) > + driver/src/devicedrv/mali/Makefile | 11 +++++++++-- > + 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/driver/src/devicedrv/mali/Makefile > b/driver/src/devicedrv/mali/Makefile > -index f39ae4d..9ef9713 100755 > +index 5a259fe..a6dd94c 100644 > --- Makefile > +++ b/Makefile > -@@ -88,7 +88,11 @@ endif > +@@ -89,7 +89,11 @@ endif > # Define host system directory > KDIR-$(shell uname -m):=/lib/modules/$(shell uname -r)/build > > @@ -27,12 +28,9 @@ index f39ae4d..9ef9713 100755 > > ifeq ($(ARCH), arm) > # when compiling for ARM we're cross compiling > -@@ -193,10 +197,15 @@ ifeq ($(MALI_MEM_SWAP_TRACKING),1) > - EXTRA_DEFINES += -DMALI_MEM_SWAP_TRACKING=1 > +@@ -204,9 +208,12 @@ EXTRA_DEFINES += -DMALI_MEM_SWAP_TRACKING=1 > endif > > -+EXTRA_DEFINES += -Wno-error=date-time > -+ > all: $(UMP_SYMVERS_FILE) > - $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) modules > + $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) O=$(O) modules > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0002- > staging-mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0002-staging-mali-r7p0-00rel0- > Add-the-ZYNQ-ZYNQMP-platfor.patch > deleted file mode 100644 > index 363153e..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0002-staging- > mali-r7p0-00rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch > +++ /dev/null > @@ -1,52 +0,0 @@ > -From 65a8f9eb32322538396607805dcbc28aa0aadcb7 Mon Sep 17 00:00:00 > 2001 > -From: Hyun Kwon <[email protected]> > -Date: Thu, 25 Jun 2015 17:14:42 -0700 > -Subject: [PATCH 2/6] staging: mali: r7p0-00rel0: Add the ZYNQ/ZYNQMP > platform > - > -Add the number of PP cores that is required for Zynq/ZynqMP configuration. > - > -Signed-off-by: Hyun Kwon <[email protected]> > -Signed-off-by: Michal Simek <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/platform/arm/arm.c | 10 ++++++++++ > - 1 file changed, 10 insertions(+) > - > -diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > -index a7ff1b2..0682842 100755 > ---- platform/arm/arm.c > -+++ b/platform/arm/arm.c > -@@ -261,6 +261,10 @@ static struct mali_gpu_device_data mali_gpu_data = { > - .dedicated_mem_start = 0x80000000, /* Physical start address (use > 0xD0000000 for old indirect setup) */ > - .dedicated_mem_size = 0x10000000, /* 256MB */ > - #endif > -+#if defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) > -+ .fb_start = 0x00000000, > -+ .fb_size = 0xfffff000, > -+#else > - #if defined(CONFIG_ARM64) > - /* Some framebuffer drivers get the framebuffer dynamically, such as > through GEM, > - * in which the memory resource can't be predicted in advance. > -@@ -271,6 +275,7 @@ static struct mali_gpu_device_data mali_gpu_data = { > - .fb_start = 0xe0000000, > - .fb_size = 0x01000000, > - #endif > -+#endif /* !defined(CONFIG_ARCH_ZYNQ) && !defined(CONFIG_ARCH_ZYNQMP) > */ > - .control_interval = 1000, /* 1000ms */ > - .utilization_callback = mali_gpu_utilization_callback, > - .get_clock_info = NULL, > -@@ -505,6 +510,11 @@ int mali_platform_device_init(struct platform_device > *device) > - mali_write_phys(0xC0010020, 0xA); /* Enable direct > memory mapping for FPGA */ > - } > - } > -+#elif defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) > -+ > -+ MALI_DEBUG_PRINT(4, ("Registering Zynq/ZynqMP Mali-400 device\n")); > -+ num_pp_cores = 2; > -+ > - #endif > - > - /* After kernel 3.15 device tree will default set dev > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0002- > staging-mali-r8p0-01rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0002-staging-mali-r8p0-01rel0- > Add-the-ZYNQ-ZYNQMP-platfor.patch > new file mode 100644 > index 0000000..0a7b673 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0002-staging- > mali-r8p0-01rel0-Add-the-ZYNQ-ZYNQMP-platfor.patch > @@ -0,0 +1,52 @@ > +From f27aab2b0e4d5dea9b5a0e4648c142257940c428 Mon Sep 17 00:00:00 > 2001 > +From: Hyun Kwon <[email protected]> > +Date: Thu, 25 Jun 2015 17:14:42 -0700 > +Subject: [PATCH 2/9] staging: mali: r8p0-01rel0: Add the ZYNQ/ZYNQMP > platform > + > +Add the number of PP cores that is required for Zynq/ZynqMP configuration. > + > +Signed-off-by: Hyun Kwon <[email protected]> > +Signed-off-by: Michal Simek <[email protected]> > +Upstream Status: Inappropriate [Xilinx specific] > +--- > + driver/src/devicedrv/mali/platform/arm/arm.c | 10 ++++++++++ > + 1 file changed, 10 insertions(+) > + > +diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > +index 4e09aca..fac99bc 100644 > +--- platform/arm/arm.c > ++++ b/platform/arm/arm.c > +@@ -261,6 +261,10 @@ static struct mali_gpu_device_data mali_gpu_data = { > + .dedicated_mem_start = 0x80000000, /* Physical start address (use > 0xD0000000 for old indirect setup) */ > + .dedicated_mem_size = 0x10000000, /* 256MB */ > + #endif > ++#if defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) > ++ .fb_start = 0x00000000, > ++ .fb_size = 0xfffff000, > ++#else > + #if defined(CONFIG_ARM64) > + /* Some framebuffer drivers get the framebuffer dynamically, such as > through GEM, > + * in which the memory resource can't be predicted in advance. > +@@ -271,6 +275,7 @@ static struct mali_gpu_device_data mali_gpu_data = { > + .fb_start = 0xe0000000, > + .fb_size = 0x01000000, > + #endif > ++#endif /* !defined(CONFIG_ARCH_ZYNQ) && !defined(CONFIG_ARCH_ZYNQMP) > */ > + .control_interval = 1000, /* 1000ms */ > + .utilization_callback = mali_gpu_utilization_callback, > + .get_clock_info = NULL, > +@@ -505,6 +510,11 @@ int mali_platform_device_init(struct platform_device > *device) > + mali_write_phys(0xC0010020, 0xA); /* Enable direct > memory mapping for FPGA */ > + } > + } > ++#elif defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP) > ++ > ++ MALI_DEBUG_PRINT(4, ("Registering Zynq/ZynqMP Mali-400 device\n")); > ++ num_pp_cores = 2; > ++ > + #endif > + > + /* After kernel 3.15 device tree will default set dev > +-- > +2.7.4 > + > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0003- > staging-mali-r7p0-00rel0-Remove-unused-trace-macros.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0003-staging-mali-r7p0-00rel0- > Remove-unused-trace-macros.patch > deleted file mode 100644 > index fc0dc6e..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0003-staging- > mali-r7p0-00rel0-Remove-unused-trace-macros.patch > +++ /dev/null > @@ -1,33 +0,0 @@ > -From c86d22f1133647518a68f9f1cbe73e1797e68fa8 Mon Sep 17 00:00:00 > 2001 > -From: Hyun Kwon <[email protected]> > -Date: Tue, 3 May 2016 08:11:38 -0700 > -Subject: [PATCH 3/6] staging: mali: r7p0-00rel0: Remove unused trace macros > - > -TRACE_SYSTEM_STRING is not need in each trace file anymore. > - > -Signed-off-by: Hyun Kwon <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/linux/mali_linux_trace.h | 2 -- > - 1 file changed, 2 deletions(-) > - > -diff --git a/driver/src/devicedrv/mali/linux/mali_linux_trace.h > b/driver/src/devicedrv/mali/linux/mali_linux_trace.h > -index 2c91ddc..d4e45ab 100755 > ---- linux/mali_linux_trace.h > -+++ b/linux/mali_linux_trace.h > -@@ -13,12 +13,10 @@ > - > - #include <linux/types.h> > - > --#include <linux/stringify.h> > - #include <linux/tracepoint.h> > - > - #undef TRACE_SYSTEM > - #define TRACE_SYSTEM mali > --#define TRACE_SYSTEM_STRING __stringfy(TRACE_SYSTEM) > - > - #define TRACE_INCLUDE_PATH . > - #define TRACE_INCLUDE_FILE mali_linux_trace > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0003- > staging-mali-r8p0-01rel0-Remove-unused-trace-macros.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0003-staging-mali-r8p0-01rel0- > Remove-unused-trace-macros.patch > new file mode 100644 > index 0000000..98aa6ac > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0003-staging- > mali-r8p0-01rel0-Remove-unused-trace-macros.patch > @@ -0,0 +1,35 @@ > +From d6e44bbf8d1377f78481f611dec237e8d24baf74 Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Tue, 21 Nov 2017 04:00:27 -0800 > +Subject: [PATCH 3/9] staging: mali: r8p0-01rel0: Remove unused trace macros > + > +TRACE_SYSTEM_STRING is not need in each trace file anymore. > + > +Signed-off-by: Hyun Kwon <[email protected]> > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream Status: Pending > +--- > + driver/src/devicedrv/mali/linux/mali_linux_trace.h | 2 -- > + 1 file changed, 2 deletions(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_linux_trace.h > b/driver/src/devicedrv/mali/linux/mali_linux_trace.h > +index 7f0b19d..33cb1ca 100644 > +--- linux/mali_linux_trace.h > ++++ b/linux/mali_linux_trace.h > +@@ -13,13 +13,11 @@ > + > + #include <linux/types.h> > + > +-#include <linux/stringify.h> > + #include <linux/tracepoint.h> > + > + #undef TRACE_SYSTEM > + #define TRACE_SYSTEM mali > + #ifndef TRACEPOINTS_ENABLED > +-#define TRACE_SYSTEM_STRING __stringfy(TRACE_SYSTEM) > + #endif > + #define TRACE_INCLUDE_PATH . > + #define TRACE_INCLUDE_FILE mali_linux_trace > +-- > +2.7.4 > + > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0004- > staging-mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0004-staging-mali-r7p0-00rel0- > Don-t-include-mali_read_phy.patch > deleted file mode 100644 > index ce3bea0..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0004-staging- > mali-r7p0-00rel0-Don-t-include-mali_read_phy.patch > +++ /dev/null > @@ -1,47 +0,0 @@ > -From 3e6fb4697bddc4cfbb82e6a0b2f9f28d5c1d0a04 Mon Sep 17 00:00:00 > 2001 > -From: Hyun Kwon <[email protected]> > -Date: Wed, 29 Jun 2016 09:14:37 -0700 > -Subject: [PATCH 4/6] staging: mali: r7p0-00rel0: Don't include > - mali_read_phys() for zynq/zynqmp > - > -mali_read_phys() is not used with CONFIG_ARCH_ZYNQ and > CONFIG_ARCH_ZYNQMP. > - > -Signed-off-by: Hyun Kwon <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/platform/arm/arm.c | 4 ++++ > - 1 file changed, 4 insertions(+) > - > -diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > -index 0682842..c6f58d8 100755 > ---- platform/arm/arm.c > -+++ b/platform/arm/arm.c > -@@ -38,7 +38,9 @@ > - static int mali_core_scaling_enable = 0; > - > - void mali_gpu_utilization_callback(struct mali_gpu_utilization_data *data); > -+#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) > - static u32 mali_read_phys(u32 phys_addr); > -+#endif > - #if defined(CONFIG_ARCH_REALVIEW) > - static void mali_write_phys(u32 phys_addr, u32 value); > - #endif > -@@ -578,6 +580,7 @@ int mali_platform_device_deinit(struct platform_device > *device) > - > - #endif /* CONFIG_MALI_DT */ > - > -+#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) > - static u32 mali_read_phys(u32 phys_addr) > - { > - u32 phys_addr_page = phys_addr & 0xFFFFE000; > -@@ -592,6 +595,7 @@ static u32 mali_read_phys(u32 phys_addr) > - > - return ret; > - } > -+#endif > - > - #if defined(CONFIG_ARCH_REALVIEW) > - static void mali_write_phys(u32 phys_addr, u32 value) > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0004- > staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0004-staging-mali-r8p0-01rel0- > Don-t-include-mali_read_phy.patch > new file mode 100644 > index 0000000..c5c4967 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0004-staging- > mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch > @@ -0,0 +1,47 @@ > +From 2f5e8944357f43fbde4cb642c6ee4a699c88efb5 Mon Sep 17 00:00:00 > 2001 > +From: Hyun Kwon <[email protected]> > +Date: Wed, 29 Jun 2016 09:14:37 -0700 > +Subject: [PATCH 4/9] staging: mali: r8p0-01rel0: Don't include > + mali_read_phys() for zynq/zynqmp > + > +mali_read_phys() is not used with CONFIG_ARCH_ZYNQ and > CONFIG_ARCH_ZYNQMP. > + > +Signed-off-by: Hyun Kwon <[email protected]> > +Upstream Status: Inappropriate [Xilinx specific] > +--- > + driver/src/devicedrv/mali/platform/arm/arm.c | 4 ++++ > + 1 file changed, 4 insertions(+) > + > +diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > +index fac99bc..62f9be6 100644 > +--- platform/arm/arm.c > ++++ b/platform/arm/arm.c > +@@ -38,7 +38,9 @@ > + static int mali_core_scaling_enable = 0; > + > + void mali_gpu_utilization_callback(struct mali_gpu_utilization_data *data); > ++#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) > + static u32 mali_read_phys(u32 phys_addr); > ++#endif > + #if defined(CONFIG_ARCH_REALVIEW) > + static void mali_write_phys(u32 phys_addr, u32 value); > + #endif > +@@ -578,6 +580,7 @@ int mali_platform_device_deinit(struct platform_device > *device) > + > + #endif /* CONFIG_MALI_DT */ > + > ++#if !(defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_ARCH_ZYNQMP)) > + static u32 mali_read_phys(u32 phys_addr) > + { > + u32 phys_addr_page = phys_addr & 0xFFFFE000; > +@@ -592,6 +595,7 @@ static u32 mali_read_phys(u32 phys_addr) > + > + return ret; > + } > ++#endif > + > + #if defined(CONFIG_ARCH_REALVIEW) > + static void mali_write_phys(u32 phys_addr, u32 value) > +-- > +2.7.4 > + > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0005-linux- > mali_kernel_linux.c-Handle-clock-when-probed-a.patch > b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0005-linux-mali_kernel_linux.c-Handle-clock- > when-probed-a.patch > new file mode 100644 > index 0000000..3d78460 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0005-linux- > mali_kernel_linux.c-Handle-clock-when-probed-a.patch > @@ -0,0 +1,90 @@ > +From e67e20ec6ff0c9720d87844270421453c738066a Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Thu, 16 Feb 2017 12:15:58 -0800 > +Subject: [PATCH 5/9] linux/mali_kernel_linux.c: Handle clock when probed and > + removed > + > +This patch will handle the clock through clock > +specifier for GPU PP0 and PP1. > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream Status: Inappropriate [Xilinx specific] > +--- > + .../src/devicedrv/mali/linux/mali_kernel_linux.c | 40 > +++++++++++++++++++++- > + 1 file changed, 39 insertions(+), 1 deletion(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > b/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > +index d7893a3..f15fb56 100644 > +--- linux/mali_kernel_linux.c > ++++ b/linux/mali_kernel_linux.c > +@@ -45,6 +45,14 @@ > + #if defined(CONFIG_MALI400_INTERNAL_PROFILING) > + #include "mali_profiling_internal.h" > + #endif > ++ > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++/* Initialize variables for clocks */ > ++struct clk *clk_gpu; > ++struct clk *clk_gpu_pp0; > ++struct clk *clk_gpu_pp1; > ++#endif > ++ > + #if defined(CONFIG_MALI400_PROFILING) && defined(CONFIG_MALI_DVFS) > + #include "mali_osk_profiling.h" > + #include "mali_dvfs_policy.h" > +@@ -580,7 +588,23 @@ static int mali_probe(struct platform_device *pdev) > + } > + #endif > + > +- > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++ /* Initialize clocks for GPU and PP */ > ++ clk_gpu = devm_clk_get(&pdev->dev, "gpu"); > ++ if (IS_ERR(clk_gpu)) > ++ return PTR_ERR(clk_gpu); > ++ clk_prepare_enable(clk_gpu); > ++ > ++ clk_gpu_pp0 = devm_clk_get(&pdev->dev, "gpu_pp0"); > ++ if (IS_ERR(clk_gpu_pp0)) > ++ return PTR_ERR(clk_gpu_pp0); > ++ clk_prepare_enable(clk_gpu_pp0); > ++ > ++ clk_gpu_pp1 = devm_clk_get(&pdev->dev, "gpu_pp1"); > ++ if (IS_ERR(clk_gpu_pp1)) > ++ return PTR_ERR(clk_gpu_pp1); > ++ clk_prepare_enable(clk_gpu_pp1); > ++#endif > + if (_MALI_OSK_ERR_OK == _mali_osk_wq_init()) { > + /* Initialize the Mali GPU HW specified by pdev */ > + if (_MALI_OSK_ERR_OK == mali_initialize_subsystems()) { > +@@ -608,6 +632,12 @@ static int mali_probe(struct platform_device *pdev) > + _mali_osk_wq_term(); > + } > + > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++ clk_disable_unprepare(clk_gpu); > ++ clk_disable_unprepare(clk_gpu_pp0); > ++ clk_disable_unprepare(clk_gpu_pp1); > ++#endif > ++ > + #ifdef CONFIG_MALI_DEVFREQ > + mali_devfreq_term(mdev); > + devfreq_init_failed: > +@@ -673,6 +703,14 @@ static int mali_remove(struct platform_device *pdev) > + mali_platform_device_deinit(mali_platform_device); > + #endif > + mali_platform_device = NULL; > ++ > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++ /* Remove clock */ > ++ clk_disable_unprepare(clk_gpu); > ++ clk_disable_unprepare(clk_gpu_pp0); > ++ clk_disable_unprepare(clk_gpu_pp1); > ++#endif > ++ > + return 0; > + } > + > +-- > +2.7.4 > + > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0005-mali- > r7p0-PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0005-mali-r7p0-PAGE_CACHE_SHIFT-to- > PAGE_CACHE.patch > deleted file mode 100644 > index 32dd9d4..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0005-mali-r7p0- > PAGE_CACHE_SHIFT-to-PAGE_CACHE.patch > +++ /dev/null > @@ -1,29 +0,0 @@ > -From ac3baaacbaa564e768529dcb2353a84eb47ae847 Mon Sep 17 00:00:00 > 2001 > -From: Hyun Kwon <[email protected]> > -Date: Mon, 12 Sep 2016 13:12:46 -0700 > -Subject: [PATCH 5/6] mali: r7p0: PAGE_CACHE_SHIFT to PAGE_CACHE > - > -09cbfea removed PAGE_CACHE_*. > - > -Signed-off-by: Hyun Kwon <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > -index 4793328..1aea47b 100755 > ---- linux/mali_memory_swap_alloc.c > -+++ b/linux/mali_memory_swap_alloc.c > -@@ -52,7 +52,7 @@ extern struct mali_mem_os_allocator > mali_mem_os_allocator; > - #define MALI_SWAP_LOW_MEM_DEFAULT_VALUE (60*1024*1024) > - #define MALI_SWAP_INVALIDATE_MALI_ADDRESS (0) /* Used to mark > the given memory cookie is invalidate. */ > - #define MALI_SWAP_GLOBAL_SWAP_FILE_SIZE (0xFFFFFFFF) > --#define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX > ((MALI_SWAP_GLOBAL_SWAP_FILE_SIZE) >> PAGE_CACHE_SHIFT) > -+#define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX > ((MALI_SWAP_GLOBAL_SWAP_FILE_SIZE) >> PAGE_SHIFT) > - #define MALI_SWAP_GLOBAL_SWAP_FILE_INDEX_RESERVE (1 << 15) /* Reserved > for CoW nonlinear swap backend memory, the space size is 128MB. */ > - > - unsigned int mali_mem_swap_out_threshold_value = > MALI_SWAP_LOW_MEM_DEFAULT_VALUE; > --- > -2.7.4 > - > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0006-arm.c- > global-variable-dma_ops-is-removed-from-the-ke.patch > b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0006-arm.c-global-variable-dma_ops-is- > removed-from-the-ke.patch > new file mode 100644 > index 0000000..3e1745f > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0006-arm.c- > global-variable-dma_ops-is-removed-from-the-ke.patch > @@ -0,0 +1,35 @@ > +From ed7242238151c12029c566d1974058c579d8ae3d Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Wed, 25 Jan 2017 10:00:33 -0800 > +Subject: [PATCH 6/9] arm.c: global variable dma_ops is removed from the > kernel > + 4.7 > + > +Refer kernel commit 1dccb598df549d892b6450c261da54cdd7af44b4, the > global > +dma_ops variable and the special-casing for ACPI is removed , and just > +returns the dma ops that got set for the device, or the dummy_dma_ops > +if none were present. > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream Status: Pending > +--- > + driver/src/devicedrv/mali/platform/arm/arm.c | 3 ++- > + 1 file changed, 2 insertions(+), 1 deletion(-) > + > +diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > +index 62f9be6..57ca989 100644 > +--- platform/arm/arm.c > ++++ b/platform/arm/arm.c > +@@ -529,8 +529,9 @@ int mali_platform_device_init(struct platform_device > *device) > + */ > + if (!device->dev.dma_mask) > + device->dev.dma_mask = &device->dev.coherent_dma_mask; > ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > + device->dev.archdata.dma_ops = dma_ops; > +- > ++#endif > + err = platform_device_add_data(device, &mali_gpu_data, > sizeof(mali_gpu_data)); > + > + if (0 == err) { > +-- > +2.7.4 > + > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0006- > staging-mali-r7p0-page_cache_release-to-put_page.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0006-staging-mali-r7p0- > page_cache_release-to-put_page.patch > deleted file mode 100644 > index 5582bfa..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0006-staging- > mali-r7p0-page_cache_release-to-put_page.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -From 9dd708ba609b826c07fa91d8a5ee56b368ae8183 Mon Sep 17 00:00:00 > 2001 > -From: "[email protected]" <[email protected]> > -Date: Mon, 12 Sep 2016 17:14:34 -0700 > -Subject: [PATCH 6/6] staging: mali: r7p0: page_cache_release() to put_page() > - > -09cbfea replaced page_cache_release() to put_page(). > - > -Signed-off-by: Hyun Kwon <[email protected]> > -Signed-off-by: [email protected] <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > -index 1aea47b..068e4d0 100755 > ---- linux/mali_memory_swap_alloc.c > -+++ b/linux/mali_memory_swap_alloc.c > -@@ -183,7 +183,7 @@ static void > mali_mem_swap_out_page_node(mali_page_node *page_node) > - dma_unmap_page(&mali_platform_device->dev, page_node->swap_it- > >dma_addr, > - _MALI_OSK_MALI_PAGE_SIZE, DMA_TO_DEVICE); > - set_page_dirty(page_node->swap_it->page); > -- page_cache_release(page_node->swap_it->page); > -+ put_page(page_node->swap_it->page); > - } > - > - void mali_mem_swap_unlock_single_mem_backend(mali_mem_backend > *mem_bkend) > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007- > Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by- > __GFP_RETRY_MAYFAIL.patch > new file mode 100644 > index 0000000..6e5f544 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace- > __GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch > @@ -0,0 +1,54 @@ > +From a8190cd3b346633016d1c0096ef73e0e1ceef438 Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Tue, 5 Dec 2017 09:25:15 -0800 > +Subject: [PATCH 7/9] Replace __GFP_REPEAT by __GFP_RETRY_MAYFAIL > + > +Refer kernel patch dcda9b04713c3f6ff0875652924844fae28286ea > +which replaces with a useful semantic > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream-Status: Pending > +--- > + driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c | 4 ++++ > + driver/src/devicedrv/mali/linux/mali_osk_notification.c | 7 ++++++- > + 2 files changed, 10 insertions(+), 1 deletion(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c > b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c > +index 5fe1270..1602371 100644 > +--- linux/mali_memory_os_alloc.c > ++++ b/linux/mali_memory_os_alloc.c > +@@ -202,7 +202,11 @@ int mali_mem_os_alloc_pages(mali_mem_os_mem > *os_mem, u32 size) > + /* Allocate new pages, if needed. */ > + for (i = 0; i < remaining; i++) { > + dma_addr_t dma_addr; > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) > ++ gfp_t flags = __GFP_ZERO | __GFP_RETRY_MAYFAIL | > __GFP_NOWARN | __GFP_COLD; > ++#else > + gfp_t flags = __GFP_ZERO | __GFP_REPEAT | __GFP_NOWARN | > __GFP_COLD; > ++#endif > + int err; > + > + #if defined(CONFIG_ARM) && !defined(CONFIG_ARM_LPAE) > +diff --git a/driver/src/devicedrv/mali/linux/mali_osk_notification.c > b/driver/src/devicedrv/mali/linux/mali_osk_notification.c > +index b22fe68..d0c302a 100644 > +--- linux/mali_osk_notification.c > ++++ b/linux/mali_osk_notification.c > +@@ -55,9 +55,14 @@ _mali_osk_notification_t > *_mali_osk_notification_create(u32 type, u32 size) > + { > + /* OPT Recycling of notification objects */ > + _mali_osk_notification_wrapper_t *notification; > +- > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) > ++ notification = (_mali_osk_notification_wrapper_t > *)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size, > ++ GFP_KERNEL | __GFP_HIGH | __GFP_RETRY_MAYFAIL); > ++#else > + notification = (_mali_osk_notification_wrapper_t > *)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size, > + GFP_KERNEL | __GFP_HIGH | __GFP_REPEAT); > ++#endif > ++ > + if (NULL == notification) { > + MALI_DEBUG_PRINT(1, ("Failed to create a notification > object\n")); > + return NULL; > +-- > +2.7.4 > + > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007- > mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0007-mali_memory_os_alloc.c- > Align-with-dma_attrs-changes-.patch > deleted file mode 100644 > index 79c507d..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007- > mali_memory_os_alloc.c-Align-with-dma_attrs-changes-.patch > +++ /dev/null > @@ -1,92 +0,0 @@ > -From f0a49bccbdd910c48aab59e07aed98093f4a0fea Mon Sep 17 00:00:00 > 2001 > -From: Madhurkiran Harikrishnan <[email protected]> > -Date: Wed, 25 Jan 2017 02:59:40 -0800 > -Subject: [PATCH 1/2] mali_memory_os_alloc.c: Align with dma_attrs changes > from > - 4.8 Kernel > - > -From 4.8 Kernel the DMA attributes is no longer a pointer but an unsigned > long. > - > -Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > -Upstream Status: Pending > ---- > - .../devicedrv/mali/linux/mali_memory_os_alloc.c | 25 > +++++++++++++++++----- > - 1 file changed, 20 insertions(+), 5 deletions(-) > - > -diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c > b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c > -index 7f229eb..08fa2fb 100755 > ---- linux/mali_memory_os_alloc.c > -+++ b/linux/mali_memory_os_alloc.c > -@@ -26,9 +26,11 @@ > - #define MALI_OS_MEMORY_KERNEL_BUFFER_SIZE_IN_PAGES > (MALI_OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB * 256) > - #define MALI_OS_MEMORY_POOL_TRIM_JIFFIES (10 * CONFIG_HZ) /* Default to > 10s */ > - > --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) > -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && > LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - /* Write combine dma_attrs */ > - static DEFINE_DMA_ATTRS(dma_attrs_wc); > -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) > -+static unsigned long dma_attrs_wc; > - #endif > - > - #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0) > -@@ -511,10 +513,14 @@ _mali_osk_errcode_t > mali_mem_os_get_table_page(mali_dma_addr *phys, mali_io_addr > - spin_unlock(&mali_mem_page_table_page_pool.lock); > - > - if (_MALI_OSK_ERR_OK != ret) { > --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) > -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && > LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - *mapping = dma_alloc_attrs(&mali_platform_device->dev, > - _MALI_OSK_MALI_PAGE_SIZE, > &tmp_phys, > - GFP_KERNEL, &dma_attrs_wc); > -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) > -+ *mapping = dma_alloc_attrs(&mali_platform_device->dev, > -+ _MALI_OSK_MALI_PAGE_SIZE, > &tmp_phys, > -+ GFP_KERNEL, dma_attrs_wc); > - #else > - *mapping = dma_alloc_writecombine(&mali_platform_device- > >dev, > - _MALI_OSK_MALI_PAGE_SIZE, > &tmp_phys, GFP_KERNEL); > -@@ -550,10 +556,14 @@ void > mali_mem_os_release_table_page(mali_dma_addr phys, void *virt) > - } else { > - spin_unlock(&mali_mem_page_table_page_pool.lock); > - > --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) > -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && > LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - dma_free_attrs(&mali_platform_device->dev, > - _MALI_OSK_MALI_PAGE_SIZE, virt, phys, > - &dma_attrs_wc); > -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) > -+ dma_free_attrs(&mali_platform_device->dev, > -+ _MALI_OSK_MALI_PAGE_SIZE, virt, phys, > -+ dma_attrs_wc); > - #else > - dma_free_writecombine(&mali_platform_device->dev, > - _MALI_OSK_MALI_PAGE_SIZE, virt, phys); > -@@ -606,9 +616,12 @@ static void mali_mem_os_page_table_pool_free(size_t > nr_to_free) > - > - /* After releasing the spinlock: free the pages we removed from the > pool. > */ > - for (i = 0; i < nr_to_free; i++) { > --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) > -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && > LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - dma_free_attrs(&mali_platform_device->dev, > _MALI_OSK_MALI_PAGE_SIZE, > - virt_arr[i], (dma_addr_t)phys_arr[i], > &dma_attrs_wc); > -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) > -+ dma_free_attrs(&mali_platform_device->dev, > _MALI_OSK_MALI_PAGE_SIZE, > -+ virt_arr[i], (dma_addr_t)phys_arr[i], > dma_attrs_wc); > - #else > - dma_free_writecombine(&mali_platform_device->dev, > - _MALI_OSK_MALI_PAGE_SIZE, > -@@ -757,8 +770,10 @@ _mali_osk_errcode_t mali_mem_os_init(void) > - return _MALI_OSK_ERR_NOMEM; > - } > - > --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) > -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) && > LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - dma_set_attr(DMA_ATTR_WRITE_COMBINE, &dma_attrs_wc); > -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) > -+ dma_attrs_wc |= DMA_ATTR_WRITE_COMBINE; > - #endif > - > - register_shrinker(&mali_mem_os_allocator.shrinker); > --- > -2.7.4 > - > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-arm.c- > dma_ops-will-be-modified-by-the-driver-only-ti.patch > b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0008-arm.c-dma_ops-will-be-modified-by-the- > driver-only-ti.patch > deleted file mode 100644 > index c11b60a..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-arm.c- > dma_ops-will-be-modified-by-the-driver-only-ti.patch > +++ /dev/null > @@ -1,34 +0,0 @@ > -From 4bb78550d818b9e6491fa2d3b9706bb217a1597b Mon Sep 17 00:00:00 > 2001 > -From: Madhurkiran Harikrishnan <[email protected]> > -Date: Wed, 25 Jan 2017 10:00:33 -0800 > -Subject: [PATCH 2/2] arm.c: dma_ops will be modified by the driver only till > - Kernel v4.7 > - > -From v4.8(Platform specific) Kernel the arch_setup_dma_ops will > -not give a dummy_dma_ops if acpi is disabled rather pass a valid > -dma_ops. > - > -Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > -Upstream Status: Pending > ---- > - driver/src/devicedrv/mali/platform/arm/arm.c | 3 ++- > - 1 file changed, 2 insertions(+), 1 deletion(-) > - > -diff --git a/driver/src/devicedrv/mali/platform/arm/arm.c > b/driver/src/devicedrv/mali/platform/arm/arm.c > -index c6f58d8..36965fe 100755 > ---- platform/arm/arm.c > -+++ b/platform/arm/arm.c > -@@ -529,8 +529,9 @@ int mali_platform_device_init(struct platform_device > *device) > - */ > - if (!device->dev.dma_mask) > - device->dev.dma_mask = &device->dev.coherent_dma_mask; > -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)) > - device->dev.archdata.dma_ops = dma_ops; > -- > -+#endif > - err = platform_device_add_data(device, &mali_gpu_data, > sizeof(mali_gpu_data)); > - > - if (0 == err) { > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008- > mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename- > wait_queue_t-with-wait_que.patch > new file mode 100644 > index 0000000..592fea0 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008- > mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch > @@ -0,0 +1,108 @@ > +From 717d7899f6d8048c6b88b3c52e8a9c8afbddbb65 Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Tue, 5 Dec 2017 09:48:42 -0800 > +Subject: [PATCH 8/9] mali_internal_sync: Rename wait_queue_t with > + wait_queue_entry_t > + > +Refer kernel patch ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f > +and 2055da which replaces the struct name > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream-Status: Pending > +--- > + .../src/devicedrv/mali/linux/mali_internal_sync.c | 27 > ++++++++++++++++++++-- > + .../src/devicedrv/mali/linux/mali_internal_sync.h | 4 ++++ > + 2 files changed, 29 insertions(+), 2 deletions(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.c > b/driver/src/devicedrv/mali/linux/mali_internal_sync.c > +index 1f2574e..957a056 100644 > +--- linux/mali_internal_sync.c > ++++ b/linux/mali_internal_sync.c > +@@ -121,8 +121,13 @@ static void mali_internal_sync_fence_add_fence(struct > mali_internal_sync_fence * > + } > + #endif > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++static int mali_internal_sync_fence_wake_up_wq(wait_queue_entry_t *curr, > unsigned mode, > ++ int wake_flags, void *key) > ++#else > + static int mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned > mode, > + int wake_flags, void *key) > ++#endif > + { > + struct mali_internal_sync_fence_waiter *wait; > + MALI_IGNORE(mode); > +@@ -130,8 +135,12 @@ static int > mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned mode > + MALI_IGNORE(key); > + > + wait = container_of(curr, struct mali_internal_sync_fence_waiter, work); > +- list_del_init(&wait->work.task_list); > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++ list_del_init(&wait->work.entry); > ++#else > ++ list_del_init(&wait->work.task_list); > ++#endif > + wait->callback(wait->work.private, wait); > + return 1; > + } > +@@ -498,7 +507,11 @@ void mali_internal_sync_fence_waiter_init(struct > mali_internal_sync_fence_waiter > + MALI_DEBUG_ASSERT_POINTER(waiter); > + MALI_DEBUG_ASSERT_POINTER(callback); > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++ INIT_LIST_HEAD(&waiter->work.entry); > ++#else > + INIT_LIST_HEAD(&waiter->work.task_list); > ++#endif > + waiter->callback = callback; > + } > + > +@@ -560,8 +573,13 @@ int mali_internal_sync_fence_wait_async(struct > mali_internal_sync_fence *sync_fe > + spin_lock_irqsave(&sync_fence->wq.lock, flags); > + err = sync_fence->fence->ops->signaled(sync_fence->fence); > + > +- if (0 == err) > ++ if (0 == err){ > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++ __add_wait_queue_entry_tail(&sync_fence->wq, &waiter->work); > ++#else > + __add_wait_queue_tail(&sync_fence->wq, &waiter->work); > ++#endif > ++ } > + spin_unlock_irqrestore(&sync_fence->wq.lock, flags); > + > + return err; > +@@ -578,8 +596,13 @@ int mali_internal_sync_fence_cancel_async(struct > mali_internal_sync_fence *sync_ > + MALI_DEBUG_ASSERT_POINTER(waiter); > + > + spin_lock_irqsave(&sync_fence->wq.lock, flags); > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++ if (!list_empty(&waiter->work.entry)) > ++ list_del_init(&waiter->work.entry); > ++#else > + if (!list_empty(&waiter->work.task_list)) > + list_del_init(&waiter->work.task_list); > ++#endif > + else > + ret = -ENOENT; > + spin_unlock_irqrestore(&sync_fence->wq.lock, flags); > +diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.h > b/driver/src/devicedrv/mali/linux/mali_internal_sync.h > +index a5655c7..70f29f9 100644 > +--- linux/mali_internal_sync.h > ++++ b/linux/mali_internal_sync.h > +@@ -112,7 +112,11 @@ typedef void (*mali_internal_sync_callback_t)(struct > mali_internal_sync_fence *s > + struct mali_internal_sync_fence_waiter *waiter); > + > + struct mali_internal_sync_fence_waiter { > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) > ++ wait_queue_entry_t work; > ++#else > + wait_queue_t work; > ++#endif > + mali_internal_sync_callback_t callback; > + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) > + #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0) > +-- > +2.7.4 > + > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-linux- > mali_kernel_linux.c-Handle-clock-when-probed-a.patch > b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0009-linux-mali_kernel_linux.c-Handle-clock- > when-probed-a.patch > deleted file mode 100644 > index 34cbccf..0000000 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-linux- > mali_kernel_linux.c-Handle-clock-when-probed-a.patch > +++ /dev/null > @@ -1,90 +0,0 @@ > -From ba8c94302a1c606315109a9d1cee342213fdbf98 Mon Sep 17 00:00:00 > 2001 > -From: Madhurkiran Harikrishnan <[email protected]> > -Date: Thu, 16 Feb 2017 12:15:58 -0800 > -Subject: [PATCH] linux/mali_kernel_linux.c: Handle clock when probed and > - removed > - > -This patch will handle the clock through clock > -specifier for GPU PP0 and PP1. > - > -Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > -Upstream-Status: Inappropriate [Specific to Xilinx ZynqMP] > ---- > - .../src/devicedrv/mali/linux/mali_kernel_linux.c | 40 > +++++++++++++++++++++- > - 1 file changed, 39 insertions(+), 1 deletion(-) > - > -diff --git a/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > b/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > -index 9bfa2bd..cfde20f 100755 > ---- linux/mali_kernel_linux.c > -+++ b/linux/mali_kernel_linux.c > -@@ -45,6 +45,14 @@ > - #if defined(CONFIG_MALI400_INTERNAL_PROFILING) > - #include "mali_profiling_internal.h" > - #endif > -+ > -+#if defined(CONFIG_ARCH_ZYNQMP) > -+/* Initialize variables for clocks */ > -+struct clk *clk_gpu; > -+struct clk *clk_gpu_pp0; > -+struct clk *clk_gpu_pp1; > -+#endif > -+ > - #if defined(CONFIG_MALI400_PROFILING) && defined(CONFIG_MALI_DVFS) > - #include "mali_osk_profiling.h" > - #include "mali_dvfs_policy.h" > -@@ -580,7 +588,23 @@ static int mali_probe(struct platform_device *pdev) > - } > - #endif > - > -- > -+#if defined(CONFIG_ARCH_ZYNQMP) > -+ /* Initialize clocks for GPU and PP */ > -+ clk_gpu = devm_clk_get(&pdev->dev, "gpu"); > -+ if (IS_ERR(clk_gpu)) > -+ return PTR_ERR(clk_gpu); > -+ clk_prepare_enable(clk_gpu); > -+ > -+ clk_gpu_pp0 = devm_clk_get(&pdev->dev, "gpu_pp0"); > -+ if (IS_ERR(clk_gpu_pp0)) > -+ return PTR_ERR(clk_gpu_pp0); > -+ clk_prepare_enable(clk_gpu_pp0); > -+ > -+ clk_gpu_pp1 = devm_clk_get(&pdev->dev, "gpu_pp1"); > -+ if (IS_ERR(clk_gpu_pp1)) > -+ return PTR_ERR(clk_gpu_pp1); > -+ clk_prepare_enable(clk_gpu_pp1); > -+#endif > - if (_MALI_OSK_ERR_OK == _mali_osk_wq_init()) { > - /* Initialize the Mali GPU HW specified by pdev */ > - if (_MALI_OSK_ERR_OK == mali_initialize_subsystems()) { > -@@ -608,6 +632,12 @@ static int mali_probe(struct platform_device *pdev) > - _mali_osk_wq_term(); > - } > - > -+#if defined(CONFIG_ARCH_ZYNQMP) > -+ clk_disable_unprepare(clk_gpu); > -+ clk_disable_unprepare(clk_gpu_pp0); > -+ clk_disable_unprepare(clk_gpu_pp1); > -+#endif > -+ > - #ifdef CONFIG_MALI_DEVFREQ > - mali_devfreq_term(mdev); > - devfreq_init_failed: > -@@ -673,6 +703,14 @@ static int mali_remove(struct platform_device *pdev) > - mali_platform_device_deinit(mali_platform_device); > - #endif > - mali_platform_device = NULL; > -+ > -+#if defined(CONFIG_ARCH_ZYNQMP) > -+ /* Remove clock */ > -+ clk_disable_unprepare(clk_gpu); > -+ clk_disable_unprepare(clk_gpu_pp0); > -+ clk_disable_unprepare(clk_gpu_pp1); > -+#endif > -+ > - return 0; > - } > - > --- > -2.7.4 > - > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009- > mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c- > Rename-global_page_state-wi.patch > new file mode 100644 > index 0000000..3445512 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009- > mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch > @@ -0,0 +1,48 @@ > +From 478de18bf513ecad419d25981e7b66c78126752c Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Tue, 5 Dec 2017 09:58:36 -0800 > +Subject: [PATCH 9/9] mali_memory_swap_alloc.c: Rename global_page_state > with > + global_zone_page_state > + > +Refer Kernel commit c41f012ade0b95b0a6e25c7150673e0554736165 > +Which simply renames without any functional changes > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Upstream-Status: Pending > +--- > + driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 10 +++++++++- > + 1 file changed, 9 insertions(+), 1 deletion(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c > +index a54faca..e122b4c 100644 > +--- linux/mali_memory_swap_alloc.c > ++++ b/linux/mali_memory_swap_alloc.c > +@@ -248,7 +248,11 @@ static void > mali_mem_swap_swapped_bkend_pool_shrink(_mali_mem_swap_pool_shrink_t > + } > + > + /* Get system free pages number. */ > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) > ++ system_free_size = global_zone_page_state(NR_FREE_PAGES) * > PAGE_SIZE; > ++#else > + system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE; > ++#endif > + last_gpu_utilization = _mali_ukk_utilization_gp_pp(); > + > + if ((last_gpu_utilization < gpu_utilization_threshold_value) > +@@ -575,8 +579,12 @@ int mali_mem_swap_alloc_pages(mali_mem_swap > *swap_mem, u32 size, u32 *bkend_idx) > + > + list_add_tail(&m_page->list, &swap_mem->pages); > + } > +- > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) > ++ system_free_size = global_zone_page_state(NR_FREE_PAGES) * > PAGE_SIZE; > ++#else > + system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE; > ++#endif > ++ > + > + if ((system_free_size < mali_mem_swap_out_threshold_value) > + && (mem_backend_swapped_pool_size > > (mali_mem_swap_out_threshold_value >> 2)) > +-- > +2.7.4 > + > diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0010- > common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch b/meta-xilinx- > bsp/recipes-graphics/mali/kernel-module-mali/0010-common-mali_pm.c-Add- > PM-runtime-barrier-after-removi.patch > index ad159ba..98a86c8 100644 > --- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0010-common- > mali_pm.c-Add-PM-runtime-barrier-after-removi.patch > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0010-common- > mali_pm.c-Add-PM-runtime-barrier-after-removi.patch > @@ -1,4 +1,4 @@ > -From 572d234259158bf9f046c2393a65e2800bec1062 Mon Sep 17 00:00:00 > 2001 > +From 58e2c55176f1a146781430b2a570c8ce5f80d426 Mon Sep 17 00:00:00 > 2001 > From: Madhurkiran Harikrishnan <[email protected]> > Date: Mon, 28 Aug 2017 09:40:37 -0700 > Subject: [PATCH] common/mali_pm.c: Add PM runtime barrier after removing > @@ -15,7 +15,7 @@ Upstream-Status: Pending > 1 file changed, 1 insertion(+) > > diff --git a/driver/src/devicedrv/mali/common/mali_pm.c > b/driver/src/devicedrv/mali/common/mali_pm.c > -index 1ef03a6..0343ad3 100755 > +index 858c689..62a1e5f 100644 > --- common/mali_pm.c > +++ b/common/mali_pm.c > @@ -301,6 +301,7 @@ void mali_pm_init_end(void) > diff --git > a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0011-linux- > mali_kernel_linux.c-Enable-disable-clock-for-r.patch > b/meta-xilinx-bsp/recipes- > graphics/mali/kernel-module-mali/0011-linux-mali_kernel_linux.c-Enable-disable- > clock-for-r.patch > new file mode 100644 > index 0000000..38ab404 > --- /dev/null > +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0011-linux- > mali_kernel_linux.c-Enable-disable-clock-for-r.patch > @@ -0,0 +1,153 @@ > +From aeff13ad9e9ef73172a9325f669aefd3c0403dbb Mon Sep 17 00:00:00 > 2001 > +From: Madhurkiran Harikrishnan <[email protected]> > +Date: Wed, 21 Feb 2018 16:52:15 -0800 > +Subject: [PATCH] linux/mali_kernel_linux.c: Enable/disable clock for runtime > + resume/suspend > + > +Enable/Disable the clock for GP,PP0 and PP1 during runtime > +resume/suspend. > + > +Signed-off-by: Madhurkiran Harikrishnan <[email protected]> > +Reviewed-by: Hyun Kwon <[email protected]> > +Upstream Status: Inappropriate [Xilinx specific] > +--- > + .../src/devicedrv/mali/linux/mali_kernel_linux.c | 65 > ++++++++++++++++++---- > + 1 file changed, 54 insertions(+), 11 deletions(-) > + > +diff --git a/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > b/driver/src/devicedrv/mali/linux/mali_kernel_linux.c > +index f15fb56..e61f33b 100644 > +--- linux/mali_kernel_linux.c > ++++ b/linux/mali_kernel_linux.c > +@@ -51,6 +51,7 @@ > + struct clk *clk_gpu; > + struct clk *clk_gpu_pp0; > + struct clk *clk_gpu_pp1; > ++mali_bool clk_enabled; > + #endif > + > + #if defined(CONFIG_MALI400_PROFILING) && defined(CONFIG_MALI_DVFS) > +@@ -281,6 +282,46 @@ struct file_operations mali_fops = { > + .mmap = mali_mmap > + }; > + > ++static int mali_enable_clk(void) > ++{ > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++ int err = 0; > ++ > ++ if (clk_enabled) > ++ return 0; > ++ > ++ clk_enabled = MALI_TRUE; > ++ err = clk_prepare_enable(clk_gpu); > ++ if (err) { > ++ MALI_PRINT_ERROR(("Could not enable clock for GP\n\r")); > ++ return err; > ++ } > ++ err = clk_prepare_enable(clk_gpu_pp0); > ++ if (err) { > ++ MALI_PRINT_ERROR(("Could not enable clock for PP0\n\r")); > ++ return err; > ++ } > ++ err = clk_prepare_enable(clk_gpu_pp1); > ++ if (err) { > ++ MALI_PRINT_ERROR(("Could not enable clock for PP1\n\r")); > ++ return err; > ++ } > ++#endif > ++ return 0; > ++} > ++ > ++static void mali_disable_clk(void) > ++{ > ++#if defined(CONFIG_ARCH_ZYNQMP) > ++ if (clk_enabled) { > ++ clk_enabled = MALI_FALSE; > ++ clk_disable_unprepare(clk_gpu); > ++ clk_disable_unprepare(clk_gpu_pp0); > ++ clk_disable_unprepare(clk_gpu_pp1); > ++ } > ++#endif > ++} > ++ > + #if MALI_ENABLE_CPU_CYCLES > + void mali_init_cpu_time_counters(int reset, int enable_divide_by_64) > + { > +@@ -593,18 +634,19 @@ static int mali_probe(struct platform_device *pdev) > + clk_gpu = devm_clk_get(&pdev->dev, "gpu"); > + if (IS_ERR(clk_gpu)) > + return PTR_ERR(clk_gpu); > +- clk_prepare_enable(clk_gpu); > + > + clk_gpu_pp0 = devm_clk_get(&pdev->dev, "gpu_pp0"); > + if (IS_ERR(clk_gpu_pp0)) > + return PTR_ERR(clk_gpu_pp0); > +- clk_prepare_enable(clk_gpu_pp0); > + > + clk_gpu_pp1 = devm_clk_get(&pdev->dev, "gpu_pp1"); > + if (IS_ERR(clk_gpu_pp1)) > + return PTR_ERR(clk_gpu_pp1); > +- clk_prepare_enable(clk_gpu_pp1); > + #endif > ++ > ++ err = mali_enable_clk(); > ++ if (err) > ++ return err; > + if (_MALI_OSK_ERR_OK == _mali_osk_wq_init()) { > + /* Initialize the Mali GPU HW specified by pdev */ > + if (_MALI_OSK_ERR_OK == mali_initialize_subsystems()) { > +@@ -632,11 +674,6 @@ static int mali_probe(struct platform_device *pdev) > + _mali_osk_wq_term(); > + } > + > +-#if defined(CONFIG_ARCH_ZYNQMP) > +- clk_disable_unprepare(clk_gpu); > +- clk_disable_unprepare(clk_gpu_pp0); > +- clk_disable_unprepare(clk_gpu_pp1); > +-#endif > + > + #ifdef CONFIG_MALI_DEVFREQ > + mali_devfreq_term(mdev); > +@@ -644,6 +681,7 @@ devfreq_init_failed: > + mali_pm_metrics_term(mdev); > + pm_metrics_init_failed: > + clk_disable_unprepare(mdev->clock); > ++ mali_disable_clk(); > + clock_prepare_failed: > + clk_put(mdev->clock); > + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) && > defined(CONFIG_OF) \ > +@@ -706,9 +744,7 @@ static int mali_remove(struct platform_device *pdev) > + > + #if defined(CONFIG_ARCH_ZYNQMP) > + /* Remove clock */ > +- clk_disable_unprepare(clk_gpu); > +- clk_disable_unprepare(clk_gpu_pp0); > +- clk_disable_unprepare(clk_gpu_pp1); > ++ mali_disable_clk(); > + #endif > + > + return 0; > +@@ -816,6 +852,8 @@ static int mali_driver_runtime_suspend(struct device > *dev) > + devfreq_suspend_device(mdev->devfreq); > + #endif > + > ++ mali_disable_clk(); > ++ > + return 0; > + } else { > + return -EBUSY; > +@@ -824,6 +862,11 @@ static int mali_driver_runtime_suspend(struct device > *dev) > + > + static int mali_driver_runtime_resume(struct device *dev) > + { > ++ int err ; > ++ > ++ err = mali_enable_clk(); > ++ if (err) > ++ return err; > + #ifdef CONFIG_MALI_DEVFREQ > + struct mali_device *mdev = dev_get_drvdata(dev); > + if (!mdev) > +-- > +2.7.4 > + > -- > 2.7.4 -- _______________________________________________ meta-xilinx mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-xilinx
