解决问题:
1、pinfo->mipi.cmds_post_tg = 1;先发video数据
cmds_post_tg用于设置是先发初始化代码(命令)还是先发video数据
2、panelstruct->paneldata->panel_lp11_init = 1;MIPI初始化状态设置为LP11模式
3、LK开启高速模式:
+++ b/bootable/bootloader/lk/platform/msm_shared/mipi_dsi.c
@@ -493,7 +493,8 @@ int mdss_dsi_panel_initialize(struct mipi_panel_info *mipi, uint32_t
{
int status = 0;
uint32_t ctrl_mode = 0;
-
+ uint32_t ctrl_mode_1 = 0;//add by sunshine_liu
+
#if (DISPLAY_TYPE_MDSS == 1)
if (!mipi->panel_on_cmds)
goto end;
@@ -504,8 +505,22 @@ int mdss_dsi_panel_initialize(struct mipi_panel_info *mipi, uint32_t
writel(ctrl_mode | 0x04, mipi->ctl_base + CTRL);
if (broadcast)
writel(ctrl_mode | 0x04, mipi->sctl_base + CTRL);
+
+ //add by sunshine_liu start for hs mode open
+ ctrl_mode_1 = readl(mipi->ctl_base + 0x3c);
+ ctrl_mode_1&= ~BIT(26);
+ writel(ctrl_mode_1 | 0x04, mipi->ctl_base + 0x3c);
+ //add by sunshine_liu end for hs mode open
+
status = mdss_dsi_cmds_tx(mipi, mipi->panel_on_cmds,
mipi->num_of_panel_on_cmds, broadcast);
+
+ //add by sunshine_liu start for hs mode close
+ ctrl_mode_1 = readl(mipi->ctl_base + 0x3c);
+ ctrl_mode_1|= BIT(26);
+ writel(ctrl_mode_1 | 0x04, mipi->ctl_base + 0x3c);
+ //add by sunshine_liu start for hs mode close
+
writel(ctrl_mode, mipi->ctl_base + CTRL);
if (broadcast)
writel(ctrl_mode, mipi->sctl_base + CTRL);
4、修改麻点问题:修改发送命令
pinfo->mipi.cmds_post_tg = 0的时候再mipi_dsi_config函数里就发送初始化代码了
lk\platform\msm_shared\display.c: msm_display_init->mdss_dsi_config->mdss_dsi_panel_initialize->mdss_dsi_cmds_tx
pinfo->mipi.cmds_post_tg = 1的时候则是在mdss_dsi_post_on函数里就发送初始化代码了
lk\platform\msm_shared\display.c: msm_display_init->msm_display_on->mdss_dsi_panel_initialize->mdss_dsi_cmds_tx
mdp_dsi_video_on这里开启video的地方lk\platform\msm_shared\display.c: msm_display_init->mdp_dsi_video_on再到msm_display_on
lk\app\aboot\aboot.c :aboot_init->target_display_init->gcdb_display_init->msm_display_init(lk\platform\msm_shared\display.c) ->oem_panel_select->init_panel_data(选择参数)
读取platform_hw等信息,oem_panel_select会用到通过board_hardware_id()
lk\kernel\main.c:kmain->platform_early_init->board_init->platform_detect
59
qcom,mdss-dsi-panel-timings = [DB 34 22 00 62 66 28 36 2B 03 04 00];