參考資訊:
https://github.com/dguidipc/gemini-android-kernel-3.18
https://github.com/gemian/gemini-keyboard-apps/wiki/KernelCompilation
步驟如下:
$ cd $ sudo apt-get install gcc-aarch64* $ git clone https://github.com/dguidipc/gemini-android-kernel-3.18 $ cd gemini-android-kernel-3.18
Patch Kernel 3.18.41
diff -Naur old/kernel-3.18/arch/arm64/configs/aeon6797_6m_n_defconfig new/kernel-3.18/arch/arm64/configs/aeon6797_6m_n_defconfig
--- old/kernel-3.18/arch/arm64/configs/aeon6797_6m_n_defconfig 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/arch/arm64/configs/aeon6797_6m_n_defconfig 2018-11-21 22:08:27.333067035 +0800
@@ -1,4 +1,4 @@
-CONFIG_CROSS_COMPILE="aarch64-linux-android-"
+CONFIG_CROSS_COMPILE="aarch64-linux-gnu-"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_AUDIT=y
CONFIG_NO_HZ=y
@@ -543,4 +543,4 @@
CONFIG_LIBCRC32C=y
CONFIG_USB_USBNET=y
-CONFIG_USB_RTL8152=y
\ No newline at end of file
+CONFIG_USB_RTL8152=y
diff -Naur old/kernel-3.18/drivers/input/touchscreen/mediatek/Makefile new/kernel-3.18/drivers/input/touchscreen/mediatek/Makefile
--- old/kernel-3.18/drivers/input/touchscreen/mediatek/Makefile 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/input/touchscreen/mediatek/Makefile 2018-11-21 21:57:54.130459418 +0800
@@ -12,16 +12,16 @@
#obj-$(CONFIG_TOUCHSCREEN_MTK) += GT1151/
obj-$(CONFIG_TOUCHSCREEN_MTK_NT36xxx) += aeon_nt36xxx/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT1151TB) += GT1151TB/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT910) += GT910/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XXTB_HOTKNOT) += GT9XXTB_hotknot/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT) += GT9XX_hotknot/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT_PHONE) += GT9XX_hotknot_phone/
-obj-$(CONFIG_TOUCHSCREEN_MTK_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT928) += GT928/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT_SCP) += GT9XX_hotknot_scp/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT911) += GT911/
-obj-$(CONFIG_TOUCHSCREEN_MTK_FT5X0X) += ft5x0x/
-obj-$(CONFIG_TOUCHSCREEN_MTK_SYNAPTICS_3320_50) += synaptics_3320_50/
-obj-$(CONFIG_TOUCHSCREEN_MTK_GT9271TB_HOTKNOT) += GT9271TB_hotknot/
-obj-$(CONFIG_TOUCHSCREEN_UNIFIED_DRIVER_4) += unified_driver_4/
\ No newline at end of file
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT1151TB) += GT1151TB/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT910) += GT910/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XXTB_HOTKNOT) += GT9XXTB_hotknot/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT) += GT9XX_hotknot/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT_PHONE) += GT9XX_hotknot_phone/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT928) += GT928/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT9XX_HOTKNOT_SCP) += GT9XX_hotknot_scp/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT911) += GT911/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_FT5X0X) += ft5x0x/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_SYNAPTICS_3320_50) += synaptics_3320_50/
+#obj-$(CONFIG_TOUCHSCREEN_MTK_GT9271TB_HOTKNOT) += GT9271TB_hotknot/
+#obj-$(CONFIG_TOUCHSCREEN_UNIFIED_DRIVER_4) += unified_driver_4/
diff -Naur old/kernel-3.18/drivers/misc/mediatek/accelerometer/lsm6ds3-new/lsm6ds3-int.c new/kernel-3.18/drivers/misc/mediatek/accelerometer/lsm6ds3-new/lsm6ds3-int.c
--- old/kernel-3.18/drivers/misc/mediatek/accelerometer/lsm6ds3-new/lsm6ds3-int.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/accelerometer/lsm6ds3-new/lsm6ds3-int.c 2018-11-21 15:37:47.793687858 +0800
@@ -457,8 +457,9 @@
num = 0;
buf[num++] = reg_addr;
for (idx = 0; idx < len; idx++)
- buf[num++] = data[idx];
- mutex_lock(&lsm6ds3_mutex);
+ buf[num++] = data[idx];
+
+ mutex_lock(&lsm6ds3_mutex);
ret = i2c_master_send(client, buf, num);
mutex_unlock(&lsm6ds3_mutex);
if (ret < 0) {
diff -Naur old/kernel-3.18/drivers/misc/mediatek/base/power/Makefile new/kernel-3.18/drivers/misc/mediatek/base/power/Makefile
--- old/kernel-3.18/drivers/misc/mediatek/base/power/Makefile 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/base/power/Makefile 2018-11-21 21:58:23.954399265 +0800
@@ -36,7 +36,7 @@
obj-$(CONFIG_ARCH_MT8127) += $(subst ",,$(CONFIG_MTK_PLATFORM))/
obj-$(CONFIG_MACH_MT2701) += $(subst ",,$(CONFIG_MTK_PLATFORM))/
obj-$(CONFIG_ARCH_MT7623) += $(subst ",,$(CONFIG_MTK_PLATFORM))/
-obj-$(CONFIG_MT2701_DCM) += mt2701_dcm/
+#obj-$(CONFIG_MT2701_DCM) += mt2701_dcm/
obj-$(CONFIG_MACH_MT2701) += hps/v1/
obj-$(CONFIG_ARCH_MT7623) += hps/v1/
obj-$(CONFIG_ARCH_MT8127) += hps/v1/
diff -Naur old/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_ocp.c new/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_ocp.c
--- old/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_ocp.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_ocp.c 2018-11-21 15:39:52.921344501 +0800
@@ -635,10 +635,10 @@
*Leakage = 127999;
-if (ocp_opt.ocp_cluster2_enable == 0)
- goto Label;
-if ((cpu_online(8) == 0) && (cpu_online(9) == 0))
- goto Label;
+ if (ocp_opt.ocp_cluster2_enable == 0)
+ goto Label;
+ if ((cpu_online(8) == 0) && (cpu_online(9) == 0))
+ goto Label;
/* CapTotAct: Q8.12 -> integer */
spin_lock(&reset_lock);
@@ -756,15 +756,15 @@
int BigOCPMAFAct(unsigned int *CapMAFAct)
{
-if (ocp_read_field(OCPAPBSTATUS01, 0:0) == 1)
- *CapMAFAct = (ocp_read_field(OCPAPBSTATUS03, 18:0) * 1000) >> 12; /* mA*/
-else
- *CapMAFAct = 0x0;
+ if (ocp_read_field(OCPAPBSTATUS01, 0:0) == 1)
+ *CapMAFAct = (ocp_read_field(OCPAPBSTATUS03, 18:0) * 1000) >> 12; /* mA*/
+ else
+ *CapMAFAct = 0x0;
if (HW_API_DEBUG_ON)
ocp_info("ocp: big CapMAFAct=%d\n", *CapMAFAct);
-return 0;
+ return 0;
}
@@ -2797,39 +2797,39 @@
static int ocp_cluster0_capture_proc_show(struct seq_file *m, void *v)
{
-seq_printf(m, "Cluster 0 OCP flag = %d\n", ocp_opt.ocp_cluster0_flag);
-seq_printf(m, "Cluster 0 OCP Enable = %d\n", ocp_opt.ocp_cluster0_enable);
-seq_puts(m, "Cluster 0 capture function:\n");
-seq_printf(m, "IntEnDis = 0x%x\n", ocp_status[0].IntEnDis);
-seq_printf(m, "IRQ1 = 0x%x\n", ocp_status[0].IRQ1);
-seq_printf(m, "IRQ0 = 0x%x\n", ocp_status[0].IRQ0);
-seq_printf(m, "CapToLkg = %d mA\n", ocp_status[0].CapToLkg);
-seq_printf(m, "CapOCCGPct = %d %%\n", ocp_status[0].CapOCCGPct);
-seq_printf(m, "CaptureValid = %d\n", ocp_status[0].CaptureValid);
-seq_printf(m, "CapTotAct = %d mA\n", ocp_status[0].CapTotAct);
-seq_printf(m, "CapMAFAct = %d mA\n", ocp_status[0].CapMAFAct);
-seq_printf(m, "AvgPwrValid = %d\n", ocp_status[0].CGAvgValid);
-seq_printf(m, "AvgAct = %llu mA\n", ocp_status[0].CGAvg);
-seq_printf(m, "AvgLkg = %llu mA\n", ocp_status[0].AvgLkg);
-seq_printf(m, "TopRawLkg = %d\n", ocp_status[0].TopRawLkg);
-seq_printf(m, "CPU0RawLkg = %d\n", ocp_status[0].CPU0RawLkg);
-seq_printf(m, "CPU1RawLkg = %d\n", ocp_status[0].CPU1RawLkg);
-seq_printf(m, "CPU2RawLkg = %d\n", ocp_status[0].CPU2RawLkg);
-seq_printf(m, "CPU3RawLkg = %d\n", ocp_status[0].CPU3RawLkg);
-
-if (Reg_Debug_on) {
- int i;
-
- for (i = 0; i < 524 ; i += 4)
- seq_printf(m, "Addr: 0x%x = %x\n", (MP0_OCP_IRQSTATE + i), ocp_read(MP0_OCP_IRQSTATE + i));
-
- seq_printf(m, "Addr: 0x102217FC = %x\n", ocp_read(MP0_OCP_GENERAL_CTRL));
- seq_printf(m, "Addr: 0x10221250 = %x\n", ocp_read(MP0_OCP_DBG_ACT_L));
- seq_printf(m, "Addr: 0x10221254 = %x\n", ocp_read(MP0_OCP_DBG_ACT_H));
- seq_printf(m, "Addr: 0x10221260 = %x\n", ocp_read(MP0_OCP_DBG_LKG_L));
- seq_printf(m, "Addr: 0x10221264 = %x\n", ocp_read(MP0_OCP_DBG_LKG_H));
-}
-return 0;
+ seq_printf(m, "Cluster 0 OCP flag = %d\n", ocp_opt.ocp_cluster0_flag);
+ seq_printf(m, "Cluster 0 OCP Enable = %d\n", ocp_opt.ocp_cluster0_enable);
+ seq_puts(m, "Cluster 0 capture function:\n");
+ seq_printf(m, "IntEnDis = 0x%x\n", ocp_status[0].IntEnDis);
+ seq_printf(m, "IRQ1 = 0x%x\n", ocp_status[0].IRQ1);
+ seq_printf(m, "IRQ0 = 0x%x\n", ocp_status[0].IRQ0);
+ seq_printf(m, "CapToLkg = %d mA\n", ocp_status[0].CapToLkg);
+ seq_printf(m, "CapOCCGPct = %d %%\n", ocp_status[0].CapOCCGPct);
+ seq_printf(m, "CaptureValid = %d\n", ocp_status[0].CaptureValid);
+ seq_printf(m, "CapTotAct = %d mA\n", ocp_status[0].CapTotAct);
+ seq_printf(m, "CapMAFAct = %d mA\n", ocp_status[0].CapMAFAct);
+ seq_printf(m, "AvgPwrValid = %d\n", ocp_status[0].CGAvgValid);
+ seq_printf(m, "AvgAct = %llu mA\n", ocp_status[0].CGAvg);
+ seq_printf(m, "AvgLkg = %llu mA\n", ocp_status[0].AvgLkg);
+ seq_printf(m, "TopRawLkg = %d\n", ocp_status[0].TopRawLkg);
+ seq_printf(m, "CPU0RawLkg = %d\n", ocp_status[0].CPU0RawLkg);
+ seq_printf(m, "CPU1RawLkg = %d\n", ocp_status[0].CPU1RawLkg);
+ seq_printf(m, "CPU2RawLkg = %d\n", ocp_status[0].CPU2RawLkg);
+ seq_printf(m, "CPU3RawLkg = %d\n", ocp_status[0].CPU3RawLkg);
+
+ if (Reg_Debug_on) {
+ int i;
+
+ for (i = 0; i < 524 ; i += 4)
+ seq_printf(m, "Addr: 0x%x = %x\n", (MP0_OCP_IRQSTATE + i), ocp_read(MP0_OCP_IRQSTATE + i));
+
+ seq_printf(m, "Addr: 0x102217FC = %x\n", ocp_read(MP0_OCP_GENERAL_CTRL));
+ seq_printf(m, "Addr: 0x10221250 = %x\n", ocp_read(MP0_OCP_DBG_ACT_L));
+ seq_printf(m, "Addr: 0x10221254 = %x\n", ocp_read(MP0_OCP_DBG_ACT_H));
+ seq_printf(m, "Addr: 0x10221260 = %x\n", ocp_read(MP0_OCP_DBG_LKG_L));
+ seq_printf(m, "Addr: 0x10221264 = %x\n", ocp_read(MP0_OCP_DBG_LKG_H));
+ }
+ return 0;
}
static ssize_t ocp_cluster0_capture_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *pos)
@@ -2946,38 +2946,38 @@
static int ocp_cluster1_capture_proc_show(struct seq_file *m, void *v)
{
-seq_printf(m, "Cluster 1 OCP flag = %d\n", ocp_opt.ocp_cluster1_flag);
-seq_printf(m, "Cluster 1 OCP Enable = %d\n", ocp_opt.ocp_cluster1_enable);
-seq_puts(m, "Cluster 1 capture function:\n");
-seq_printf(m, "IntEnDis = 0x%x\n", ocp_status[1].IntEnDis);
-seq_printf(m, "IRQ1 = 0x%x\n", ocp_status[1].IRQ1);
-seq_printf(m, "IRQ0 = 0x%x\n", ocp_status[1].IRQ0);
-seq_printf(m, "CapToLkg = %d mA\n", ocp_status[1].CapToLkg);
-seq_printf(m, "CapOCCGPct = %d %%\n", ocp_status[1].CapOCCGPct);
-seq_printf(m, "CaptureValid = %d\n", ocp_status[1].CaptureValid);
-seq_printf(m, "CapTotAct = %d mA\n", ocp_status[1].CapTotAct);
-seq_printf(m, "CapMAFAct = %d mA\n", ocp_status[1].CapMAFAct);
-seq_printf(m, "AvgPwrValid = %d\n", ocp_status[1].CGAvgValid);
-seq_printf(m, "AvgAct = %llu mA\n", ocp_status[1].CGAvg);
-seq_printf(m, "AvgLkg = %llu mA\n", ocp_status[1].AvgLkg);
-seq_printf(m, "TopRawLkg = %d\n", ocp_status[1].TopRawLkg);
-seq_printf(m, "CPU0RawLkg = %d\n", ocp_status[1].CPU0RawLkg);
-seq_printf(m, "CPU1RawLkg = %d\n", ocp_status[1].CPU1RawLkg);
-seq_printf(m, "CPU2RawLkg = %d\n", ocp_status[1].CPU2RawLkg);
-seq_printf(m, "CPU3RawLkg = %d\n", ocp_status[1].CPU3RawLkg);
-
-if (Reg_Debug_on) {
- int i;
-
- for (i = 0; i < 524; i += 4)
- seq_printf(m, "Addr: 0x%x = %x\n", (MP1_OCP_IRQSTATE + i), ocp_read(MP1_OCP_IRQSTATE + i));
-
- seq_printf(m, "Addr: 0x102237FC = %x\n", ocp_read(MP1_OCP_GENERAL_CTRL));
- seq_printf(m, "Addr: 0x10223250 = %x\n", ocp_read(MP1_OCP_DBG_ACT_L));
- seq_printf(m, "Addr: 0x10223254 = %x\n", ocp_read(MP1_OCP_DBG_ACT_H));
- seq_printf(m, "Addr: 0x10223260 = %x\n", ocp_read(MP1_OCP_DBG_LKG_L));
- seq_printf(m, "Addr: 0x10223264 = %x\n", ocp_read(MP1_OCP_DBG_LKG_H));
-}
+ seq_printf(m, "Cluster 1 OCP flag = %d\n", ocp_opt.ocp_cluster1_flag);
+ seq_printf(m, "Cluster 1 OCP Enable = %d\n", ocp_opt.ocp_cluster1_enable);
+ seq_puts(m, "Cluster 1 capture function:\n");
+ seq_printf(m, "IntEnDis = 0x%x\n", ocp_status[1].IntEnDis);
+ seq_printf(m, "IRQ1 = 0x%x\n", ocp_status[1].IRQ1);
+ seq_printf(m, "IRQ0 = 0x%x\n", ocp_status[1].IRQ0);
+ seq_printf(m, "CapToLkg = %d mA\n", ocp_status[1].CapToLkg);
+ seq_printf(m, "CapOCCGPct = %d %%\n", ocp_status[1].CapOCCGPct);
+ seq_printf(m, "CaptureValid = %d\n", ocp_status[1].CaptureValid);
+ seq_printf(m, "CapTotAct = %d mA\n", ocp_status[1].CapTotAct);
+ seq_printf(m, "CapMAFAct = %d mA\n", ocp_status[1].CapMAFAct);
+ seq_printf(m, "AvgPwrValid = %d\n", ocp_status[1].CGAvgValid);
+ seq_printf(m, "AvgAct = %llu mA\n", ocp_status[1].CGAvg);
+ seq_printf(m, "AvgLkg = %llu mA\n", ocp_status[1].AvgLkg);
+ seq_printf(m, "TopRawLkg = %d\n", ocp_status[1].TopRawLkg);
+ seq_printf(m, "CPU0RawLkg = %d\n", ocp_status[1].CPU0RawLkg);
+ seq_printf(m, "CPU1RawLkg = %d\n", ocp_status[1].CPU1RawLkg);
+ seq_printf(m, "CPU2RawLkg = %d\n", ocp_status[1].CPU2RawLkg);
+ seq_printf(m, "CPU3RawLkg = %d\n", ocp_status[1].CPU3RawLkg);
+
+ if (Reg_Debug_on) {
+ int i;
+
+ for (i = 0; i < 524; i += 4)
+ seq_printf(m, "Addr: 0x%x = %x\n", (MP1_OCP_IRQSTATE + i), ocp_read(MP1_OCP_IRQSTATE + i));
+
+ seq_printf(m, "Addr: 0x102237FC = %x\n", ocp_read(MP1_OCP_GENERAL_CTRL));
+ seq_printf(m, "Addr: 0x10223250 = %x\n", ocp_read(MP1_OCP_DBG_ACT_L));
+ seq_printf(m, "Addr: 0x10223254 = %x\n", ocp_read(MP1_OCP_DBG_ACT_H));
+ seq_printf(m, "Addr: 0x10223260 = %x\n", ocp_read(MP1_OCP_DBG_LKG_L));
+ seq_printf(m, "Addr: 0x10223264 = %x\n", ocp_read(MP1_OCP_DBG_LKG_H));
+ }
return 0;
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/base/power/ppm_v1/inc/mt_ppm_internal.h new/kernel-3.18/drivers/misc/mediatek/base/power/ppm_v1/inc/mt_ppm_internal.h
--- old/kernel-3.18/drivers/misc/mediatek/base/power/ppm_v1/inc/mt_ppm_internal.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/base/power/ppm_v1/inc/mt_ppm_internal.h 2018-11-21 15:41:44.361048548 +0800
@@ -31,7 +31,7 @@
#include <linux/sched.h>
#include "mach/mt_ppm_api.h"
-#include "mt_ppm_platform.h"
+#include "../src/mach/mt6797/mt_ppm_platform.h"
/*==============================================================*/
/* Definitions */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/base/power/spm_v2/mt_idle.c new/kernel-3.18/drivers/misc/mediatek/base/power/spm_v2/mt_idle.c
--- old/kernel-3.18/drivers/misc/mediatek/base/power/spm_v2/mt_idle.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/base/power/spm_v2/mt_idle.c 2018-11-21 15:46:33.808310880 +0800
@@ -2367,7 +2367,7 @@
mcidle_time_critera = param;
return count;
- } else if (!kstrtoint(cmd_buf, 10, ¶m) == 1) {
+ } else if (!kstrtoint(cmd_buf, 10, ¶m)) {
idle_switch[IDLE_TYPE_MC] = param;
return count;
@@ -2497,7 +2497,7 @@
dpidle_dump_log = param;
return count;
- } else if (!kstrtoint(cmd_buf, 10, ¶m) == 1) {
+ } else if (!kstrtoint(cmd_buf, 10, ¶m)) {
idle_switch[IDLE_TYPE_DP] = param;
return count;
@@ -2636,7 +2636,7 @@
idle_dbg("sodi3_flags = 0x%x\n", sodi3_flags);
}
return count;
- } else if (!kstrtoint(cmd_buf, 10, ¶m) == 1) {
+ } else if (!kstrtoint(cmd_buf, 10, ¶m)) {
idle_switch[IDLE_TYPE_SO3] = param;
return count;
}
@@ -2762,7 +2762,7 @@
idle_dbg("sodi_flags = 0x%x\n", sodi_flags);
}
return count;
- } else if (!kstrtoint(cmd_buf, 10, ¶m) == 1) {
+ } else if (!kstrtoint(cmd_buf, 10, ¶m)) {
idle_switch[IDLE_TYPE_SO] = param;
return count;
}
@@ -2844,7 +2844,7 @@
disable_slidle_by_bit(param);
return count;
- } else if (!kstrtoint(userbuf, 10, ¶m) == 1) {
+ } else if (!kstrtoint(userbuf, 10, ¶m)) {
idle_switch[IDLE_TYPE_SL] = param;
return count;
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_fdvt.c new/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_fdvt.c
--- old/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_fdvt.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_fdvt.c 2018-11-21 15:48:06.644081161 +0800
@@ -882,7 +882,7 @@
err = compat_FD_get_register_data(data32, data);
if (err)
return err;
- ret = file->f_op->unlocked_ioctl(file, FDVT_IOC_G_WAITIRQ, (unsigned long)data);
+ ret = file->f_op->unlocked_ioctl(file, FDVT_IOC_G_WAITIRQ, (unsigned long)data);
err = compat_FD_put_register_data(data32, data);
return ret ? ret : err;
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_isp.c new/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_isp.c
--- old/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_isp.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/cameraisp/src/mt6797/camera_isp.c 2018-11-21 15:47:27.500177700 +0800
@@ -7261,7 +7261,7 @@
LOG_ERR("get module fail\n");
Ret = -EFAULT;
} else {
- if (copy_to_user((void *)Param, &g_DmaErr_CAM[DebugFlag[0]], sizeof(MUINT32)*nDMA_ERR) != 0) {
+ if (copy_to_user((void *)Param, (void *)&g_DmaErr_CAM[DebugFlag[0]], sizeof(MUINT32)*nDMA_ERR) != 0) {
LOG_ERR("get dma_err fail\n");
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/cmdq/v2/cmdq_def.h new/kernel-3.18/drivers/misc/mediatek/cmdq/v2/cmdq_def.h
--- old/kernel-3.18/drivers/misc/mediatek/cmdq/v2/cmdq_def.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/cmdq/v2/cmdq_def.h 2018-11-21 15:49:07.199932650 +0800
@@ -22,7 +22,7 @@
#ifdef CMDQ_COMMON_ENG_SUPPORT
#include "cmdq_engine_common.h"
#else
-#include "cmdq_engine.h"
+#include "mt6797/cmdq_engine.h"
#endif
#define CMDQ_SPECIAL_SUBSYS_ADDR (99)
diff -Naur old/kernel-3.18/drivers/misc/mediatek/connectivity/common/common_main/core/stp_core.c new/kernel-3.18/drivers/misc/mediatek/connectivity/common/common_main/core/stp_core.c
--- old/kernel-3.18/drivers/misc/mediatek/connectivity/common/common_main/core/stp_core.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/connectivity/common/common_main/core/stp_core.c 2018-11-21 15:50:51.867678057 +0800
@@ -2080,19 +2080,19 @@
stp_core_ctx.parser.nak = 0; /* disable NAK */
else
stp_core_ctx.parser.nak = (*p_data & 0x80) >> 7;
- stp_core_ctx.parser.type = (*p_data & 0x70) >> 4;
- stp_core_ctx.parser.length = (*p_data & 0x0f) << 8;
- stp_core_ctx.rx_buf[1] = *p_data;
- /* Geoge FIXME: WHY comment the following line? */
- /*stp_core_ctx.rx_counter++; */
- if (stp_core_ctx.parser.nak)
- STP_ERR_FUNC("MTKSTP_NAK TRUE: mtk_wcn_stp_parser_data, buff = %x\n", *p_data);
+ stp_core_ctx.parser.type = (*p_data & 0x70) >> 4;
+ stp_core_ctx.parser.length = (*p_data & 0x0f) << 8;
+ stp_core_ctx.rx_buf[1] = *p_data;
+ /* Geoge FIXME: WHY comment the following line? */
+ /*stp_core_ctx.rx_counter++; */
+ if (stp_core_ctx.parser.nak)
+ STP_ERR_FUNC("MTKSTP_NAK TRUE: mtk_wcn_stp_parser_data, buff = %x\n", *p_data);
- if (stp_core_ctx.parser.type < MTKSTP_MAX_TASK_NUM)
- stp_change_rx_state(MTKSTP_LENGTH);
- else
- stp_change_rx_state(MTKSTP_SYNC);
- break;
+ if (stp_core_ctx.parser.type < MTKSTP_MAX_TASK_NUM)
+ stp_change_rx_state(MTKSTP_LENGTH);
+ else
+ stp_change_rx_state(MTKSTP_SYNC);
+ break;
case MTKSTP_LENGTH:
/* (*sys_dbg_print)("MTKSTP_LENGTH : mtk_wcn_stp_parser_data, buff = %x", *p_data); */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/mgmt/scan.c new/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/mgmt/scan.c
--- old/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/mgmt/scan.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/mgmt/scan.c 2018-11-21 15:53:20.107059789 +0800
@@ -1927,7 +1927,7 @@
} else
ucindex = 0;
- return ucindex;
+ return ucindex;
}
/*----------------------------------------------------------------------------*/
diff -Naur old/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/os/linux/hif/ahb_sdioLike/sdio_bus_driver.c new/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/os/linux/hif/ahb_sdioLike/sdio_bus_driver.c
--- old/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/os/linux/hif/ahb_sdioLike/sdio_bus_driver.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/connectivity/wlan/gen3/os/linux/hif/ahb_sdioLike/sdio_bus_driver.c 2018-11-21 15:52:23.527400740 +0800
@@ -350,9 +350,9 @@
reg = sdio_f0_readb(func, SDIO_CCCR_IOEx, &ret);
if (ret)
- goto err;
+ goto err;
- reg &= ~(1 << func->num);
+ reg &= ~(1 << func->num);
sdio_f0_writeb(func, reg, SDIO_CCCR_IOEx, &ret);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/eccci/port_ctlmsg.c new/kernel-3.18/drivers/misc/mediatek/eccci/port_ctlmsg.c
--- old/kernel-3.18/drivers/misc/mediatek/eccci/port_ctlmsg.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/eccci/port_ctlmsg.c 2018-11-21 15:54:18.830726353 +0800
@@ -109,8 +109,8 @@
case C2K_STATUS_QUERY_MSG:
case C2K_CCISM_SHM_INIT_ACK:
case C2K_FLOW_CTRL_MSG:
- if (port->md_id == MD_SYS3)
- ret = c2k_msg_handler(port, skb);
+ if (port->md_id == MD_SYS3)
+ ret = c2k_msg_handler(port, skb);
break;
default:
CCCI_ERROR_LOG(port->md_id, KERN, "receive unknown data from CCCI_CONTROL_RX = %d\n", ccci_h->data[1]);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_debug.c new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_debug.c
--- old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_debug.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_debug.c 2018-11-21 15:55:34.946321518 +0800
@@ -28,7 +28,7 @@
#include "ddp_reg.h"
#include "ddp_info.h"
#include "extd_hdmi.h"
-#include "external_display.h"
+#include "mt6797/external_display.h"
/*extern DDP_MODULE_DRIVER *ddp_modules_driver[DISP_MODULE_NUM];*/
/* --------------------------------------------------------------------------- */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_factory.c new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_factory.c
--- old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_factory.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_factory.c 2018-11-21 15:57:46.065685155 +0800
@@ -17,7 +17,7 @@
#include "extd_log.h"
#include "extd_factory.h"
#include "extd_info.h"
-#include "external_display.h"
+#include "mt6797/external_display.h"
#include "dpi_dvt_test.h"
diff -Naur old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_hdmi.c new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_hdmi.c
--- old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_hdmi.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_hdmi.c 2018-11-21 15:56:28.162054707 +0800
@@ -73,13 +73,13 @@
#include "disp_session.h"
-#include "extd_platform.h"
+#include "mt6797/extd_platform.h"
#include "extd_hdmi.h"
#include "extd_factory.h"
#include "extd_log.h"
#include "extd_utils.h"
#include "extd_hdmi_types.h"
-#include "external_display.h"
+#include "mt6797/external_display.h"
#ifdef CONFIG_MTK_SMARTBOOK_SUPPORT
#include <linux/sbsuspend.h>
diff -Naur old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_multi_control.c new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_multi_control.c
--- old/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_multi_control.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/ext_disp/extd_multi_control.c 2018-11-21 15:57:18.269814331 +0800
@@ -16,8 +16,8 @@
#include "extd_multi_control.h"
#include "disp_drv_platform.h"
-#include "external_display.h"
-#include "extd_platform.h"
+#include "mt6797/external_display.h"
+#include "mt6797/extd_platform.h"
#include "extd_log.h"
#include "mtk_ovl.h"
diff -Naur old/kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6797/kd_sensorlist.c new/kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6797/kd_sensorlist.c
--- old/kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6797/kd_sensorlist.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6797/kd_sensorlist.c 2018-11-21 16:00:53.996877624 +0800
@@ -3946,49 +3946,49 @@
bool _hwPowerOn(PowerType type, int powerVolt)
{
- bool ret = FALSE;
- struct regulator *reg = NULL;
+ bool ret = FALSE;
+ struct regulator *reg = NULL;
- PK_DBG("[_hwPowerOn]powertype:%d powerId:%d\n", type, powerVolt);
- if (type == AVDD) {
- reg = regVCAMA;
- } else if (type == DVDD) {
- reg = regVCAMD;
- } else if (type == DOVDD) {
- reg = regVCAMIO;
- } else if (type == AFVDD) {
- reg = regVCAMAF;
- }else if (type == SUB_AVDD) {
- reg = regSubVCAMA;
- } else if (type == SUB_DVDD) {
- reg = regSubVCAMD;
- } else if (type == SUB_DOVDD) {
- reg = regSubVCAMIO;
- } else if (type == MAIN2_AVDD) {
- reg = regMain2VCAMA;
- } else if (type == MAIN2_DVDD) {
- reg = regMain2VCAMD;
- } else if (type == MAIN2_DOVDD) {
- reg = regMain2VCAMIO;
- }else
- return ret;
+ PK_DBG("[_hwPowerOn]powertype:%d powerId:%d\n", type, powerVolt);
+ if (type == AVDD) {
+ reg = regVCAMA;
+ } else if (type == DVDD) {
+ reg = regVCAMD;
+ } else if (type == DOVDD) {
+ reg = regVCAMIO;
+ } else if (type == AFVDD) {
+ reg = regVCAMAF;
+ }else if (type == SUB_AVDD) {
+ reg = regSubVCAMA;
+ } else if (type == SUB_DVDD) {
+ reg = regSubVCAMD;
+ } else if (type == SUB_DOVDD) {
+ reg = regSubVCAMIO;
+ } else if (type == MAIN2_AVDD) {
+ reg = regMain2VCAMA;
+ } else if (type == MAIN2_DVDD) {
+ reg = regMain2VCAMD;
+ } else if (type == MAIN2_DOVDD) {
+ reg = regMain2VCAMIO;
+ }else
+ return ret;
- if (!IS_ERR(reg)) {
- if (regulator_set_voltage(reg , powerVolt, powerVolt) != 0) {
- PK_DBG("[_hwPowerOn]fail to regulator_set_voltage, powertype:%d powerId:%d\n", type, powerVolt);
- return ret;
- }
- if (regulator_enable(reg) != 0) {
- PK_DBG("[_hwPowerOn]fail to regulator_enable, powertype:%d powerId:%d\n", type, powerVolt);
- return ret;
- }
- ret = true;
- } else {
- PK_ERR("[_hwPowerOn]IS_ERR_OR_NULL powertype:%d reg %p\n", type,reg);
- return ret;
+ if (!IS_ERR(reg)) {
+ if (regulator_set_voltage(reg , powerVolt, powerVolt) != 0) {
+ PK_DBG("[_hwPowerOn]fail to regulator_set_voltage, powertype:%d powerId:%d\n", type, powerVolt);
+ return ret;
}
+ if (regulator_enable(reg) != 0) {
+ PK_DBG("[_hwPowerOn]fail to regulator_enable, powertype:%d powerId:%d\n", type, powerVolt);
+ return ret;
+ }
+ ret = true;
+ } else {
+ PK_ERR("[_hwPowerOn]IS_ERR_OR_NULL powertype:%d reg %p\n", type,reg);
+ return ret;
+ }
- return ret;
+ return ret;
}
bool _hwPowerDown(PowerType type)
diff -Naur old/kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6797/include/mach/mt_thermal.h new/kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6797/include/mach/mt_thermal.h
--- old/kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6797/include/mach/mt_thermal.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6797/include/mach/mt_thermal.h 2018-11-21 15:35:57.590002401 +0800
@@ -24,7 +24,7 @@
#include "mt-plat/sync_write.h"
#include "mtk_thermal_typedefs.h"
-#include "mt_gpufreq.h"
+#include "../../../../base/power/mt6797/mt_gpufreq.h"
/*
Bank0 : BIG (TS_MCU1)
diff -Naur old/kernel-3.18/drivers/misc/mediatek/include/mt-plat/sd_misc.h new/kernel-3.18/drivers/misc/mediatek/include/mt-plat/sd_misc.h
--- old/kernel-3.18/drivers/misc/mediatek/include/mt-plat/sd_misc.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/include/mt-plat/sd_misc.h 2018-11-21 18:34:18.242205923 +0800
@@ -23,7 +23,7 @@
#include <linux/mmc/sd.h>
#endif
-#include <mt_sd.h>
+#include "../../../../mmc/host/mediatek/mt6797/mt_sd.h"
#ifndef FPGA_PLATFORM
extern void msdc_set_driving(struct msdc_host *host, struct msdc_hw *hw, bool sd_18);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_pgtable.h new/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_pgtable.h
--- old/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_pgtable.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_pgtable.h 2018-11-21 17:15:38.948969807 +0800
@@ -14,7 +14,7 @@
#ifndef __M4U_PGTABLE_H__
#define __M4U_PGTABLE_H__
-#include "m4u_reg.h"
+#include "../mt6797/m4u_reg.h"
/* ================================================================= */
/* 2 level pagetable: pgd -> pte */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_v2.h new/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_v2.h
--- old/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_v2.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/m4u/2.0/m4u_v2.h 2018-11-21 17:14:55.737206622 +0800
@@ -15,7 +15,7 @@
#define __M4U_V2_H__
#include <linux/ioctl.h>
#include <linux/fs.h>
-#include "m4u_port.h"
+#include "../mt6797/m4u_port.h"
#include <linux/scatterlist.h>
typedef int M4U_PORT_ID;
diff -Naur old/kernel-3.18/drivers/misc/mediatek/m4u/mt6797/m4u_hw.c new/kernel-3.18/drivers/misc/mediatek/m4u/mt6797/m4u_hw.c
--- old/kernel-3.18/drivers/misc/mediatek/m4u/mt6797/m4u_hw.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/m4u/mt6797/m4u_hw.c 2018-11-21 17:18:36.932040551 +0800
@@ -2193,10 +2193,10 @@
if (irq == gM4uDev->irq_num[0]) {
m4u_base = gM4UBaseAddr[0];
m4u_index = 0;
- } else if (irq == gM4uDev->irq_num[1]) {
+ }/* else if (irq == gM4uDev->irq_num[1]) {
m4u_base = gM4UBaseAddr[1];
m4u_index = 1;
- } else {
+ } */else {
M4UMSG("MTK_M4U_isr(), Invalid irq number %d\n", irq);
return -1;
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/Makefile new/kernel-3.18/drivers/misc/mediatek/Makefile
--- old/kernel-3.18/drivers/misc/mediatek/Makefile 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/Makefile 2018-11-21 21:58:48.762348658 +0800
@@ -85,7 +85,7 @@
obj-$(CONFIG_MTK_LEDS) += leds/
obj-$(CONFIG_CUSTOM_KERNEL_CHARGEPUMP) += chargepump/
obj-$(CONFIG_MTK_VIBRATOR) += vibrator/
-obj-$(CONFIG_MTK_SM100) += tc1_interface/vib_drv/
+#obj-$(CONFIG_MTK_SM100) += tc1_interface/vib_drv/
obj-$(CONFIG_MTK_ACCDET) += accdet/
obj-$(CONFIG_MTK_ECCCI_C2K) += c2k_usb/
obj-y += irtx/
diff -Naur old/kernel-3.18/drivers/misc/mediatek/mu3d/hal/mu3d_hal_hw.h new/kernel-3.18/drivers/misc/mediatek/mu3d/hal/mu3d_hal_hw.h
--- old/kernel-3.18/drivers/misc/mediatek/mu3d/hal/mu3d_hal_hw.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/mu3d/hal/mu3d_hal_hw.h 2018-11-21 17:34:16.443773909 +0800
@@ -158,7 +158,7 @@
#include "ssusb_usb3_sys_csr_c_header.h"
#include "ssusb_usb2_csr_c_header.h"
#include "ssusb_sifslv_ippc_c_header.h"
-#include "mtk-phy.h"
+#include "../mu3phy/mtk-phy.h"
#ifdef EXT_VBUS_DET
#define FPGA_REG 0xf0008098
diff -Naur old/kernel-3.18/drivers/misc/mediatek/performance/perfmgr/mt6797/perfmgr_boost.c new/kernel-3.18/drivers/misc/mediatek/performance/perfmgr/mt6797/perfmgr_boost.c
--- old/kernel-3.18/drivers/misc/mediatek/performance/perfmgr/mt6797/perfmgr_boost.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/performance/perfmgr/mt6797/perfmgr_boost.c 2018-11-21 17:35:05.555564700 +0800
@@ -175,7 +175,7 @@
else /* min */
perfmgr_scn_list[FORCELIMIT_TYPE_VR].data[i/2].min_core = data;
- i++;
+ i++;
}
perfmgr_forcelimit_cpu_core(FORCELIMIT_TYPE_VR, CLUSTER_NUM, perfmgr_scn_list[FORCELIMIT_TYPE_VR].data);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/power/mt6797/pmic.c new/kernel-3.18/drivers/misc/mediatek/power/mt6797/pmic.c
--- old/kernel-3.18/drivers/misc/mediatek/power/mt6797/pmic.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/power/mt6797/pmic.c 2018-11-21 17:36:00.543331202 +0800
@@ -167,7 +167,7 @@
int pmic_force_vcore_pwm(bool enable)
{
- int val, val1, val2, ret;
+ int val=0, val1=0, val2=0, ret=0;
ret = pmic_read_interface_nolock(0x44e, &val, 0xFFFF, 0x0);
ret = pmic_read_interface_nolock(0x450, &val1, 0xFFFF, 0x0);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/scp/mt6797/scp_excep.c new/kernel-3.18/drivers/misc/mediatek/scp/mt6797/scp_excep.c
--- old/kernel-3.18/drivers/misc/mediatek/scp/mt6797/scp_excep.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/scp/mt6797/scp_excep.c 2018-11-21 17:36:46.631136046 +0800
@@ -438,26 +438,26 @@
if (type == EXCEP_RUNTIME)
type = (is_scp_ready()) ? EXCEP_RUNTIME : EXCEP_BOOTUP;
- switch (type) {
- case EXCEP_LOAD_FIRMWARE:
- scp_prepare_aed("scp firmware load exception", &aed);
- break;
- case EXCEP_RESET:
- scp_prepare_aed_dump("scp reset exception", &aed);
- break;
- case EXCEP_BOOTUP:
- scp_get_log(1);
- scp_prepare_aed_dump("scp boot exception", &aed);
- break;
- case EXCEP_RUNTIME:
- scp_get_log(1);
- scp_prepare_aed_dump("scp runtime exception", &aed);
- break;
- default:
- scp_get_log(1);
- scp_prepare_aed_dump("scp unknown exception", &aed);
- break;
- }
+ switch (type) {
+ case EXCEP_LOAD_FIRMWARE:
+ scp_prepare_aed("scp firmware load exception", &aed);
+ break;
+ case EXCEP_RESET:
+ scp_prepare_aed_dump("scp reset exception", &aed);
+ break;
+ case EXCEP_BOOTUP:
+ scp_get_log(1);
+ scp_prepare_aed_dump("scp boot exception", &aed);
+ break;
+ case EXCEP_RUNTIME:
+ scp_get_log(1);
+ scp_prepare_aed_dump("scp runtime exception", &aed);
+ break;
+ default:
+ scp_get_log(1);
+ scp_prepare_aed_dump("scp unknown exception", &aed);
+ break;
+ }
pr_debug("%s", aed.detail);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart.h new/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart.h
--- old/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart.h 2018-11-21 17:37:48.602874340 +0800
@@ -18,7 +18,7 @@
#include <mach/mt_reg_base.h>
#endif
#include <mt-plat/sync_write.h>
-#include "platform_uart.h"
+#include "../mt6797/platform_uart.h"
/*---------------------------------------------------------------------------*/
#if defined(ENABLE_VFIFO_DEBUG)
diff -Naur old/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart_intf.h new/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart_intf.h
--- old/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart_intf.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/uart/include/mtk_uart_intf.h 2018-11-21 17:38:21.150737187 +0800
@@ -14,7 +14,7 @@
#ifndef __MTK_UART_INTF_H__
#define __MTK_UART_INTF_H__
-#include "platform_uart.h"
+#include "../mt6797/platform_uart.h"
#include <linux/platform_device.h>
/*---------------------------------------------------------------------------*/
/* fiq debugger */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/usb11/mt6797/musbfsh_core.h new/kernel-3.18/drivers/misc/mediatek/usb11/mt6797/musbfsh_core.h
--- old/kernel-3.18/drivers/misc/mediatek/usb11/mt6797/musbfsh_core.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/usb11/mt6797/musbfsh_core.h 2018-11-21 17:39:11.502525378 +0800
@@ -72,10 +72,10 @@
#define MUSBFSH_HWVERS_1900 0x784
#define MUSBFSH_HWVERS_2000 0x800
-#include "musbfsh.h"
-#include "musbfsh_io.h"
-#include "musbfsh_regs.h"
-#include "musbfsh_debug.h"
+#include "../musbfsh.h"
+#include "../musbfsh_io.h"
+#include "../musbfsh_regs.h"
+#include "../musbfsh_debug.h"
/* HOST ROLE */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/common/mtkfb_fence.h new/kernel-3.18/drivers/misc/mediatek/video/common/mtkfb_fence.h
--- old/kernel-3.18/drivers/misc/mediatek/video/common/mtkfb_fence.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/common/mtkfb_fence.h 2018-11-21 18:29:25.158211623 +0800
@@ -17,7 +17,7 @@
#include <linux/mutex.h>
#include <linux/list.h>
#include "disp_session.h"
-#include "disp_drv_platform.h"
+#include "../../mt6797/videox/disp_drv_platform.h"
#if defined(COMMON_DISP_LOG)
#include "disp_recorder.h"
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/common/rdma10/ddp_rdma.h new/kernel-3.18/drivers/misc/mediatek/video/common/rdma10/ddp_rdma.h
--- old/kernel-3.18/drivers/misc/mediatek/video/common/rdma10/ddp_rdma.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/common/rdma10/ddp_rdma.h 2018-11-21 17:52:41.947152842 +0800
@@ -17,8 +17,8 @@
#include <mt-plat/sync_write.h>
#include <linux/types.h>
/* #include <mach/mt_reg_base.h> */
-#include "ddp_info.h"
-#include "ddp_hal.h"
+#include "../../mt6797/dispsys/ddp_info.h"
+#include "../../mt6797/dispsys/ddp_hal.h"
extern unsigned long long rdma_start_time[];
extern unsigned long long rdma_end_time[];
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/common/wdma10/ddp_wdma.h new/kernel-3.18/drivers/misc/mediatek/video/common/wdma10/ddp_wdma.h
--- old/kernel-3.18/drivers/misc/mediatek/video/common/wdma10/ddp_wdma.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/common/wdma10/ddp_wdma.h 2018-11-21 17:55:15.406518348 +0800
@@ -14,8 +14,8 @@
#ifndef _DDP_WDMA_H_
#define _DDP_WDMA_H_
-#include "ddp_hal.h"
-#include "ddp_info.h"
+#include "../../mt6797/dispsys/ddp_hal.h"
+#include "../../mt6797/dispsys/ddp_info.h"
/* start module */
int wdma_start(DISP_MODULE_ENUM module, void *handle);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_dsi.h new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_dsi.h
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_dsi.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_dsi.h 2018-11-21 18:30:12.410225532 +0800
@@ -18,7 +18,7 @@
#include "lcm_drv.h"
#include "ddp_hal.h"
-#include "fbconfig_kdebug_x.h"
+#include "../videox/fbconfig_kdebug_x.h"
#ifdef __cplusplus
extern "C" {
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ovl.c new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ovl.c
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ovl.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ovl.c 2018-11-21 17:51:36.007425703 +0800
@@ -781,16 +781,17 @@
* if we switch ovl to nonsec BUT its setting is still sec */
for (i = 0; i < ovl_layer_num(module); i++)
ovl_layer_switch(module, i, 0, nonsec_switch_handle);
- /*in fact, dapc/port_sec will be disabled by cmdq */
- cmdqRecSecureEnablePortSecurity(nonsec_switch_handle, (1LL << cmdq_engine));
- /* cmdqRecSecureEnableDAPC(handle, (1LL << cmdq_engine)); */
- /*cmdqRecSetEventToken(nonsec_switch_handle, cmdq_event_nonsec_end);*/
- /*cmdqRecFlushAsync(nonsec_switch_handle);*/
- cmdqRecFlush(nonsec_switch_handle);
- cmdqRecDestroy(nonsec_switch_handle);
- /*cmdqRecWait(handle, cmdq_event_nonsec_end);*/
- DDPMSG("[SVP] switch ovl%d to nonsec\n", ovl_idx);
- }
+
+ /*in fact, dapc/port_sec will be disabled by cmdq */
+ cmdqRecSecureEnablePortSecurity(nonsec_switch_handle, (1LL << cmdq_engine));
+ /* cmdqRecSecureEnableDAPC(handle, (1LL << cmdq_engine)); */
+ /*cmdqRecSetEventToken(nonsec_switch_handle, cmdq_event_nonsec_end);*/
+ /*cmdqRecFlushAsync(nonsec_switch_handle);*/
+ cmdqRecFlush(nonsec_switch_handle);
+ cmdqRecDestroy(nonsec_switch_handle);
+ /*cmdqRecWait(handle, cmdq_event_nonsec_end);*/
+ DDPMSG("[SVP] switch ovl%d to nonsec\n", ovl_idx);
+ }
ovl_is_sec[ovl_idx] = 0;
}
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ufoe.c new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ufoe.c
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ufoe.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/dispsys/ddp_ufoe.c 2018-11-21 17:59:15.497526772 +0800
@@ -168,7 +168,7 @@
if (ufoe_enable) {
if (lr_mode_en == 0) {
- if (compress_ratio == 3) {
+ if (compress_ratio == true/*3*/) {
unsigned int internal_width = width + width % 4;
if (internal_width % 6 != 0) {
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_log.h new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_log.h
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_log.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_log.h 2018-11-21 17:56:49.898127961 +0800
@@ -13,8 +13,8 @@
#ifndef __DISP_DRV_LOG_H__
#define __DISP_DRV_LOG_H__
-#include "display_recorder.h"
-#include "ddp_debug.h"
+#include "../dispsys/display_recorder.h"
+#include "../dispsys/ddp_debug.h"
#if 0 /*set 1 to output log to mobilelog */
#define DISP_LOG_PRINT(level, sub_module, fmt, arg...) \
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_platform.h new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_platform.h
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_platform.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/disp_drv_platform.h 2018-11-21 17:57:27.501972656 +0800
@@ -25,9 +25,9 @@
#include "mt-plat/sync_write.h"
#include "disp_assert_layer.h"
-#include "ddp_hal.h"
-#include "ddp_drv.h"
-#include "ddp_path.h"
+#include "../dispsys/ddp_hal.h"
+#include "../dispsys/ddp_drv.h"
+#include "../dispsys/ddp_path.h"
/* #include <mach/mt6585_pwm.h> */
/* #include <mach/boot.h> */
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/fbconfig_kdebug_x.h new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/fbconfig_kdebug_x.h
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/fbconfig_kdebug_x.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/fbconfig_kdebug_x.h 2018-11-21 17:58:04.793818666 +0800
@@ -15,7 +15,7 @@
#define __FBCONFIG_KDEBUG_H
#include <linux/types.h>
-#include "ddp_ovl.h"
+#include "../dispsys/ddp_ovl.h"
void PanelMaster_Init(void);
void PanelMaster_Deinit(void);
diff -Naur old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/primary_display.h new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/primary_display.h
--- old/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/primary_display.h 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/misc/mediatek/video/mt6797/videox/primary_display.h 2018-11-21 17:42:15.493754603 +0800
@@ -14,8 +14,8 @@
#ifndef _PRIMARY_DISPLAY_H_
#define _PRIMARY_DISPLAY_H_
-#include "ddp_hal.h"
-#include "ddp_manager.h"
+#include "../dispsys/ddp_hal.h"
+#include "../dispsys/ddp_manager.h"
#include <linux/types.h>
#include "disp_session.h"
#include "disp_lcm.h"
diff -Naur old/kernel-3.18/drivers/mtd/mtd_blkdevs.c new/kernel-3.18/drivers/mtd/mtd_blkdevs.c
--- old/kernel-3.18/drivers/mtd/mtd_blkdevs.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/mtd/mtd_blkdevs.c 2018-11-21 18:35:22.834180477 +0800
@@ -97,7 +97,7 @@
if (req->cmd_flags & REQ_DISCARD)
return tr->discard(dev, block, nsect);
- switch(rq_data_dir(req)) {
+ switch(rq_data_dir(req) ? 1 : 0) {
case READ:
for (; nsect > 0; nsect--, block++, buf += tr->blksize)
if (tr->readsect(dev, block, buf))
diff -Naur old/kernel-3.18/drivers/power/mediatek/switch_charging.c new/kernel-3.18/drivers/power/mediatek/switch_charging.c
--- old/kernel-3.18/drivers/power/mediatek/switch_charging.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/power/mediatek/switch_charging.c 2018-11-21 18:36:48.118136952 +0800
@@ -369,7 +369,7 @@
if (BMT_status.charger_type == STANDARD_HOST || BMT_status.charger_type == CHARGING_HOST)
return usb_unlimited;
- return false;
+ return false;
}
void set_usb_current_unlimited(bool enable)
diff -Naur old/kernel-3.18/drivers/staging/android/ion/ion.c new/kernel-3.18/drivers/staging/android/ion/ion.c
--- old/kernel-3.18/drivers/staging/android/ion/ion.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/drivers/staging/android/ion/ion.c 2018-11-21 18:42:41.633868445 +0800
@@ -703,7 +703,7 @@
WARN(1, "%s: invalid handle passed to free.\n", __func__);
return;
}
- if (!handle->user_ref_count > 0) {
+ if (!handle->user_ref_count) {
WARN(1, "%s: User does not have access!\n", __func__);
return;
}
diff -Naur old/kernel-3.18/fs/exofs/Kconfig.ore new/kernel-3.18/fs/exofs/Kconfig.ore
--- old/kernel-3.18/fs/exofs/Kconfig.ore 1970-01-01 08:00:00.000000000 +0800
+++ new/kernel-3.18/fs/exofs/Kconfig.ore 2018-08-21 21:27:44.000000000 +0800
@@ -0,0 +1,14 @@
+# ORE - Objects Raid Engine (libore.ko)
+#
+# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects
+# for every ORE user we do it like this. Any user should add itself here
+# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are
+# selected here, and we default to "ON". So in effect it is like been
+# selected by any of the users.
+config ORE
+ tristate
+ depends on EXOFS_FS || PNFS_OBJLAYOUT
+ select ASYNC_XOR
+ select RAID6_PQ
+ select ASYNC_PQ
+ default SCSI_OSD_ULD
diff -Naur old/kernel-3.18/kernel/trace/trace_output.c new/kernel-3.18/kernel/trace/trace_output.c
--- old/kernel-3.18/kernel/trace/trace_output.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/kernel/trace/trace_output.c 2018-11-21 15:38:24.649585345 +0800
@@ -978,7 +978,7 @@
field->ret.calltime,
field->ret.rettime,
field->ret.overrun,
- field->ret.depth));
+ field->ret.depth))
return TRACE_TYPE_PARTIAL_LINE;
return TRACE_TYPE_HANDLED;
diff -Naur old/kernel-3.18/Makefile new/kernel-3.18/Makefile
--- old/kernel-3.18/Makefile 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/Makefile 2018-11-21 14:46:52.826322232 +0800
@@ -1495,13 +1495,13 @@
@echo $(KBUILD_IMAGE)
# Clear a bunch of variables before executing the submake
-tools/: FORCE
- $(Q)mkdir -p $(objtree)/tools
- $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter --j% -j,$(MAKEFLAGS))" O=$(objtree) subdir=tools -C $(src)/tools/
+#tools/: FORCE
+# $(Q)mkdir -p $(objtree)/tools
+# $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter --j% -j,$(MAKEFLAGS))" O=$(objtree) subdir=tools -C $(src)/tools/
-tools/%: FORCE
- $(Q)mkdir -p $(objtree)/tools
- $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter --j% -j,$(MAKEFLAGS))" O=$(objtree) subdir=tools -C $(src)/tools/ $*
+#tools/%: FORCE
+# $(Q)mkdir -p $(objtree)/tools
+# $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter --j% -j,$(MAKEFLAGS))" O=$(objtree) subdir=tools -C $(src)/tools/ $*
# Single targets
# ---------------------------------------------------------------------------
diff -Naur old/kernel-3.18/net/ipv6/ip6_fib.c new/kernel-3.18/net/ipv6/ip6_fib.c
--- old/kernel-3.18/net/ipv6/ip6_fib.c 2018-08-21 21:27:44.000000000 +0800
+++ new/kernel-3.18/net/ipv6/ip6_fib.c 2018-11-21 18:47:29.913582993 +0800
@@ -966,7 +966,7 @@
fib6_start_gc(info->nl_net, rt);
if (!(rt->rt6i_flags & RTF_CACHE))
fib6_prune_clones(info->nl_net, pn);
- rt->dst.flags &= ~DST_NOCACHE;
+ rt->dst.flags &= ~DST_NOCACHE;
}
out:
@@ -1003,8 +1003,8 @@
st_failure:
if (fn && !(fn->fn_flags & (RTN_RTINFO|RTN_ROOT)))
fib6_repair_tree(info->nl_net, fn);
-if (!(rt->dst.flags & DST_NOCACHE))
- dst_free(&rt->dst);
+ if (!(rt->dst.flags & DST_NOCACHE))
+ dst_free(&rt->dst);
return err;
#endif
}
編譯Kernel
$ make ARCH=arm64 aeon6797_6m_n_defconfig $ make ARCH=arm64 menuconfig


P.S. 為了可以掛載自己編譯的Kernel(*.ko),Enable loadable module support必須開啟
$ make ARCH=arm64 -j8
$ ls arch/arm64/boot/
dts Image Image.gz Image.gz-dtb install.sh Makefile