mali temporily commit for 3.14
authorJiyu Yang <jiyu.yang@amlogic.com>
Mon, 30 Mar 2015 15:46:43 +0000 (23:46 +0800)
committerJiyu Yang <jiyu.yang@amlogic.com>
Wed, 13 May 2015 02:53:16 +0000 (10:53 +0800)
Change-Id: I358f51a1eda79766b9fcdc63076526fdf219bcb2
Signed-off-by: Jiyu Yang <jiyu.yang@amlogic.com>
mali/Kbuild
mali/common/mali_group.c
mali/linux/mali_osk_irq.c
mali/platform/mali_clock.c
mali/platform/mali_pm_device.c
mali/platform/meson_m450/platform_m8.c
mali/platform/meson_main.c
mali/platform/meson_main.h
mali/platform/mpgpu.c

index 02e559c611810af775b66ca4d1748db128331b40..acd8b725c00ea6dd12d01b4a516ecfefb2e56a58 100755 (executable)
@@ -23,6 +23,17 @@ endif
 ifeq ($(CONFIG_ARCH_MESON6TV),y)
 TARGET_PLATFORM:= meson_m400
 endif
+
+ifndef CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH
+    ccflags-y += -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y
+endif
+ifeq ($(CONFIG_ARCH_MESON),y)
+ccflags-y += -DMESON_CPU_TYPE=0x80
+ccflags-y += -DMESON_CPU_TYPE_MESON6=0x60
+ccflags-y += -DMESON_CPU_TYPE_MESON6TVD=0x75
+ccflags-y += -DMESON_CPU_TYPE_MESON8=0x80
+endif
+
 ##################### end Kasin Added. ###################
 
 # set up defaults if not defined by the user
@@ -50,11 +61,12 @@ USING_DVFS=0
 PROFILING_SKIP_PP_JOBS ?= 0
 PROFILING_SKIP_PP_AND_GP_JOBS ?= 0
 ############## Kasin Added, for platform. ################
+
 ifeq ($(CONFIG_MALI400_DEBUG),y)
        BUILD ?= debug
 else
        BUILD ?= release
-       ldflags-y += --strip-debug
+       #ldflags-y += --strip-debug
 endif
 ##################### end Kasin Added. ###################
 
@@ -190,6 +202,9 @@ ccflags-y += -DCONFIG_MALI450=y
 mali-y += \
        platform/meson_m450/scaling.o 
 
+mali-$(CONFIG_ARCH_MESON) += \
+       platform/meson_m450/platform_m8.o
+
 mali-$(CONFIG_ARCH_MESON8) += \
        platform/meson_m450/platform_m8.o
 
index bd67d5a9658219e4df7ec52cae1ecdeecb22978d..0cbd8610fe2918482228ca49ff9ff3ef6ee46dee 100755 (executable)
@@ -9,7 +9,10 @@
  */
 
 #include <linux/types.h>
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/cpu.h>
+#endif
 #include "mali_kernel_common.h"
 #include "mali_group.h"
 #include "mali_osk.h"
index 68b7d80c4b604c63790141f974f12c4276b98e50..6876b6db20190aa657b70b92d4a848404789da8e 100755 (executable)
  */
 
 #include <linux/types.h>
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/cpu.h>
+#endif
 #include <linux/slab.h>        /* For memory allocation */
 #include <linux/interrupt.h>
 #include <linux/wait.h>
index 16ca2e84c5bed4cb418a80623fa2d6ae9b39630a..aa629677669585e5845dc508209bddd17639011c 100755 (executable)
@@ -1,16 +1,35 @@
 #include <linux/platform_device.h>
 #include <linux/version.h>
 #include <linux/pm.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/register.h>
 #include <mach/irqs.h>
-#include <linux/io.h>
 #include <mach/io.h>
 #include <plat/io.h>
+#endif
+
+#include <linux/io.h>
+
 #include <asm/io.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 29))
+#include <linux/amlogic/iomap.h>
+#endif
 #include "meson_main.h"
 
 #if MESON_CPU_TYPE >= MESON_CPU_TYPE_MESON6TVD
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 29))
+#define HHI_MALI_CLK_CNTL 0x106C
+#define mplt_read(r)        aml_read_cbus((r))
+#define mplt_write(v, r)    aml_write_cbus((r), (v))
+#define mplt_setbits(r, m)  aml_write_cbus((r), (aml_read_cbus(r) | (m)));
+#define mplt_clrbits(r, m)  aml_write_cbus((r), (aml_read_cbus(r) & (~(m))));
+#else
+#define mplt_read(r)        aml_read_reg32((P_##r))
+#define mplt_write(v, r)    aml_write_reg32((P_##r), (v))
+#define mplt_setbits(r, m)  aml_write_reg32((P_##r), (aml_read_reg32(P_##r) | (m)));
+#define mplt_clrbits(r, m)  aml_write_reg32((P_##r), (aml_read_reg32(P_##r) & (~(m))));
+#endif
 #define FCLK_MPLL2 (2 << 9)
 static DEFINE_SPINLOCK(lock);
 static mali_plat_info_t* pmali_plat = NULL;
@@ -28,9 +47,9 @@ int mali_clock_init(mali_plat_info_t* mali_plat)
        pmali_plat = mali_plat;
        if (pmali_plat->have_switch) {
                def_clk_data = pmali_plat->clk[pmali_plat->def_clock];
-               writel(def_clk_data | (def_clk_data << 16), (u32*)P_HHI_MALI_CLK_CNTL);
-               setbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 24);
-               setbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 8);
+               mplt_write(def_clk_data | (def_clk_data << 16), HHI_MALI_CLK_CNTL);
+               mplt_setbits(HHI_MALI_CLK_CNTL, 1 << 24);
+               mplt_setbits(HHI_MALI_CLK_CNTL, 1 << 8);
        } else {
                mali_clock_set(pmali_plat->def_clock);
        }
@@ -56,16 +75,16 @@ static int critical_clock_set(size_t param)
        unsigned int idx = param;
        if (pmali_plat->have_switch) {
                u32 clk_value;
-               setbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 31);
-               clk_value = readl((u32 *)P_HHI_MALI_CLK_CNTL) & 0xffff0000;
+               mplt_setbits(HHI_MALI_CLK_CNTL, 1 << 31);
+               clk_value = mplt_read(HHI_MALI_CLK_CNTL) & 0xffff0000;
                clk_value = clk_value | pmali_plat->clk[idx] | (1 << 8);
-               writel(clk_value, (u32*)P_HHI_MALI_CLK_CNTL);
-               clrbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 31);
+               mplt_write(clk_value, HHI_MALI_CLK_CNTL);
+               mplt_clrbits(HHI_MALI_CLK_CNTL, 1 << 31);
        } else {
-               clrbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 8);
-               clrbits_le32((u32)P_HHI_MALI_CLK_CNTL, (0x7F | (0x7 << 9)));
-               writel(pmali_plat->clk[idx], (u32*)P_HHI_MALI_CLK_CNTL);
-               setbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 8);
+               mplt_clrbits(HHI_MALI_CLK_CNTL, 1 << 8);
+               mplt_clrbits(HHI_MALI_CLK_CNTL, (0x7F | (0x7 << 9)));
+               mplt_write(pmali_plat->clk[idx], HHI_MALI_CLK_CNTL);
+               mplt_setbits(HHI_MALI_CLK_CNTL, 1 << 8);
        }
        return 0;
 }
@@ -80,7 +99,7 @@ void disable_clock(void)
        unsigned long flags;
 
        spin_lock_irqsave(&lock, flags);
-       clrbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 8);
+       mplt_clrbits(HHI_MALI_CLK_CNTL, 1 << 8);
        spin_unlock_irqrestore(&lock, flags);
 }
 
@@ -90,8 +109,8 @@ void enable_clock(void)
        unsigned long flags;
 
        spin_lock_irqsave(&lock, flags);
-       setbits_le32((u32)P_HHI_MALI_CLK_CNTL, 1 << 8);
-       ret = readl((u32 *)P_HHI_MALI_CLK_CNTL) & (1 << 8);
+       mplt_setbits(HHI_MALI_CLK_CNTL, 1 << 8);
+       ret = mplt_read(HHI_MALI_CLK_CNTL) & (1 << 8);
        spin_unlock_irqrestore(&lock, flags);
 }
 
@@ -106,11 +125,13 @@ u32 get_mali_freq(u32 idx)
 
 void set_str_src(u32 data)
 {
+#if 0
        if (data == 11) {
                writel(0x0004d000, (u32*)P_HHI_MPLL_CNTL9);
        } else if (data > 11) {
                writel(data, (u32*)P_HHI_MPLL_CNTL9);
        }
+#endif
        if (data == 0) {
                pmali_plat->clk[pmali_plat->clk_len - 1] = mali_extr_backup;
                pmali_plat->clk_sample[pmali_plat->clk_len - 1] = mali_extr_sample_backup;
index 6d1b700c898e8bc7d8788ad5f24f0b4a5675e80d..4f9e0d05f55db21cb66be0e8a46bb7eed0128067 100755 (executable)
@@ -5,9 +5,11 @@
 #include <linux/module.h>            /* kernel module definitions */
 #include <linux/ioport.h>            /* request_mem_region */
 #include <linux/slab.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/register.h>
 #include <mach/irqs.h>
 #include <mach/io.h>
+#endif
 #include "meson_main.h"
 #include <common/mali_kernel_common.h>
 #include <common/mali_osk_profiling.h>
index 62f2aada74d12636ac6bd418e43b98812ec0b5c8..d656ddb5f3433a8abd74dfd8de9a10277b8e0313 100755 (executable)
 #include <linux/module.h>            /* kernel module definitions */
 #include <linux/ioport.h>            /* request_mem_region */
 #include <linux/slab.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/register.h>
 #include <mach/irqs.h>
 #include <mach/io.h>
+#endif
 #include <asm/io.h>
 #include <linux/mali/mali_utgard.h>
+#ifdef CONFIG_GPU_THERMAL
 #include <linux/gpu_cooling.h>
 #include <linux/gpucore_cooling.h>
+#endif
 #include <common/mali_kernel_common.h>
 #include <common/mali_osk_profiling.h>
 #include <common/mali_pmu.h>
@@ -165,6 +169,7 @@ unsigned int get_mali_max_level(void)
     return mali_plat_data.dvfs_table_size - 1;
 }
 
+#if 0
 static struct resource mali_gpu_resources[] =
 {
     MALI_GPU_RESOURCES_MALI450_MP6_PMU(IO_MALI_APB_PHY_BASE, INT_MALI_GP, INT_MALI_GP_MMU,
@@ -176,7 +181,50 @@ static struct resource mali_gpu_resources[] =
             INT_MALI_PP6, INT_MALI_PP6_MMU,
             INT_MALI_PP)
 };
-
+#else
+static struct resource mali_gpu_resources[] =
+{
+ { .name = "Mali_L2", .flags = 0x00000200, .start = 0xd00c0000 + 0x10000, .end = 0xd00c0000 + 0x10000 + 0x200, },
+ { .name = "Mali_GP", .flags = 0x00000200, .start = 0xd00c0000 + 0x00000, .end = 0xd00c0000 + 0x00000 + 0x100, },
+ { .name = "Mali_GP_IRQ", .flags = 0x00000400, .start = (160 + 32), .end = (160 + 32), },
+ { .name = "Mali_GP_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x03000, .end = 0xd00c0000 + 0x03000 + 0x100, },
+ { .name = "Mali_GP_MMU_IRQ", .flags = 0x00000400, .start = (161 + 32), .end = (161 + 32), },
+ { .name = "Mali_L2", .flags = 0x00000200, .start = 0xd00c0000 + 0x01000, .end = 0xd00c0000 + 0x01000 + 0x200, },
+ { .name = "Mali_PP" "0", .flags = 0x00000200, .start = 0xd00c0000 + 0x08000, .end = 0xd00c0000 + 0x08000 + 0x1100, },
+ { .name = "Mali_PP" "0" "_IRQ", .flags = 0x00000400, .start = (164 + 32), .end = (164 + 32), },
+ { .name = "Mali_PP" "0" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x04000, .end = 0xd00c0000 + 0x04000 + 0x100, },
+ { .name = "Mali_PP" "0" "_MMU_IRQ", .flags = 0x00000400, .start = (165 + 32), .end = (165 + 32), },
+ { .name = "Mali_PP" "1", .flags = 0x00000200, .start = 0xd00c0000 + 0x0A000, .end = 0xd00c0000 + 0x0A000 + 0x1100, },
+ { .name = "Mali_PP" "1" "_IRQ", .flags = 0x00000400, .start = (166 + 32), .end = (166 + 32), },
+ { .name = "Mali_PP" "1" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x05000, .end = 0xd00c0000 + 0x05000 + 0x100, },
+ { .name = "Mali_PP" "1" "_MMU_IRQ", .flags = 0x00000400, .start = (167 + 32), .end = (167 + 32), },
+ { .name = "Mali_PP" "2", .flags = 0x00000200, .start = 0xd00c0000 + 0x0C000, .end = 0xd00c0000 + 0x0C000 + 0x1100, },
+ { .name = "Mali_PP" "2" "_IRQ", .flags = 0x00000400, .start = (168 + 32), .end = (168 + 32), },
+ { .name = "Mali_PP" "2" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x06000, .end = 0xd00c0000 + 0x06000 + 0x100, },
+ { .name = "Mali_PP" "2" "_MMU_IRQ", .flags = 0x00000400, .start = (169 + 32), .end = (169 + 32), },
+ { .name = "Mali_L2", .flags = 0x00000200, .start = 0xd00c0000 + 0x11000, .end = 0xd00c0000 + 0x11000 + 0x200, },
+ { .name = "Mali_PP" "3", .flags = 0x00000200, .start = 0xd00c0000 + 0x28000, .end = 0xd00c0000 + 0x28000 + 0x1100, },
+ { .name = "Mali_PP" "3" "_IRQ", .flags = 0x00000400, .start = (172 + 32), .end = (172 + 32), },
+ { .name = "Mali_PP" "3" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x1C000, .end = 0xd00c0000 + 0x1C000 + 0x100, },
+ { .name = "Mali_PP" "3" "_MMU_IRQ", .flags = 0x00000400, .start = (173 + 32), .end = (173 + 32), },
+ { .name = "Mali_PP" "4", .flags = 0x00000200, .start = 0xd00c0000 + 0x2A000, .end = 0xd00c0000 + 0x2A000 + 0x1100, },
+ { .name = "Mali_PP" "4" "_IRQ", .flags = 0x00000400, .start = (174 + 32), .end = (174 + 32), },
+ { .name = "Mali_PP" "4" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x1D000, .end = 0xd00c0000 + 0x1D000 + 0x100, },
+ { .name = "Mali_PP" "4" "_MMU_IRQ", .flags = 0x00000400, .start = (175 + 32), .end = (175 + 32), },
+ { .name = "Mali_PP" "5", .flags = 0x00000200, .start = 0xd00c0000 + 0x2C000, .end = 0xd00c0000 + 0x2C000 + 0x1100, },
+ { .name = "Mali_PP" "5" "_IRQ", .flags = 0x00000400, .start = (176 + 32), .end = (176 + 32), },
+ { .name = "Mali_PP" "5" "_MMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x1E000, .end = 0xd00c0000 + 0x1E000 + 0x100, },
+ { .name = "Mali_PP" "5" "_MMU_IRQ", .flags = 0x00000400, .start = (177 + 32), .end = (177 + 32), },
+ { .name = "Mali_Broadcast", .flags = 0x00000200, .start = 0xd00c0000 + 0x13000, .end = 0xd00c0000 + 0x13000 + 0x100, },
+ { .name = "Mali_DLBU", .flags = 0x00000200, .start = 0xd00c0000 + 0x14000, .end = 0xd00c0000 + 0x14000 + 0x100, },
+ { .name = "Mali_PP_Broadcast", .flags = 0x00000200, .start = 0xd00c0000 + 0x16000, .end = 0xd00c0000 + 0x16000 + 0x1100, },
+ { .name = "Mali_PP_Broadcast_IRQ", .flags = 0x00000400, .start = (162 + 32), .end = (162 + 32), },
+ { .name = "Mali_PP_MMU_Broadcast", .flags = 0x00000200, .start = 0xd00c0000 + 0x15000, .end = 0xd00c0000 + 0x15000 + 0x100, },
+ { .name = "Mali_DMA", .flags = 0x00000200, .start = 0xd00c0000 + 0x12000, .end = 0xd00c0000 + 0x12000 + 0x100, },
+ { .name = "Mali_PMU", .flags = 0x00000200, .start = 0xd00c0000 + 0x02000, .end = 0xd00c0000 + 0x02000 + 0x100, },
+};
+#endif
+#ifdef CONFIG_GPU_THERMAL
 static void set_limit_mali_freq(u32 idx)
 {
     if (mali_plat_data.limit_on == 0)
@@ -191,7 +239,9 @@ static u32 get_limit_mali_freq(void)
 {
     return mali_plat_data.scale_info.maxclk;
 }
+#endif
 
+#if defined(CONFIG_AM_VDEC_H264_4K2K) || defined(CONFIG_GPU_THERMAL)
 static u32 set_limit_pp_num(u32 num)
 {
     u32 ret = -1;
@@ -206,6 +256,7 @@ static u32 set_limit_pp_num(u32 num)
 quit:
     return ret;
 }
+#endif
 
 void mali_gpu_utilization_callback(struct mali_gpu_utilization_data *data);
 
index d56a4bee490e76207efcb9d125da554d88fd8b55..968b896250fcc206e920cdb21fc4121df6eecf90 100755 (executable)
 #include <linux/of.h>
 #include <linux/ioport.h>
 #include <linux/slab.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/register.h>
 #include <mach/irqs.h>
 #include <mach/io.h>
+#endif
 #include <asm/io.h>
 
 #include "meson_main.h"
index 44c31c4b7be5e12553dc6eb2ea720af8544abf04..a67441fba940214f3bed026a08a3fd65ad854a8e 100755 (executable)
@@ -7,12 +7,15 @@
 
 #ifndef MESON_MAIN_H_
 #define MESON_MAIN_H_
+#include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #ifdef CONFIG_PM_RUNTIME
 #include <linux/pm_runtime.h>
 #endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/cpu.h>
+#endif
 
 #include "mali_scaling.h"
 #include "mali_clock.h"
index 6420bbb5e5f6a4a830d13931c59d8f45bed45482..f7c0decfe0af59f139c1cf5a61038acec39bff40 100755 (executable)
 #include <linux/slab.h>
 #include <linux/list.h>
 
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 29))
 #include <mach/io.h>
 #include <plat/io.h>
 #include <asm/io.h>
+#endif
 
 #include <linux/mali/mali_utgard.h>
 #include <common/mali_kernel_common.h>
 static ssize_t domain_stat_read(struct class *class, 
                        struct class_attribute *attr, char *buf)
 {
+#if 0
        unsigned int val;
 
        val = readl((u32 *)(IO_AOBUS_BASE + 0xf0)) & 0xff;
        return sprintf(buf, "%x\n", val>>4);
+#else
+       return 0;
+#endif
 }
 
 #define PREHEAT_CMD "preheat"
@@ -338,7 +344,7 @@ int mpgpu_class_init(void)
        }
        return ret;
 #else
-        return 0;
+       return 0;
 #endif
 }