mtk利用nvram分区进行多屏兼容方案

1. 参考

[FAQ11409]通过预设在nvram里的数据实现lcm兼容的方案

 

 

2. 可以利用MTK工具SP_META去修改nvram分区,(注意:SP_META工具选择的数据库文件路径如下)

 

 

3. mtk的FAQ修改方法只适用Android4.x版本的。下面是MT6735-Android5.1上,自己实现的具体修改记录

bootable修改:

通过mtk SP_META去修改nvram分区(该分区包括了64字节的barcode、40字节IMEI),现在开辟了跟在barcode和IMEI的4个字节作为lcd识别区,不过只用了一个字节去区别屏,例如0x30就调用lcd0、0x31就调用lcd1...

diff --git a/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c b/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
index aacf94e..0bd2416 100755
--- a/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
+++ b/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
@@ -1308,9 +1308,22 @@ resume_again_lk1:
 	}		
 }
 
-
+extern u8 match_lcm[4];
 static void lcm_init(void)
 { 
+#if 1
+	// int i;
+	// for(i=0; i<5; i++){
+		// printf("BSK-lcm: %x \n",match_lcm[i]);
+	// }
+	if(match_lcm[0] == 0x30){
+		printf("BSK-lcm: match LT8911B_1080 succeed!\n");
+	}else{
+		printf("BSK-lcm: not match LT8911B_1080!\n");
+		return;
+	}
+#endif
+
 #if 1  
 	unsigned int num = 0;
 #ifdef BUILD_LK
@@ -1407,7 +1420,16 @@ lcm_init();
 static unsigned int lcm_compare_id(void)
 {	
 	int ret;
-	ret=LT8911_ChipID();
+	//ret=LT8911_ChipID();
+#if 1
+	if(match_lcm[0] == 0x30){
+		ret = 1;
+		printf("BSK-lcm: match LT8911B_1080 succeed!\n");
+	}else{
+		ret = 0;
+		printf("BSK-lcm: not match LT8911B_1080!\n");
+	}
+#endif
     return (ret == 1)?1:0;
 }
 
diff --git a/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c b/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
index 9802e7a..1d1b7e0 100755
--- a/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
+++ b/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
@@ -855,9 +855,22 @@ void lcm_init_exb(void)
 	}
 }
 
-
+extern u8 match_lcm[4];
 static void lcm_init(void)
 { 
+#if 1
+	// int i;
+	// for(i=0; i<5; i++){
+		// printf("BSK-lcm: %x \n",match_lcm[i]);
+	// }
+	if(match_lcm[0] == 0x31){
+		printf("BSK-lcm: match LT8911EXB_1080 succeed!\n");
+	}else{
+		printf("BSK-lcm: not match LT8911EXB_1080!\n");
+		return;
+	}
+#endif
+
 #if 1  
 	unsigned int num = 0;
 
@@ -942,7 +955,16 @@ lcm_init();
 static unsigned int lcm_compare_id(void)
 {	
 	int ret;
-	ret=LT8911_ChipID();
+	//ret=LT8911_ChipID();
+#if 1
+	if(match_lcm[0] == 0x31){
+		ret = 1;
+		printf("BSK-lcm: match LT8911EXB_1080 succeed!\n");
+	}else{
+		ret = 0;
+		printf("BSK-lcm: not match LT8911EXB_1080!\n");
+	}
+#endif
     return (ret == 1)?1:0;
 }
 
diff --git a/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c b/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
index f8f6342..1711f99 100755
--- a/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
+++ b/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
@@ -87,7 +87,7 @@ static LCM_UTIL_FUNCS lcm_util = {0};
 #define UDELAY(n) 											(lcm_util.udelay(n))
 #define MDELAY(n) 											(lcm_util.mdelay(n))
 
-void printdec_u32(int temp)
+static void printdec_u32(int temp)
 {
 	printf("%d\n",temp);
 }
@@ -1091,8 +1091,22 @@ void LT9211_Pattern_Config(void)
 	LT9211_VideoCheckDebug();
 }
 
+extern u8 match_lcm[4];
 static void lcm_init(void)
 { 
+#if 1
+	// int i;
+	// for(i=0; i<5; i++){
+		// printf("BSK-lcm: %x \n",match_lcm[i]);
+	// }
+	if(match_lcm[0] == 0x32){
+		printf("BSK-lcm: match LT9211EXB_1920_540 succeed!\n");
+	}else{
+		printf("BSK-lcm: not match LT9211EXB_1920_540!\n");
+		return;
+	}
+#endif
+
 #if 1  
 	unsigned int num = 0;
 
@@ -1155,7 +1169,16 @@ lcm_init();
 static unsigned int lcm_compare_id(void)
 {	
 	int ret;
-	ret=LT9211_ChipID();
+	//ret=LT9211_ChipID();
+#if 1
+	if(match_lcm[0] == 0x32){
+		ret = 1;
+		printf("BSK-lcm: match LT9211EXB_1920_540 succeed!\n");
+	}else{
+		ret = 0;
+		printf("BSK-lcm: not match LT9211EXB_1920_540!\n");
+	}
+#endif	
     return (ret == 1)?1:0;
 }
 
diff --git a/bootloader/lk/kernel/main.c b/bootloader/lk/kernel/main.c
old mode 100644
new mode 100755
index d2f957c..a2740fa
--- a/bootloader/lk/kernel/main.c
+++ b/bootloader/lk/kernel/main.c
@@ -39,7 +39,11 @@
 #include <platform/mtk_ir_lk_core.h>
 #endif
 
-
+#if(1)
+#include <platform/boot_mode.h>
+BOOT_ARGUMENT *g_boot_arg;
+//BOOT_ARGUMENT boot_addr;
+#endif
 
 extern void *__ctor_list;
 extern void *__ctor_end;
@@ -71,6 +75,7 @@ static void call_constructors(void)
 	}
 }
 
+u8 match_lcm[4] = {0};
 /* called from crt0.S */
 void kmain(void) __NO_RETURN __EXTERNALLY_VISIBLE;
 void kmain(void)
@@ -96,7 +101,14 @@ void kmain(void)
 	target_early_init();
 
 	dprintf(INFO, "welcome to lk\n\n");
-	
+#if(1)
+	//strncpy(lcm_name,g_boot_arg->flag,5);
+	int i = 0;
+	for(i=0; i<4; i++){
+		*(match_lcm+i) = g_boot_arg->match_lcm[i];
+		dprintf(INFO, "BSK-lcm: %x \n",*(match_lcm+i));
+	}
+#endif
 	// deal with any static constructors
 	dprintf(SPEW, "calling constructors\n");
 	call_constructors();
diff --git a/bootloader/lk/platform/mt6735/include/platform/boot_mode.h b/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
old mode 100644
new mode 100755
index 4625775..d27bf2f
--- a/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
+++ b/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
@@ -154,6 +154,7 @@ typedef struct {
   u32  kernel_boot_opt;
   u32 non_secure_sram_addr;
   u32 non_secure_sram_size;
+  u8 match_lcm[4];
 } BOOT_ARGUMENT;
 
 
@@ -308,6 +309,12 @@ struct boot_tag_sram_info {
         u32 non_secure_sram_size;
 };
 
+/* sram lcm-info */
+#define BOOT_TAG_LCM_INFO      0x88610013
+struct boot_tag_lcm_info {
+	u8 match_lcm[4];
+};
+
 struct boot_tag_header {
     u32 size;
     u32 tag;
@@ -334,6 +341,7 @@ struct boot_tag {
         struct boot_tag_boot_opt boot_opt;
         struct boot_tag_sram_info sram_info;
 		struct boot_tag_ptp ptp_volt;
+		struct boot_tag_lcm_info lcm_info;
     } u;
 };
 
diff --git a/bootloader/lk/platform/mt6735/platform.c b/bootloader/lk/platform/mt6735/platform.c
old mode 100644
new mode 100755
index 6e49b3b..783aaf8
--- a/bootloader/lk/platform/mt6735/platform.c
+++ b/bootloader/lk/platform/mt6735/platform.c
@@ -192,6 +192,9 @@ int dram_init(void)
                 case BOOT_TAG_PTP:                   
                     memcpy(&g_boot_arg->ptp_volt_info, &tags->u.ptp_volt.ptp_volt_info, sizeof(ptp_info_t));
                     break;
+				case BOOT_TAG_LCM_INFO:
+					for(i=0; i<4; i++)
+						g_boot_arg->match_lcm[i] = tags->u.lcm_info.match_lcm[i];
                 default:
                     break;
 		    }
@@ -567,6 +570,8 @@ int kernel_charging_boot(void)
 }
 #endif
 
+extern u8 match_lcm[4];
+extern void LT9211_Config(void);
 void platform_init(void)
 {
 #ifdef LK_PROFILING
@@ -859,6 +864,11 @@ void platform_init(void)
 #ifdef LK_PROFILING
     dprintf(INFO, "[PROFILE] ------- platform_init takes %d ms -------- \n", (int)get_timer(time_platform_init));
 #endif
+
+	if(match_lcm[0] == 0x32){
+		dprintf(INFO,"BSK-lcm: Register LT9211EXB_1920_540-LT9211 I2c Config \n");
+		LT9211_Config();
+	}
 }
 
 void platform_uninit(void)
diff --git a/bootloader/lk/project/aeon6735_65c_s_l1.mk b/bootloader/lk/project/aeon6735_65c_s_l1.mk
index ed00161..13a42bd 100755
--- a/bootloader/lk/project/aeon6735_65c_s_l1.mk
+++ b/bootloader/lk/project/aeon6735_65c_s_l1.mk
@@ -11,7 +11,7 @@ DEFINES += MTK_NEW_COMBO_EMMC_SUPPORT
 MTK_KERNEL_POWER_OFF_CHARGING = no
 MTK_LCM_PHYSICAL_ROTATION = 0
 #CUSTOM_LK_LCM="hx8392a_dsi_cmd"
-CUSTOM_LK_LCM=LT8911B_1080 LT8911EXB_1080
+CUSTOM_LK_LCM=LT8911B_1080 LT8911EXB_1080 LT9211EXB_1920_540
 #hx8392a_dsi_cmd = yes
 
 #FASTBOOT_USE_G_ORIGINAL_PROTOCOL = yes
diff --git a/bootloader/preloader/platform/mt6735/src/core/main.c b/bootloader/preloader/platform/mt6735/src/core/main.c
old mode 100644
new mode 100755
index ff407d8..7b79fdc
--- a/bootloader/preloader/platform/mt6735/src/core/main.c
+++ b/bootloader/preloader/platform/mt6735/src/core/main.c
@@ -134,6 +134,86 @@ static void bldr_pre_process(void)
 	BOOTING_TIME_PROFILING_LOG("Sec lib init");
 }
 
+u8 match_lcm[4] = {0};
+static bool bldr_read_proinfo(void)
+{
+/*默认屏选择*/
+#define  BSK_NVRAM_LCM_DATA 1
+#if (BSK_NVRAM_LCM_DATA == 0)//LT8911B_1080
+	u8 w_buf[4] = {0x30,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 1)//LT8911EXB_1080
+	u8 w_buf[4] = {0x31,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 2)//LT9211EXB_1920_540
+	u8 w_buf[4] = {0x32,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 3)//xxx
+	u8 w_buf[4] = {0x33,0,0,0};
+#else
+	u8 w_buf[4] = {0x30,0,0,0};
+#endif
+
+	u8 i = 0;
+
+	/*read subarea head info*/
+	blkdev_t *bootdev;
+    if (NULL == (bootdev = blkdev_get(CFG_BOOT_DEV))) {
+        print("BSK-lcm: %s can't find boot device(%d)\n", MOD, CFG_BOOT_DEV);
+        /* FIXME, should change to global error code */
+        return -1;
+    }
+
+	char *name = "proinfo";
+	part_t *part = part_get(name);
+	if (NULL == part) {
+		print("BSK-lcm: %s %s partition not found\n", MOD, name);
+		return -1;
+	}
+
+	/*read nvram*/
+	u8 buf[120] = {0};
+	u32 offset = 0;
+	u64 src = (u64)(part->start_sect * bootdev->blksz) + offset;
+	if (blkdev_read(bootdev, src, sizeof(buf), buf, part->part_id) != 0){
+		printf("BSK-lcm: [%s] bootdev(%d) read error (%s)\n", MOD, bootdev->type, part->info->name);
+		return -1;
+	}
+
+	/*判断nvRAM是否有值,如果没有就使用默认屏*/
+	for(i=0;i<4;i++)
+		*(match_lcm+i) = buf[104+i];//barcode:64 + IMEI:40
+
+	if(match_lcm[0] == 0 && match_lcm[1] == 0 && match_lcm[2] == 0 && match_lcm[3] == 0){
+		printf("BSK-lcm: user default value");
+
+		/*write nvram => must 4byte align!!!*/
+		offset = 104;//barcode:64 + IMEI:40 + x
+		src = (u64)(part->start_sect * bootdev->blksz) + offset;
+		if(blkdev_write(bootdev, src, sizeof(w_buf), w_buf, part->part_id) != 0){
+			printf("BSK-lcm: [%s] bootdev(%d) write error (%s)\n", MOD, bootdev->type, part->info->name);
+		}
+
+		offset = 0;
+		src = (u64)(part->start_sect * bootdev->blksz) + offset;
+		if (blkdev_read(bootdev, src, sizeof(buf), buf, part->part_id) != 0){
+			printf("BSK-lcm: [%s] bootdev(%d) read error (%s)\n", MOD, bootdev->type, part->info->name);
+			return -1;
+		}
+	}
+
+	/*print dispose data*/
+#if(0)
+	i = 0;
+	while( i < sizeof(buf)){
+		print("BSK-lcm: %x %x %x %x %x %x %x %x\n", buf[i], buf[i+1], buf[i+2],
+			buf[i+3], buf[i+4], buf[i+5], buf[i+6], buf[i+7]);
+		i += 8;
+	}
+#endif
+
+	//memcpy(lcm_name, &buf[104], 5);
+	for(i=0;i<4;i++)
+		*(match_lcm+i) = buf[104+i];//barcode:64 + IMEI:40
+}
+
 static void bldr_post_process(void)
 {
     platform_post_init();
@@ -736,7 +816,7 @@ void main(u32 *arg)
         print("%s Second Bootloader Load Failed\n", MOD);
         goto error;
     }
-
+	bldr_read_proinfo();
     bldr_post_process();
 #ifdef SLT
     mt_usb_phy_recover();
diff --git a/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h b/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
old mode 100644
new mode 100755
index 3e2e4a5..01ac6bc
--- a/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
+++ b/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
@@ -288,6 +288,7 @@ typedef struct {
     u32  kernel_boot_opt;
     u32 non_secure_sram_addr;
     u32 non_secure_sram_size;
+	u8 match_lcm[4];
 } boot_arg_t;
 
 typedef enum {
@@ -469,6 +470,12 @@ struct boot_tag_sram_info {
         u32 non_secure_sram_size;
 };
 
+/* sram lcm-info */
+#define BOOT_TAG_LCM_INFO      0x88610013
+struct boot_tag_lcm_info {
+	u8 match_lcm[4];
+};
+
 struct boot_tag_header {
     u32 size;
     u32 tag;
@@ -494,6 +501,7 @@ typedef struct {
         struct boot_tag_boot_opt boot_opt;
         struct boot_tag_sram_info sram_info;
 		struct boot_tag_ptp ptp_volt;
+		struct boot_tag_lcm_info lcm_info;
     } u;
 }boot_tag;
 
diff --git a/bootloader/preloader/platform/mt6735/src/drivers/platform.c b/bootloader/preloader/platform/mt6735/src/drivers/platform.c
old mode 100644
new mode 100755
index 1cbed1f..d8b119a
--- a/bootloader/preloader/platform/mt6735/src/drivers/platform.c
+++ b/bootloader/preloader/platform/mt6735/src/drivers/platform.c
@@ -405,6 +405,7 @@ void platform_vusb_on(void)
     return;
 }
 
+extern u8 match_lcm[4];
 #if CFG_BOOT_ARGUMENT_BY_ATAG
 void platform_set_boot_args_by_atag(unsigned *ptr)
 {
@@ -574,6 +575,18 @@ void platform_set_boot_args_by_atag(unsigned *ptr)
     print("NONSEC SRAM Addr: 0x%x\n", tags->u.sram_info.non_secure_sram_addr);
     print("NONSEC SRAM Size: 0x%x\n", tags->u.sram_info.non_secure_sram_size);
 
+#if(1)
+	tags = ptr;
+    tags->hdr.size = boot_tag_size(boot_tag_lcm_info);
+    tags->hdr.tag  = BOOT_TAG_LCM_INFO;
+
+	for(i=0; i<4; i++){
+		tags->u.lcm_info.match_lcm[i] = *(match_lcm+i);
+		print("BSK-lcm: %x \n",tags->u.lcm_info.match_lcm[i]);
+	}
+    ptr += tags->hdr.size;
+#endif
+
   /* END */
   *ptr++ = 0;
   *ptr++ = 0;

 

kernel-3.10修改:

主要是兼容3个屏的驱动

diff --git a/arch/arm64/configs/aeon6735_65c_s_l1_defconfig b/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
index f083049..e628750 100755
--- a/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
+++ b/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
@@ -1036,8 +1036,8 @@ CONFIG_CUSTOM_KERNEL_GLANCE_GESTURE_SENSOR=""
 CONFIG_CUSTOM_KERNEL_IMGSENSOR="hm2131_mipi_yuv pr2000_mipi_yuv"
 CONFIG_CUSTOM_KERNEL_CAM_CAL_DRV=""
 #CONFIG_CUSTOM_KERNEL_LCM="hx8392a_dsi_cmd"
-#CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080"
-CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080 LT8911EXB_1080"
+#CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080" 
+CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080 LT8911EXB_1080 LT9211EXB_1920_540"
 CONFIG_CUSTOM_KERNEL_FLASHLIGHT="constant_flashlight"
 CONFIG_CUSTOM_KERNEL_EXTMD=""
 CONFIG_CUSTOM_KERNEL_SSW="ssw_single_v2"
diff --git a/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c b/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
index 1cffe1b..52a4b77 100755
--- a/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
+++ b/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
@@ -64,8 +64,10 @@ struct video_timing video_1920x720_60Hz    ={148, 44, 88,1920,  2200,  28,  5, 1
 	extern int lt9211_i2c_write(u8 addr, u8 data);
 	extern int lt9211_i2c_read(u8 addr, u8 *data);
 	#define LT9211_LOG printk
-	#define LT9211_REG_WRITE(add, data) k_lt9211b_write_byte(add, data)
-	#define LT9211_REG_READ(add)		k_lt9211b_read_byte(add)
+	#define LT9211_REG_WRITE(add, data) //k_lt9211b_write_byte(add, data)
+	#define LT9211_REG_READ(add) //k_lt9211b_read_byte(add)
+	#define LT9211_REG_READ(add)	lcm_lt9211_i2c_read(add)
+
 	
 	extern int lcm_i2c_suspend(void);
 	extern int lcm_i2c_resume(void);
@@ -282,7 +284,7 @@ static u32 lcm_lt9211_i2c_read(u8 addr)
     u8 u4Reg = 0;
     u8 ret_code = 0;
 
-    ret_code = lt9211_i2c_read(addr, &u4Reg);  //kernel need
+    //ret_code = lt9211_i2c_read(addr, &u4Reg);  //kernel need
     if (ret_code != 0)
     {
         return ret_code;
@@ -293,7 +295,7 @@ static u32 lcm_lt9211_i2c_read(u8 addr)
 #endif
 
 
-#if 1
+#if 0
 
 void LT9211_Config(void);
 static void lcd_reset(unsigned char enabled);
@@ -1364,7 +1366,7 @@ void LT9211_Pattern_Config(void)
 
 static void lcm_init(void)
 { 
-#if 1  
+#if 0  
 	unsigned int num = 0;
 
 	int ret;
diff --git a/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c b/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
index ca46dea..27c98c7 100755
--- a/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
+++ b/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
@@ -17,9 +17,6 @@
 #else
 #define LCD_DEBUG(fmt)  printk(fmt)
 #endif
-extern LCM_DRIVER  LT8911B_1080_lcm_drv;
-extern LCM_DRIVER  LT8911EXB_1080_lcm_drv;
-extern LCM_DRIVER  LT9211EXB_1920_540_lcm_drv;
 extern LCM_DRIVER otm1282a_hd720_dsi_vdo_60hz_lcm_drv;
 extern LCM_DRIVER otm1282a_hd720_dsi_vdo_lcm_drv;
 extern LCM_DRIVER vvx10f008b00_wuxga_dsi_vdo_lcm_drv;
@@ -241,6 +238,11 @@ extern LCM_DRIVER st7789h2_dbi_lcm_drv;
 
 extern LCM_DRIVER K11_WXGA_JD9362_QCH_lcm_drv;
 
+extern LCM_DRIVER  LT8911B_1080_lcm_drv;
+extern LCM_DRIVER  LT8911EXB_1080_lcm_drv;
+extern LCM_DRIVER  LT9211EXB_1920_540_lcm_drv;
+
+
 LCM_DRIVER* lcm_driver_list[] =
 {
 #if defined(OTM1284A_HD720_DSI_VDO_TM)
@@ -1089,20 +1091,22 @@ LCM_DRIVER* lcm_driver_list[] =
 #if defined(ST7789H2_DBI)
 	&st7789h2_dbi_lcm_drv,
 #endif
-#if defined(LT8911EXB_1080)
-		&LT8911EXB_1080_lcm_drv,
-#endif 
-
-#if defined(LT9211EXB_1920_540)
-		&LT9211EXB_1920_540_lcm_drv,
-#endif 
 
 #if defined(K11_WXGA_JD9362_QCH)
         &K11_WXGA_JD9362_QCH_lcm_drv,
 #endif
+
 #if defined(LT8911B_1080)
 		&LT8911B_1080_lcm_drv,
-#endif 
+#endif
+
+#if defined(LT8911EXB_1080)
+		&LT8911EXB_1080_lcm_drv,
+#endif
+
+#if defined(LT9211EXB_1920_540)
+		&LT9211EXB_1920_540_lcm_drv,
+#endif
 };
 
 #define LCM_COMPILE_ASSERT(condition) LCM_COMPILE_ASSERT_X(condition, __LINE__)
diff --git a/drivers/misc/mediatek/videox/mt6735/disp_lcm.c b/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
old mode 100644
new mode 100755
index 225114c..44c0c94
--- a/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
+++ b/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
@@ -216,11 +216,13 @@ disp_lcm_handle* disp_lcm_probe(char* plcm_name, LCM_INTERFACE_ID lcm_id)
 			for(i=0;i<_lcm_count();i++)
 			{
 				lcm_drv = lcm_driver_list[i];
+				DISPCHECK("BSK-lcm: support lcm_driver_list[%d] = %s\n",i,lcm_drv->name);
 				if(!strcmp(lcm_drv->name, plcm_name))
 				{
 					isLCMFound = true;
 					isLCMInited = true;
                     lcmindex = i;
+					DISPCHECK("BSK-lcm: match Succeed => lcm_driver_list[%d] = %s\n",i,lcm_drv->name);
 					break;
 				}
 			}

 

vendor修改:

使用和剩余nvram分区大小修改:

diff --git a/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h b/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
index 1f2e100..8e6a78c 100644
--- a/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
+++ b/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
@@ -73,7 +73,8 @@ typedef struct
 typedef struct{
 		unsigned char barcode[64];
 		nvram_ef_imei_imeisv_struct IMEI[4];
-		unsigned char reserved[1024-40-64];
+		unsigned char match_lcm[4];
+		unsigned char reserved[1024-40-64-4];
 }PRODUCT_INFO;
 
 //the record size and number of PRODUCT_INFO nvram file

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值