SM7250(高通5G)平台:dsi select lcm

文章首次写在个人微信公众号【Linux驱动】。

写在前面的话:

本篇文章接

1.关闭UEFI panel的添加&禁止连续显示

diff --git a/QcomPkg/Library/MDPLib/DisplayUtils.c b/QcomPkg/Library/MDPLib/DisplayUtils.c
index 7895788..5100b46 100755
--- a/QcomPkg/Library/MDPLib/DisplayUtils.c
+++ b/QcomPkg/Library/MDPLib/DisplayUtils.c
@@ -961,8 +961,8 @@ static void UpdatePanelConfiguration(const bool32 aSupportedDisplayList[], CHAR8
     }
   }
   
-  if (DISP_MODE_PANEL_NONE & pDisplayParams->uFlags)//关闭UEFI panel的添加
+  if(1)
   {
     /* Panel override with NONE, no string will be generated */
   }
diff --git a/QcomPkg/Library/MDPLib/MDPLib.c b/QcomPkg/Library/MDPLib/MDPLib.c
index ddbc96d..d9507cd 100755
--- a/QcomPkg/Library/MDPLib/MDPLib.c
+++ b/QcomPkg/Library/MDPLib/MDPLib.c
@@ -1129,8 +1129,8 @@ MDP_Status  MDPExitBoot(uint32 uFlags)
     {
       pDisplayInfo = MDP_GET_DISPLAYINFO(eDisplayId);
 
-      if (MDP_PANEL_FLAG_DISABLE_SEAMLESS_SPLASH &  pDisplayInfo->eDisplayFlags)//禁止连续显示
+      if(1)
       {
         bSeamlessSplash = FALSE;
       }

2. dsi select lcm

dsi驱动加载log打印

[   26.168632]  dsi_display_dev_probe+0x190/0x3f0
[   26.173200]  platform_drv_probe+0x80/0xb8
[   26.177323]  really_probe+0x530/0x730
[   26.181089]  driver_probe_device+0x74/0x148
[   26.185390]  __driver_attach+0x128/0x1e0
[   26.189432]  bus_for_each_dev+0x84/0xd0
[   26.193377]  driver_attach+0x2c/0x38
[   26.197060]  bus_add_driver+0x144/0x268
[   26.201006]  driver_register+0x78/0x110
[   26.204951]  __platform_driver_register+0x4c/0x58
[   26.209792]  dsi_display_register+0x16c/0x198
[   26.214274]  do_one_initcall+0x1fc/0x400
[   26.218318]  kernel_init_freeable+0x4b4/0x56c
[   26.222799]  kernel_init+0x18/0x298
[   26.226386]  ret_from_fork+0x10/0x1c

kernel/msm-4.19/techpack/display/msm/dsi/dsi_display.c

of_device_id 结构体成员compatible的值 (qcom,dsi-display),代表的是当前驱动(driver)的名称,和“msm-dsi-display” 是驱动名称的两种表示方式。前者用于和dtsi中代表设备(device)的节点进行match,后者用于兼容kernel旧的设备驱动模型。 compatible

of_match_table
of_match_table

当设备与驱动match之后,执行驱动的probe函数:dsi_display_dev_probe 执行的过程中,会检查dis_display_boot_param 类型结构体数组 boot_displays[ ] 的数组成员的值。数组成员的值来自uefi 传给kernel的command line,传递过程使用到了内核MODULE_PARM_DESC宏定义。

dis_display_boot_param
dis_display_boot_param

qcom,dsi-display-primary节点代表平台端的dsi控制器设备节点,其属性 qcom,mdp 代表该控制器支持的LCM的列表。 当boot_disp_en 为1 时,表示uefi向kernel 传递LCM 值的机制没关,则在当前dsi控制器支持的LCM列表中查找uefi传递的LCM。 反之,boot_disp_en 为0时,表示uefi向kernel 传递LCM 值的机制关闭, 则将当前dsi控制器设备节点的属性qcom,dsi-default-panel的值作为LCM设备节点进行LCM的初始化操作。

dsi select lcm代码
dsi select lcm代码

vendor/qcom/proprietary/devicetree-4.19/qcom/lito-sde-display.dtsi

sde_dsi: qcom,dsi-display-primary
qcom,mdp = <&mdss_mdp>;
qcom,dsi-default-panel = <&dsi_ft8719p_1080p_video>;
sde_dsi1: qcom,dsi-display-secondary

下文继续LCD点亮细节

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值