高通平台 lcd 分辨卤更改

来源:互联网 发布:软件合集 编辑:程序博客网 时间:2024/04/27 23:38

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。

好要修改头文件里的宽和高 ,和自己的图片对应上,

要注意一点不要太大,不然不能开机