1. 更改分辨率 需要修改两部分:
lk部分代码:
static struct panel_config adv7533_720p_video_panel_data = {
"qcom,mdss_dsi_adv7533_720p", "dsi:0:", "qcom,mdss-dsi-panel",
- 10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "NONE"
+ 10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
};
bootloader/lk/dev/gcdb/display/include/panel_adv7533_720p60.h
开始发现不好用改完,需要把上边的 "none" 改为 NULL
头文件,是这个LCD的配置,我这里是一个AD7535转换芯片,里边都是相关的配置和参数
bootloader/lk/target/msm8952/oem_panel.c
diff --git a/bootloader/lk/target/msm8952/oem_panel.c b/bootloader/lk/target/msm8952/oem_panel.c
index 9c87343..378be43 100755
--- a/bootloader/lk/target/msm8952/oem_panel.c
+++ b/bootloader/lk/target/msm8952/oem_panel.c
@@ -55,14 +55,14 @@
#include "include/panel_nt35597_wqxga_dsc_cmd.h"
#include "include/panel_byd_1200p_video.h"
#include "include/panel_nt35523_wqxga_dualdsi_video.h"
-//#include "include/panel_adv7533_720p60.h"
-#include "include/panel_adv7533_1080p60.h"
+#include "include/panel_adv7533_720p60.h"
+//#include "include/panel_adv7533_1080p60.h"
/*---------------------------------------------------------------------------*/
/* static panel selection variable */
/*---------------------------------------------------------------------------*/
enum {
-// ADV7533_720P_VIDEO_PANEL,
- ADV7533_1080P_VIDEO_PANEL,
+ ADV7533_720P_VIDEO_PANEL,
+// ADV7533_1080P_VIDEO_PANEL,
TRULY_1080P_VIDEO_PANEL,
TRULY_1080P_CMD_PANEL,
OTM1906C_1080P_CMD_PANEL,
@@ -86,8 +86,8 @@ uint32_t panel_regulator_settings[] = {
* Any panel in this list can be selected using fastboot oem command.
*/
static struct panel_list supp_panels[] = {
-// {"adv7533_720p_video",ADV7533_720P_VIDEO_PANEL},
- {"adv7533_1080p_video",ADV7533_1080P_VIDEO_PANEL},
+ {"adv7533_720p_video",ADV7533_720P_VIDEO_PANEL},
+// {"adv7533_1080p_video",ADV7533_1080P_VIDEO_PANEL},
{"truly_1080p_video", TRULY_1080P_VIDEO_PANEL},
{"truly_1080p_cmd", TRULY_1080P_CMD_PANEL},
{"sharp_1080p_cmd", SHARP_1080P_CMD_PANEL},
@@ -470,7 +470,7 @@ static int init_panel_data(struct panel_struct *panelstruct,
TIMING_SIZE);
pinfo->mipi.tx_eot_append = true;
break;
- case ADV7533_1080P_VIDEO_PANEL:
+/* case ADV7533_1080P_VIDEO_PANEL:
panelstruct->paneldata = &adv7533_1080p_video_panel_data;
panelstruct->panelres = &adv7533_1080p_video_panel_res;
panelstruct->color = &adv7533_1080p_video_color;
@@ -486,7 +486,25 @@ static int init_panel_data(struct panel_struct *panelstruct,
pinfo->adv7533.num_of_cfg_i2c_cmds = ADV7533_1080P_CONFIG_COMMANDS;
memcpy(phy_db->timing,
adv7533_1080p_video_timings, TIMING_SIZE);
+ break;*/
+ case ADV7533_720P_VIDEO_PANEL:
+ panelstruct->paneldata = &adv7533_720p_video_panel_data;
+ panelstruct->panelres = &adv7533_720p_video_panel_res;
+ panelstruct->color = &adv7533_720p_video_color;
+ panelstruct->videopanel = &adv7533_720p_video_video_panel;
+ panelstruct->commandpanel = &adv7533_720p_video_command_panel;
+ panelstruct->state = &adv7533_720p_video_state;
+ panelstruct->laneconfig = &adv7533_720p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &adv7533_720p_video_timing_info;
+ pinfo->adv7533.dsi_tg_i2c_cmd = adv7533_720p_tg_i2c_command;
+ pinfo->adv7533.num_of_tg_i2c_cmds = ADV7533_720P_TG_COMMANDS;
+ pinfo->adv7533.dsi_setup_cfg_i2c_cmd = adv7533_720p_common_cfg;
+ pinfo->adv7533.num_of_cfg_i2c_cmds = ADV7533_720P_CONFIG_COMMANDS;
+ memcpy(phy_db->timing,
+ adv7533_720p_video_timings, TIMING_SIZE);
break;
+
case UNKNOWN_PANEL:
default:
memset(panelstruct, 0, sizeof(struct panel_struct));
@@ -541,9 +559,9 @@ int oem_panel_select(const char *panel_name, struct panel_struct *panelstruct,
switch (hw_id) {
case HW_PLATFORM_MTP:
if (platform_is_msm8956())
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
else
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
break;
case HW_PLATFORM_SURF:
case HW_PLATFORM_RCM:
@@ -591,7 +609,7 @@ int oem_panel_select(const char *panel_name, struct panel_struct *panelstruct,
auto_pan_loop++;
}
#else
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
KERNEL部分:arch/arm/boot/dts/qcom/msm8976-mdss-mtp.dtsi
75 &mdss_dsi0 {
76 qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>;
77 pinctrl-names = "mdss_default", "mdss_sleep";
78 pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
79 pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
80
81 qcom,platform-reset-gpio = <&msm_gpio 25 0>;
82 };
红色部分添加相应的设置数据
-------------
msm8976 开机的默认图片保存在一个数组里,
这个数据在drivers/video/msm/mdss/splash.h 文件里
此外要替换成自己的图片可以 用img2lcd4.0 工具转换成 数组,转换的图片我用的是PNG的,输出为24bit。
好要修改头文件里的宽和高 ,和自己的图片对应上,
要注意一点不要太大,不然不能开机