admin管理员组文章数量:1543380
gvim 推荐配置
set nu
set tabstop=4
set autoindent
set smartindent
set shiftwidth=4
"set guifont=SimSun-ExtB:h18:cGB2312:qDRAFT
set guifont=Courier\ New:h17
colorscheme desert
set nobackup
set noundofile
set noswapfile
马尔莫
1|malmo:/ # ls ./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_boe_vtdr6130a_ft3683g_667_1080x2400_dsc_cmd
name qcom,mdss-dsi-bllp-power-mode qcom,mdss-dsi-lane-1-state qcom,mdss-dsi-panel-local-hbm-enabled qcom,mdss-dsi-te-dcs-command
phandle qcom,mdss-dsi-border-color qcom,mdss-dsi-lane-2-state qcom,mdss-dsi-panel-local-hbm-wait-fps-count qcom,mdss-dsi-te-pin-select
qcom,cellid-read-enabled qcom,mdss-dsi-bpp qcom,mdss-dsi-lane-3-state qcom,mdss-dsi-panel-local-hbm-wait-fps-interval qcom,mdss-dsi-te-using-te-pin
qcom,dsi-ctrl-num qcom,mdss-dsi-color-order qcom,mdss-dsi-lp11-init qcom,mdss-dsi-panel-name qcom,mdss-dsi-traffic-mode
qcom,dsi-phy-num qcom,mdss-dsi-dc-off-command qcom,mdss-dsi-mdp-trigger qcom,mdss-dsi-panel-physical-type qcom,mdss-dsi-tx-eot-append
qcom,dsi-select-clocks qcom,mdss-dsi-dc-off-command-state qcom,mdss-dsi-no-panel-on-read-support qcom,mdss-dsi-panel-status-check-mode qcom,mdss-dsi-underflow-color
qcom,esd-check-enabled qcom,mdss-dsi-dc-on-command qcom,mdss-dsi-panel-bl-num qcom,mdss-dsi-panel-status-command qcom,mdss-dsi-virtual-channel-id
qcom,mdss-brightness-max-level qcom,mdss-dsi-dc-on-command-state qcom,mdss-dsi-panel-cellid-command qcom,mdss-dsi-panel-status-command-state qcom,mdss-pan-physical-height-dimension
qcom,mdss-dsi-bl-default-level qcom,mdss-dsi-display-timings qcom,mdss-dsi-panel-cellid-read-length qcom,mdss-dsi-panel-status-read-length qcom,mdss-pan-physical-width-dimension
qcom,mdss-dsi-bl-inverted-dbv qcom,mdss-dsi-dma-trigger qcom,mdss-dsi-panel-lhbm-not-allowed-fps-list qcom,mdss-dsi-panel-status-value qcom,panel-supply-entries
qcom,mdss-dsi-bl-is-exponent qcom,mdss-dsi-hbm-fod qcom,mdss-dsi-panel-lhbm-wait-fps-valid qcom,mdss-dsi-panel-supplier qcom,platform-reset-gpio
qcom,mdss-dsi-bl-max-level qcom,mdss-dsi-hbm-fod-on-command qcom,mdss-dsi-panel-local-hbm-DC-HYBIRD-THRESHOLD-BL qcom,mdss-dsi-panel-type qcom,platform-te-gpio
qcom,mdss-dsi-bl-min-level qcom,mdss-dsi-hbm-off-command qcom,mdss-dsi-panel-local-hbm-alpha-register qcom,mdss-dsi-reset-sequence
qcom,mdss-dsi-bl-pmic-control-type qcom,mdss-dsi-hbm-on-command qcom,mdss-dsi-panel-local-hbm-alpha-size qcom,mdss-dsi-stream
qcom,mdss-dsi-bllp-eof-power-mode qcom,mdss-dsi-lane-0-state qcom,mdss-dsi-panel-local-hbm-alpha-table qcom,mdss-dsi-te-check-enable
./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_boe_vtdr6130a_ft3683g_667_1080x2400_dsc_cmd/qcom,mdss-dsi-display-timings/timing@0 <
name qcom,mdss-dsc-block-prediction-enable qcom,mdss-dsi-h-back-porch qcom,mdss-dsi-h-sync-skew qcom,mdss-dsi-panel-height qcom,mdss-dsi-v-back-porch
qcom,compression-mode qcom,mdss-dsc-slice-height qcom,mdss-dsi-h-front-porch qcom,mdss-dsi-off-command qcom,mdss-dsi-panel-jitter qcom,mdss-dsi-v-bottom-border
qcom,default-topology-index qcom,mdss-dsc-slice-per-pkt qcom,mdss-dsi-h-left-border qcom,mdss-dsi-off-command-state qcom,mdss-dsi-panel-phy-timings qcom,mdss-dsi-v-front-porch
qcom,display-topology qcom,mdss-dsc-slice-width qcom,mdss-dsi-h-pulse-width qcom,mdss-dsi-on-command qcom,mdss-dsi-panel-width qcom,mdss-dsi-v-pulse-width
qcom,mdss-dsc-bit-per-component qcom,mdss-dsc-version qcom,mdss-dsi-h-right-border qcom,mdss-dsi-on-command-state qcom,mdss-dsi-timing-switch-command qcom,mdss-dsi-v-top-border
qcom,mdss-dsc-bit-per-pixel qcom,mdss-dsi-cmd-mode qcom,mdss-dsi-h-sync-pulse qcom,mdss-dsi-panel-framerate qcom,mdss-dsi-timing-switch-command-state
malmo:/ #
qcom,mdss-dsi-display-timings/
qcom,mdss-dsi-on-command
adb shell od -t x1 ./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_boe_vtdr6130a_ft3683g_667_1080x2400_dsc_cmd/qcom,mdss-dsi-display-timings/timing@0/qcom,mdss-dsi-on-command
改后:
name qcom,mdss-dsi-bllp-power-mode qcom,mdss-dsi-lane-1-state qcom,mdss-dsi-panel-local-hbm-enabled qcom,mdss-dsi-te-dcs-command
phandle qcom,mdss-dsi-border-color qcom,mdss-dsi-lane-2-state qcom,mdss-dsi-panel-local-hbm-wait-fps-count qcom,mdss-dsi-te-pin-select
qcom,cellid-read-enabled qcom,mdss-dsi-bpp qcom,mdss-dsi-lane-3-state qcom,mdss-dsi-panel-local-hbm-wait-fps-interval qcom,mdss-dsi-te-using-te-pin
qcom,dsi-ctrl-num qcom,mdss-dsi-color-order qcom,mdss-dsi-lp11-init qcom,mdss-dsi-panel-name qcom,mdss-dsi-traffic-mode
qcom,dsi-phy-num qcom,mdss-dsi-dc-off-command qcom,mdss-dsi-mdp-trigger qcom,mdss-dsi-panel-physical-type qcom,mdss-dsi-tx-eot-append
qcom,dsi-select-clocks qcom,mdss-dsi-dc-off-command-state qcom,mdss-dsi-no-panel-on-read-support qcom,mdss-dsi-panel-status-check-mode qcom,mdss-dsi-underflow-color
qcom,esd-check-enabled qcom,mdss-dsi-dc-on-command qcom,mdss-dsi-panel-bl-num qcom,mdss-dsi-panel-status-command qcom,mdss-dsi-virtual-channel-id
qcom,mdss-brightness-max-level qcom,mdss-dsi-dc-on-command-state qcom,mdss-dsi-panel-cellid-command qcom,mdss-dsi-panel-status-command-state qcom,mdss-pan-physical-height-dimension
qcom,mdss-dsi-bl-default-level qcom,mdss-dsi-display-timings qcom,mdss-dsi-panel-cellid-read-length qcom,mdss-dsi-panel-status-read-length qcom,mdss-pan-physical-width-dimension
qcom,mdss-dsi-bl-inverted-dbv qcom,mdss-dsi-dma-trigger qcom,mdss-dsi-panel-lhbm-not-allowed-fps-list qcom,mdss-dsi-panel-status-value qcom,panel-supply-entries
qcom,mdss-dsi-bl-is-exponent qcom,mdss-dsi-hbm-fod qcom,mdss-dsi-panel-lhbm-wait-fps-valid qcom,mdss-dsi-panel-supplier qcom,platform-reset-gpio
qcom,mdss-dsi-bl-max-level qcom,mdss-dsi-hbm-fod-on-command qcom,mdss-dsi-panel-local-hbm-DC-HYBIRD-THRESHOLD-BL qcom,mdss-dsi-panel-type qcom,platform-te-gpio
qcom,mdss-dsi-bl-min-level qcom,mdss-dsi-hbm-off-command qcom,mdss-dsi-panel-local-hbm-alpha-register qcom,mdss-dsi-reset-sequence
qcom,mdss-dsi-bl-pmic-control-type qcom,mdss-dsi-hbm-on-command qcom,mdss-dsi-panel-local-hbm-alpha-size qcom,mdss-dsi-stream
qcom,mdss-dsi-bllp-eof-power-mode qcom,mdss-dsi-lane-0-state qcom,mdss-dsi-panel-local-hbm-alpha-table qcom,mdss-dsi-te-check-enable
malmo:/ # ls ./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_boe_vtdr6130a_ft3683g_667_1080x2400_dsc_cmd/qcom,mdss-dsi-display-timings/timing@0
name qcom,mdss-dsc-slice-height qcom,mdss-dsi-h-left-border qcom,mdss-dsi-nolp-command qcom,mdss-dsi-panel-height qcom,mdss-dsi-v-bottom-border
qcom,compression-mode qcom,mdss-dsc-slice-per-pkt qcom,mdss-dsi-h-pulse-width qcom,mdss-dsi-nolp-command-state qcom,mdss-dsi-panel-jitter qcom,mdss-dsi-v-front-porch
qcom,default-topology-index qcom,mdss-dsc-slice-width qcom,mdss-dsi-h-right-border qcom,mdss-dsi-off-command qcom,mdss-dsi-panel-phy-timings qcom,mdss-dsi-v-pulse-width
qcom,display-topology qcom,mdss-dsc-version qcom,mdss-dsi-h-sync-pulse qcom,mdss-dsi-off-command-state qcom,mdss-dsi-panel-width qcom,mdss-dsi-v-top-border
qcom,mdss-dsc-bit-per-component qcom,mdss-dsi-cmd-mode qcom,mdss-dsi-h-sync-skew qcom,mdss-dsi-on-command qcom,mdss-dsi-timing-switch-command
qcom,mdss-dsc-bit-per-pixel qcom,mdss-dsi-h-back-porch qcom,mdss-dsi-lp1-command qcom,mdss-dsi-on-command-state qcom,mdss-dsi-timing-switch-command-state
qcom,mdss-dsc-block-prediction-enable qcom,mdss-dsi-h-front-porch qcom,mdss-dsi-lp1-command-state qcom,mdss-dsi-panel-framerate qcom,mdss-dsi-v-back-porch
搜 mipi timing:
./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_boe_vtdr6130a_ft3683g_667_1080x2400_dsc_cmd/qcom,mdss-dsi-display-timings
qcom,mdss-dsi-panel-phy-timings
ls ./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@5e00000/qcom,mdss_dsi_mot_tm_icna3508_ft3683g_667_1080x2400_dsc_vid/qcom,mdss-dsi-display-timings/timing@0/
adb root 获取root
adb reboot edl
fastboot oem edl
fastboot flash dtbo dtbo.img
https://oa.huaqin/workflow/request/ManageRequestNoForm.jsp?viewdoc=&fromFlowDoc=&f_weaver_belongto_userid=474949&f_weaver_belongto_usertype=0&uselessFlag=&requestid=18265874&isrequest=0&isovertime=0&isaffirmance=&reEdit=1&seeflowdoc=0&isworkflowdoc=0&isfromtab=false&isSubmitDirect=#
https://oa.huaqin/wui/main.jsp?templateId=1 - 人事 - 保密区 -
P963F10 手动灭亮屏的打印: 相比于电源键 dpu 等未reset
6,33118,6687299931,c1,-,caller=T662;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:0 => 0 min_level:116,33119,6687306422,c6,-,caller=T596;[drm][ dpms_mode_store] input dpms mode is 36,33120,6687306435,c6,-,caller=T596;[drm] dsi_panel_set_dpms_mode(just skip it)6,33121,6687306510,c6,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()6,33122,6687306514,c6,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()6,33123,6687306520,c6,-,caller=T596;[drm] sprd_dsi_encoder_atomic_check()6,33124,6687306537,c6,-,caller=T596;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=3)6,33125,6687309977,c7,-,caller=T596;[drm][ dpu_stop] dpu stop6,33126,6687309995,c7,-,caller=T596;[drm] sprd_dpu_disable_vblank()6,33127,6687310008,c7,-,caller=T596;[drm] sprd_panel_disable() cmds_len=106,33129,6687310025,c7,-,caller=T596;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:lcd suspend power off6,33131,66873100
P963F10 手动灭亮屏的打印: 相比于电源键 dpu 等未reset
6,33118,6687299931,c1,-,caller=T662;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:0 => 0 min_level:11
6,33119,6687306422,c6,-,caller=T596;[drm][ dpms_mode_store] input dpms mode is 3
6,33120,6687306435,c6,-,caller=T596;[drm] dsi_panel_set_dpms_mode(just skip it)
6,33121,6687306510,c6,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()
6,33122,6687306514,c6,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()
6,33123,6687306520,c6,-,caller=T596;[drm] sprd_dsi_encoder_atomic_check()
6,33124,6687306537,c6,-,caller=T596;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=3)
6,33125,6687309977,c7,-,caller=T596;[drm][ dpu_stop] dpu stop
6,33126,6687309995,c7,-,caller=T596;[drm] sprd_dpu_disable_vblank()
6,33127,6687310008,c7,-,caller=T596;[drm] sprd_panel_disable() cmds_len=10
6,33129,6687310025,c7,-,caller=T596;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:lcd suspend power off
6,33131,6687310069,c7,-,caller=T596;[drm][sprd_pwm_backlight_update] last_backlevel == level,no set 0 => 0
6,33140,6687464822,c0,-,caller=T596;[drm] sprd_panel_unprepare()
6,33141,6687464831,c0,-,caller=T596;[drm] sprd_panel_unprepare() set lcd reset_gpio to 1
6,33142,6687594919,c7,-,caller=T596;[drm] sprd_panel_unprepare() tpd: suspend don' need power on, lcd power off
6,33144,6687594983,c7,-,caller=T596;[drm] sprd_dpu_atomic_disable()
6,33145,6687605095,c7,-,caller=T350;[disp-pm-domain][drm][ sprd_disp_power_off] disp power domain off
6,33177,6688967754,c1,-,caller=T596;[drm][ dpms_mode_store] input dpms mode is 0
6,33178,6688967764,c1,-,caller=T596;[drm] dsi is not inited,just skip
6,33179,6688967882,c1,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()
6,33180,6688967890,c1,-,caller=T596;[drm] sprd_dsi_connector_best_encoder()
6,33181,6688967899,c1,-,caller=T596;[drm] sprd_dsi_encoder_atomic_check()
6,33182,6688967924,c1,-,caller=T596;[drm] sprd_dpu_atomic_enable()
6,33183,6688977955,c1,-,caller=T596;[disp-pm-domain][drm][ sprd_disp_power_on] disp power domain on
6,33184,6688978014,c1,-,caller=T596;[drm][ dpu_clk_init] DPU_CORE_CLK = 384000000, DPI_CLK_SRC = 153600000
6,33185,6688978024,c1,-,caller=T596;[drm][ dpu_clk_init] dpi clock is 38400000
6,33186,6688978686,c1,-,caller=T596;[drm][ dpu_enhance_reload] enhance hsv reload
6,33187,6688978696,c1,-,caller=T596;[drm][ dpu_enhance_reload] enhance cm reload
6,33188,6688979081,c1,-,caller=T596;[drm][ dpu_enhance_reload] enhance gamma reload
6,33189,6688979117,c1,-,caller=T596;[drm] dpu resume OK
6,33190,6688979131,c1,-,caller=T596;[drm] sprd_dsi_encoder_enable(last_dpms=3, dpms=0)
6,33191,6688979162,c1,-,caller=T596;[drm][ sprd_dsi_init] escape clock divider = 4
6,33192,6688979199,c1,-,caller=T596;[drm][ sprd_dphy_init] lanes : 2
6,33193,6688979204,c1,-,caller=T596;[drm][ sprd_dphy_init] freq : 512000
6,33194,6688979667,c1,-,caller=T596;[drm] sprd_panel_prepare()
6,33195,6688979673,c1,-,caller=T596;[drm] sprd_panel_prepare() tpd:lcd power on
6,33213,6689035659,c1,-,caller=T596;[drm] sprd_panel_enable() lcd_name=lcd_easyquick_aixiesheng_boe_mipi_hd
6,33214,6689035662,c1,-,caller=T596;[drm] sprd_panel_enable() step 1
6,33223,6689216478,c1,-,caller=T596;[drm] sprd_panel_enable() step 2
6,33228,6689216590,c1,-,caller=T596;[drm][sprd_pwm_backlight_update] last_backlevel == level,no set 0 => 0
6,33229,6689216717,c1,-,caller=T596;[drm][ dpu_run] dpu run
6,33241,6689222565,c2,-,caller=T662;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:38 => 152 min_level:11
6,33242,6689222576,c2,-,caller=T662;[drm][sprd_pwm_backlight_update] [SPRD_LCD]sprd_pwm_backlight_update delay 60ms
6,33244,6689228887,c3,-,caller=T701;[drm] sprd_dpu_enable_vblank()
6,33252,6689290526,c3,-,caller=T937;[drm][ ssc_store] ssc is disabled by zte
P963F10 做esd recovery 的打印: 相比于esd dpu 有 reset
6,35162,6853203192,c5,-,caller=T15342;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:tp esd check error, notiry lcd esd
6,35163,6853532592,c2,-,caller=T701;[drm] sprd_dpu_enable_vblank()
6,35164,6853980438,c0,-,caller=T234;[drm] ====== esd recovery start ========
6,35165,6853980452,c0,-,caller=T234;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,35166,6853987960,c0,-,caller=T234;[drm][ dpu_stop] dpu stop
6,35167,6853987980,c0,-,caller=T234;[drm] sprd_dpu_disable_vblank()
6,35168,6853987994,c0,-,caller=T234;[drm] sprd_panel_disable() cmds_len=10
6,35170,6853988139,c0,-,caller=T234;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:lcd suspend power off
6,35172,6853988196,c0,-,caller=T234;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:38 => 0 min_level:11
6,35181,6854144561,c0,-,caller=T234;[drm] sprd_panel_unprepare()
6,35182,6854144568,c0,-,caller=T234;[drm] sprd_panel_unprepare() set lcd reset_gpio to 1
6,35183,6854274613,c0,-,caller=T234;[drm] sprd_panel_unprepare() tpd: suspend don' need power on, lcd power off
6,35185,6854274660,c0,-,caller=T234;[drm] sprd_dsi_encoder_enable(last_dpms=0, dpms=0)
6,35186,6854274686,c0,-,caller=T234;[drm][ sprd_dsi_init] escape clock divider = 4
6,35187,6854274722,c0,-,caller=T234;[drm][ sprd_dphy_init] lanes : 2
6,35188,6854274726,c0,-,caller=T234;[drm][ sprd_dphy_init] freq : 512000
6,35189,6854275209,c0,-,caller=T234;[drm] sprd_panel_prepare()
6,35190,6854275213,c0,-,caller=T234;[drm] sprd_panel_prepare() tpd:lcd power on
6,35198,6854331236,c0,-,caller=T234;[drm] sprd_panel_enable() lcd_name=lcd_easyquick_aixiesheng_boe_mipi_hd
6,35199,6854331239,c0,-,caller=T234;[drm] sprd_panel_enable() step 1
6,35200,6854508109,c0,-,caller=T234;[drm] sprd_panel_enable() step 2
6,35205,6854508233,c0,-,caller=T234;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:38 => 152 min_level:11
6,35206,6854508240,c0,-,caller=T234;[drm][sprd_pwm_backlight_update] [SPRD_LCD]sprd_pwm_backlight_update delay 60ms
6,35226,6854580386,c0,-,caller=T234;[drm][ dpu_run] dpu run
6,35227,6854580413,c0,-,caller=T234;[drm] ======= esd recovery end =========
6,35228,6854580418,c0,-,caller=T234;[drm] esd_count is 1
SPCSS01271783 S20 项目 90 hz
SPCSS01268544 SPCSS01274652 如何改 lk 阶段平台 pwm 的频率 , 目前在 logo 界面频率 101 khz ,超过了 100 khz 的最大频率
P963F10_T 有一个长时间待机,突然唤醒花屏问题,休眠唤醒不恢复,最后是没电才恢复的。射频干扰问题
94 三供屏回来了,做checklist
T_o=T_clk×(P_prescale+1)×(M_ +1)
T_o是输出的pwm频率,T_clk是外部时钟源26m,P_prescale是预分频系数,M_即mod。
int pwm_config(int pwm_id,int duty,int period)的三个参数分别对应PWM通道、占空比参数、周期。
占空比=duty / (period +1);
检查有无删除 faceid
adb shell ls /proc/device-tree/reserved-memory 或者 adb shell ls /sys/firmware/devicetree/base/reserved-memory
ai@ff410000 faceid-mem ise_med dptx_hdcp@fff10000
2023,12,12
1、P963F10 和 P720S20 陆续发现在 boot logo 亮起来的几秒钟内,pwm 频率达到了 101 khz 超过了背光芯片支持的最大频率 100khz,我打算再看一下 720S11 ,找一个符合要求的,把代码比对过去
2、P963F10 花屏问题
在 P720S11_T 项目中,/SPRD_T_5G_V1-P720S11_T/bsp/bootloader/lk/project/zte_staple.mk 中关掉了展锐平台中自带的两个屏:
LCD_G40396_TRULY_MIPI_FHD = 0
21 LCD_NT36672E_TRULY_MIPI_FHD = 0
因为这两个屏幕在平台.mk 中被打开了 /SPRD_T_5G_V1-P720S11_T/bsp/bootloader/lk/project/ums9620_2h10.mk
# attach lcd
99 LCD_G40396_TRULY_MIPI_FHD := 1
100 LCD_NT36672E_TRULY_MIPI_FHD := 1
image.png
P720S20 在上电时, vsp 先 5.5V (默认电压),再通过写 14 ,改成 6V
sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1); 打开 vsp 输出 ,tps65132 先输出默认电压 5V
zte_set_vsp_vsn_power 设为偏压 6V
mipi 上电的打印:
在 /SPRD_T_5G_V2-P720F02_T/bsp/modules/kernel5.4/display/dispc/sprd_dsi.c 中:
176 sprd_dsi_enable(dsi);177 sprd_dphy_enable(dsi->phy);178 179 sprd_dsi_lp_cmd_enable(dsi, true);
后
drm_panel_prepare(dsi->panel);
具有wakeup 属性的设备有无打上selinxu 标签
单独编译 : ./build.sh P720S20T -S -I -m SuspendSepolicyTests
生成产物:
./out/target/product/ums9620_2h10/testcases/SuspendSepolicyTests/arm64/SuspendSepolicyTests
lk 里的 6 分频 ,要打开同时打开,要关闭同时关闭 :
.dpi_clk_div = 6,
.video_lp_cmd_enable = true,
.hporch_lp_disable = true, 单独打开了此选项,导致了 S20 lk 阶段显示问题
kernel 里的 6 分频 ,要打开同时打开,要关闭同时关闭:
sprd,dpi-clk-div = <6>;
sprd,video-lp-cmd-enable = <1>;
sprd,hporch-lp-disable = <1>;
展锐下载工具快速加载 pac 包方法:
改 BinPack.ini 里的 LoadPolicy = 2
从lk 无法进入开机向导log
drm|surfaceflinger|zygote|hwcomposer
pd 是协议, 依赖 type c 接口 ; dp 是协议,显示的 ;
上下电情况:
lk 阶段上电 : io 电 , avdd , avee reset
mipi 上电平台提供不方便控; mipi 电在代码里体现在 dsi init ; vsp 上电后 mipi 上电, vsp 下电后 mipi 下电 ,通过 vsp vsn 间接控制 mipi 电 ; 如果想让 mipi 晚下电可增加休眠 10 寄存器的延时
kernel 阶段 上下电 :
唤醒 : avdd , avee , reset
休眠: reset , avee , avdd
image.png
在cmdline 和kernel log 中可查看log等级 loglevel=4 ,log 等级开到 7 再看 log
在sleep in 是关机和休眠用 里面的28 是关闭显示 display off , 延时 20 ms , 10 是 sleep in ,延时 120 ms
在 sleep out 和 initial command 里的11 出休眠 sleep out , 延时 120ms , 29 亮背光 display on 延时 20 ms
34 下 00 是关闭 te , 35 是打开 te 不写 35 也是关 te
2023年11月9日
1、找到了一个测vts wakeup的shell 脚本,翻译成Python就可以做成aio,目前在看逻辑
2、606f08 963f94验证common patch完成
2023年11月8日
1、更新解析亮屏时间分析脚本,增加set power 莫mode2 到 finish set ,finish set 到 lights write 以及 set mode 2 到 lights write 的时间统计,详情见https://i.zte/#/space/0f02556f60fa4c52bbdb92824de53df3/wiki/page/c0c4b9fda9b7463e96f4863e433930d8/view
2、vts 检查具有 wake up属性的,有无 selinux 标签,目前在手动寻找规律中
2023年11月6日
1、p720f03 反复下版本50次,未复现 lk 阶段花屏
2、p963f10 开机不休眠 esd 恢复不了,目前看来可能与 lk 阶段 porch 配错了有关,待验证
2023年11月3日
1、P963F10_T tp esd check error 通知 lcd 做 esd 代码添加
2、 P963F10_T 在 launcher 界面字体偏小问题分析,改了物理尺寸和 density 验证
2023年11月2日
1、 P720F03 common patch 验证,看起来的确是 T820 了,无问题,但是同时,我用 游戏版 P720F03 (后盖金黄色)的手机,发现在下完版本开机 boot logo 阶段花屏 2到 3 秒,刚开始是竖条纹花, 后来 ZTE 上一条横线的花 ,看起来此版本有问题 。 有照片(一次性)
2、P731F21 和 P963F10 check list
2023年11月1日
验证合入common Patch的P720f05,压测650次+。暂未发现LCD相关问题。
P 963f10做check list,发现桌面界面字体偏小。怀疑可能是物理尺寸或者density配置不对。明天继续核实一下
2023年10月31日
1、 更改了产生 boot logo 的脚本, create_splash.sh ,解决改前找不到 boot_logo 放一张低电 logo 问题
2、P731F21 兼容点亮 lcdtron 屏
3、P720S16 华映屏在进 deep standby 延时 100 ms
禁用 tp : cd vendor_dlkm/lib/modules 再 rmmod zte_tpd.ko
adb push D:\MYFILE\zte_tpd.ko ./vendor_dlkm/lib/modules/zte_tpd.ko 替换 tp 的ko
vendor/firmware 改模组 mv axs_firmware_easyquick.bin axs_firmware_easyquick2.bin 让找不到固件即可除去 tp
[Neptuneyt]$ echo $net
www.baidu
# 删除匹配字符串的左边,留下剩余部分
[Neptuneyt]$ echo ${net#*.} #这里用*.表示匹配到www.,用一个#表示删除匹配到的字符串,留下剩余的部分
baidu
# 用2个#号表示尽可能多的删除匹配到的字符串
[Neptuneyt]$ echo ${net##*.}
com
电流源的使用
按voltage 按enter number 按 4 按 Res(小数点) 按000000(多按几个0) 按 output(输出)
开关电源:
按 output
log 等级开到1 ,在打印完 lk 后进入kernel 会出现 console $: 就停下来,建议 log 等级开到 7
i2c transfer fail 可能是 i2c 的lane 数配置的不对,不影响亮屏,正负 6v 偏压没设成功不影响亮屏,因为背光芯片默认输出 5v 能点亮屏幕,如果需要用到 正负 6v 偏压芯片,需要在 /SPRD_T-P606F05_T/device/sprd/mpool/module/others/bsp/mfeature/kernel/kernel5.4/msoc/sharkl3/ko/zte_okra.mk
中加入 zte_lcdbl_vsp_vsn.ko
image.pngimage.png
s11是4 lane ,可通过的lcd座子原理图看出来,共用一组 clk 时钟信号, data 信号有4组,d0到d3
image.png
确认延时多少打背光,需要量 lcda (这是背光的正极,通常 20V 左右,一颗钉就是一个二极管,二极管差不多需要 3.3 v ,6 颗等差不多 20 V)与 d0p 和 d0n (d0p ,d0n 是mipi 的 data 信号,送图像的,上电前两帧画面不稳定,提前亮背光的话会看到闪屏或花屏) 的相位关系
设置 VSP vsn 6 v 时,i2c lane num 在 原理图里看
image.png
如果 git status 中出现modify 想回退修改可使用 git checkout xx.c 即可回退
grep -rn "pwm_backlight_update" ./bsp/kernel/kernel5.4/drivers/gpu/drm/sprd/ 可以过滤打印语句被打包在哪个 image 里了
cq 号 SPCSS01243276
S16 易快来屏 闪屏 ,同时 log 打印 dpu_isr
05354 < 3> [91482.905973] [10-09 16:17:52.905] [drm][ dpu_isr] int value check : reg int sts value is 0x2, gap value is 9
05355 < 3> [91482.905985] [10-09 16:17:52.905] [drm][ dpu_isr] int value check : clr value is 0x0, mmu0 int value is 0x0, mmu1 int value is 0x0
05384 < 3> [91483.989345] [10-09 16:17:53.989] [drm][ dpu_isr] int value check : reg int sts value is 0x2, gap value is 9
05385 < 3> [91483.989355] [10-09 16:17:53.989] [drm][ dpu_isr] int value check : clr value is 0x0, mmu0 int value is 0x0, mmu1 int value is 0x0
053D0 < 3> [91485.485984] [10-09 16:17:54.485] [drm][ dpu_isr] int value check : reg int sts value is 0x2, gap value is 9
另外一个确定版本是否生效的方法:
在 dtsi 里加上 zte,lcd-version-v000;
然后在手机上 adb shell "find -name zte,lcd-version-v000"
可见:
./sys/firmware/devicetree/base/lcds/lcd_huaying_sitronix_st7123_mipi_hdplus/zte,lcd-version-v000
./sys/firmware/devicetree/base/lcds/lcd_sitronix_st7123_qm065hs03_ykl_mipi_hdplus/zte,lcd-version-v000
./sys/firmware/devicetree/base/lcds/lcd_gc7202_skyworth_galaxycore_mipi_hdplus/zte,lcd-version-v000
./sys/firmware/devicetree/base/lcds/lcd_chipone_icnl9911c2_tongxingda_mipi_hdplus/zte,lcd-version-v000
./sys/firmware/devicetree/base/lcds/lcd_chipone_icnl9911c2_easyquick_mipi_hdplus/zte,lcd-version-v000
两套背光方案:
P963F94 IC 侧背光, 在overlay.dts 里不会配置平台侧背光:
452 &panel {
453 sprd,backlight = <&pwm_backlight>;
454 reset-gpio = <&ap_gpio 11 GPIO_ACTIVE_HIGH>;
455 };
所以 sprd_panel_probe 里平台背光节点就会找不到:
1730 bl_node = of_parse_phandle(slave->dev.of_node,1731 "sprd,backlight", 0);
1754 } else1755 DRM_WARN("backlight node not found\n");
1779 DRM_ERROR("222, backlight node not found\n");
0106C < 4> [ 3.964906] [09-21 04:16:01.964] [drm] backlight node not found
0106D < 3> [ 3.965162] [09-21 04:16:01.965] [drm:sprd_panel_probe [sprd_drm]] *ERROR* 222, backlight node not found 自己加的打印
与之对应的, IC 侧背光会走到:
在 sprd_oled_backlight_init 函数中
1331 p = of_get_property(oled_node, "sprd,reg-lock", &bytes);
1332 if (p) {1333 info->cmds[CMD_OLED_REG_LOCK] = p;
1334 info->cmds_len[CMD_OLED_REG_LOCK] = bytes;
1335 } else
1336 DRM_INFO("can't find sprd,reg-lock property\n");
1337
1338 p = of_get_property(oled_node, "sprd,reg-unlock", &bytes);
1339 if (p) {
1340 info->cmds[CMD_OLED_REG_UNLOCK] = p;
1341 info->cmds_len[CMD_OLED_REG_UNLOCK] = bytes;
1342 } else1343 DRM_INFO("can't find sprd,reg-unlock property\n");
1371 DRM_INFO("%s() ok\n", __func__);
0107C < 6> [ 4.029786] [09-21 09:36:27.029] [drm] sprd_oled_backlight_init() ok
0107A < 6> [ 4.029778] [09-21 09:36:27.029] [drm] can't find sprd,reg-lock property
0107B < 6> [ 4.029781] [09-21 09:36:27.029] [drm] can't find sprd,reg-unlock property
0107C < 6> [ 4.029786] [09-21 09:36:27.029] [drm] sprd_oled_backlight_init() ok
如果两个背光都加上,则会死机:
[ 19.535857]c0 [ T349] [<c01129d4>] (unwind_backtrace) from [<c010e18c>] (show_stack+0x20/0x24)
[ 19.535891]c0 [ T349] [<c010e18c>] (show_stack) from [<c0d5c624>] (dump_stack+0x88/0xb4)
[ 19.535928]c0 [ T349] [<c0d5c624>] (dump_stack) from [<c03d6dac>] (sysfs_warn_dup+0x68/0x74)
[ 19.535966]c0 [ T349] [<c03d6dac>] (sysfs_warn_dup) from [<c03d713c>] (sysfs_do_create_link_sd+0xa0/0xdc)
[ 19.536003]c0 [ T349] [<c03d713c>] (sysfs_do_create_link_sd) from [<c074f358>] (device_add+0x2a0/0x7c0)
[ 19.536024]c0 [ T349] [<c074f358>] (device_add) from [<c06637cc>] (backlight_device_register+0x11c/0x204)
[ 19.536064]c0 [ T349] [<c06637cc>] (backlight_device_register) from [<c0663a94>] (devm_backlight_device_register+0x64/0xa0)
[ 19.536649]c0 [ T349] [<c0663a94>] (devm_backlight_device_register) from [<bf102ee8>] (sprd_panel_probe+0x4c8/0x914 [sprd_drm])
[ 19.537130]c0 [ T349] [<bf102ee8>] (sprd_panel_probe [sprd_drm]) from [<c07546e4>] (really_probe+0x130/0x498)
[ 19.537166]c0 [ T349] [<c07546e4>] (really_probe) from [<c07544d0>] (driver_probe_device+0xc8/0x1ac)
[ 19.537199]c0 [ T349] [<c07544d0>] (driver_probe_device) from [<c0754cec>] (device_driver_attach+0x60/0x68)
[ 19.537233]c0 [ T349] [<c0754cec>] (device_driver_attach) from [<c0754de8>] (__driver_attach+0x44/0x13c)
[ 19.537271]c0 [ T349] [<c0754de8>] (__driver_attach) from [<c075244c>] (bus_for_each_dev+0x98/0xc8)
[ 19.537310]c0 [ T349] [<c075244c>] (bus_for_each_dev) from [<c0752b80>] (bus_add_driver+0x11c/0x230)
[ 19.537346]c0 [ T349] [<c0752b80>] (bus_add_driver) from [<c07568f8>] (driver_register+0x78/0x10c)
[ 19.537771]c0 [ T349] [<c07568f8>] (driver_register) from [<bf177068>] (init_module+0x68/0x1000 [sprd_drm])
[ 19.538193]c0 [ T349] [<bf177068>] (init_module [sprd_drm]) from [<c0102ea0>] (do_one_initcall+0x68/0x2b4)
[ 19.538236]c0 [ T349] [<c0102ea0>] (do_one_initcall) from [<c01ef7cc>] (do_init_module+0x58/0x1f0)
[ 19.538275]c0 [ T349] [<c01ef7cc>] (do_init_module) from [<c01eed74>] (load_module+0x1b10/0x2078)
[ 19.538312]c0 [ T349] [<c01eed74>] (load_module) from [<c01ebbec>] (sys_finit_module+0xf4/0x11c)
[ 19.538348]c0 [ T349] [<c01ebbec>] (sys_finit_module) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
[ 19.538364]c0 [ T349] Exception stack(0xe8a0bfa8 to 0xe8a0bff0)
[ 19.538395]c0 [ T349] bfa0: ffffffff 00000000 00000004 becf8589 00000000 00000000
[ 19.538431]c0 [ T349] bfc0: ffffffff 00000000 00000000 0000017b becf8768 becf8748 00000000 becf8589
[ 19.538455]c0 [ T349] bfe0: becf8580 becf8570 0041a87d b69e84ac
[ 19.539126]c0 [ T349] [drm:sprd_panel_probe [sprd_drm]] *ERROR* failed to register oled backlight ops
[ 19.539172]c0 [ T349] ------------[ cut here ]------------
2023,1,18
focal 敦泰
ilitek 奕力
lcetron 联创
easyquick 易快来
#ifdefine 和 #else在vscode中可以用- 来折叠
帧率不够 -> 硬件刷新率是否 58? 测mipi波形,TE信号 ,systrace 上层帧率
查看当前应用名 adb shell "dumpsys window | grep -i mCurrent"
通过应用名来找 pid 在systrace 上确认看哪个的 UI Thread 和 Render adb shell "ps -ef | grep -i baidu"
将图片 push 到手机里
DCIM\camera
python -m ensurepip --default-pip python 安装 pip
kernel.log 里休眠唤醒关键字
zte powerkey pressed|sprd_panel_prepare|sprd_panel_enable|dpu_run|sprd_pwm_backlight_update|dpu_stop|sprd_panel_disable|sprd_panel_unprepare
cat /dev/kmsg |grep -iE 'zte powerkey pressed|sprd_panel_prepare|sprd_panel_enable|dpu_run|sprd_pwm_backlight_update|dpu_stop|sprd_panel_disable|sprd_panel_unprepare'
adb shell "cat /dev/kmsg |grep -iE 'zte powerkey pressed|sprd_panel_prepare|sprd_panel_enable|dpu_run|sprd_pwm_backlight_update|dpu_stop|sprd_panel_disable|sprd_panel_unprepare'"
S11 kernel 唤醒流程
6,23423832,258168913650,c0,-,caller=T21153;gpio_keys_gpio_report_event:zte powerkey pressed!
6,23423837,258168945442,c3,-,caller=T1220;[drm] sprd_dsi_connector_best_encoder()
6,23423838,258168945452,c3,-,caller=T1220;[drm] sprd_dsi_connector_best_encoder()
6,23423848,258168947417,c3,-,caller=T1220;[drm] sprd_panel_prepare() avdd置1 avee置1 reset 按照dtsi sprd,reset-on-sequence 中 高低高
6,23423849,258168947421,c3,-,caller=T1220;[drm] sprd_panel_prepare() tpd:lcd power on
6,32652,1055991469,c7,-,caller=T640;[drm] sprd_panel_enable() lcd_name=lcd_huaying_st7123_boe_6p517_mipi_hd_4lane 发 initial code
6,32653,1055991470,c7,-,caller=T640;[drm] This panel ic is not icnl9911c
6,23423901,258169104751,c0,-,caller=T21153;gpio_keys_gpio_report_event:zte powerkey released!
6,23423961,258169190383,c1,-,caller=T1220;[drm][ dpu_run] dpu run
6,23423965,258169195653,c1,-,caller=T1220;[drm] sprd_dsi_connector_best_encoder()
6,23423966,258169195662,c1,-,caller=T1220;[drm] sprd_dsi_connector_best_encoder()
6,23423979,258169201346,c1,-,caller=T664;[drm][sprd_pwm_backlight_update] [SPRD_LCD]sprd_pwm_backlight_update delay 34ms
6,23423991,258169223960,c3,-,caller=T388;[drm][zte_panel_fps_send_uevent] [SPRD_LCD]FPS: send fps 90
S11 cat /dev/kmsg 切帧率流程
6,65066356,241339120521,c2,-,caller=T835;[drm] sprd_dpu_enable_vblank()
6,65066358,241339154596,c0,-,caller=T633;[drm] vrr going, flush current esd work and cancel ongoing work
6,65066359,241339154624,c0,-,caller=T633;[drm] sprd_dsi_connector_best_encoder()
6,65066360,241339154629,c0,-,caller=T633;[drm] sprd_dsi_connector_best_encoder()
6,65066361,241339154642,c0,-,caller=T633;[drm] sprd_dpu_mode_valid() mode: "720x1600": 90 128000 720 756 760 796 1600 1760 1764 1796 0x40 0x0
6,65066362,241339154646,c0,-,caller=T633;[drm] sprd_dsi_encoder_atomic_check()
6,65066363,241339154664,c0,-,caller=T633;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,65066364,241339154673,c0,-,caller=T633;[drm] sprd_dpu_disable_vblank()
6,65066365,241339154704,c0,-,caller=T633;[drm] sprd_dpu_mode_set_nofb() mode: "720x1600": 90 128000 720 756 760 796 1600 1760 1764 1796 0x40 0x0
6,65066366,241339154710,c0,-,caller=T633;[drm][ dpu_modeset] begin switch to 720 x 1600
6,65066367,241339154716,c0,-,caller=T633;[drm] sprd_dsi_encoder_mode_set() mode: "720x1600": 90 128000 720 756 760 796 1600 1760 1764 1796 0x40 0x0
6,65066368,241339154722,c0,-,caller=T633;[drm] sprd_dsi_encoder_enable(last_dpms=0, dpms=0)
6,65066369,241339154723,c0,-,caller=T633;[drm] skip dsi resume
6,65066370,241339154795,c2,-,caller=T835;[drm] sprd_dpu_enable_vblank()
6,65066371,241339177230,c2,-,caller=T362;[drm][ dpu_wait_stop_done] dpu is idle now
6,65066372,241339177236,c2,-,caller=T362;[drm][ dpu_stop] dpu stop
6,65066373,241339177686,c2,-,caller=T362;[drm][zte_panel_fps_send_uevent] [SPRD_LCD]FPS: send fps 90
6,65066374,241339177693,c2,-,caller=T362;[drm] vrr finished, schedule esd work
6,65066382,241339754298,c0,-,caller=T633;[drm] vrr going, flush current esd work and cancel ongoing work
6,65066383,241339754333,c0,-,caller=T633;[drm] sprd_dsi_connector_best_encoder()
6,65066384,241339754346,c0,-,caller=T633;[drm] sprd_dsi_connector_best_encoder()
6,65066385,241339754368,c0,-,caller=T633;[drm] sprd_dpu_mode_valid() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,65066386,241339754377,c0,-,caller=T633;[drm] sprd_dsi_encoder_atomic_check()
6,65066387,241339754405,c0,-,caller=T633;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,65066388,241339754418,c0,-,caller=T633;[drm] sprd_dpu_disable_vblank()
6,65066389,241339754489,c0,-,caller=T633;[drm] sprd_dpu_mode_set_nofb() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,65066390,241339754500,c0,-,caller=T633;[drm][ dpu_modeset] begin switch to 720 x 1600
6,65066391,241339754515,c0,-,caller=T633;[drm] sprd_dsi_encoder_mode_set() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,65066392,241339754527,c0,-,caller=T633;[drm] sprd_dsi_encoder_enable(last_dpms=0, dpms=0)
6,65066393,241339754531,c0,-,caller=T633;[drm] skip dsi resume
6,65066394,241339754657,c1,-,caller=T835;[drm] sprd_dpu_enable_vblank()
6,65066396,241339780439,c1,-,caller=T362;[drm][ dpu_wait_stop_done] dpu is idle now
6,65066397,241339780447,c1,-,caller=T362;[drm][ dpu_stop] dpu stop
6,65066398,241339781186,c1,-,caller=T362;[drm][zte_panel_fps_send_uevent] [SPRD_LCD]FPS: send fps 60
6,65066399,241339781197,c1,-,caller=T362;[drm] vrr finished, schedule esd work
S11 cat /dev/kmsg 休眠打印
6,113727,1113232372,c1,-,caller=T204;gpio_keys_gpio_report_event:zte powerkey pressed!
6,113729,1113416207,c1,-,caller=T204;gpio_keys_gpio_report_event:zte powerkey released!
6,430206,8568900393,c3,-,caller=T9897;[drm] sprd_dsi_connector_best_encoder()
6,430207,8568900397,c3,-,caller=T9897;[drm] sprd_dsi_connector_best_encoder()
6,430208,8568900403,c3,-,caller=T9897;[drm] sprd_dsi_encoder_atomic_check()
6,430210,8568902470,c2,-,caller=T9897;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,430211,8568918937,c2,-,caller=T9897;[drm][ dpu_wait_stop_done] dpu is idle now
6,430212,8568918944,c2,-,caller=T9897;[drm][ dpu_stop] dpu stop
6,430213,8568918958,c2,-,caller=T9897;[drm] sprd_dpu_disable_vblank()
6,430214,8568919385,c2,-,caller=T9897;[drm] sprd_panel_disable() cmds_len=68 发 sleep in command
6,430217,8568919405,c2,-,caller=T9897;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:lcd suspend powe off
6,430219,8568919458,c2,-,caller=T9897;[drm][sprd_pwm_backlight_update] last_backlevel == level,no set 0 => 0
6,430227,8569084170,c0,-,caller=T9897;[drm] sprd_panel_unprepare()
6,30169,845388106,c2,-,caller=T840;[drm] sprd_panel_unprepare() set lcd reset_gpio to 1 avee 置0 avdd 置0 reset 按照dtsi sprd,reset-off-sequence 中置 1
6,430228,8569124483,c4,-,caller=T9897;[drm] sprd_panel_unprepare() tpd: suspend don' need power on, lcd power off
6,430230,8569124571,c4,-,caller=T9897;[drm] sprd_dpu_atomic_disable()
6,430280,8569344941,c0,-,caller=T761;[drm][ dpu_enhance_backup] enhance module disable backup: 0x1c0
插拔 usb 打印关键词 usb_ch 500 是插线,0 是拔线
android.log 里与休眠唤醒关键字
Powerkey down|Powerkey up|setting power mode|Waking up from Asleep|sprd_backlight|Going to sleep due to
Powerkey down|Powerkey up|setting power mode|Waking up from Asleep|sprd_backlight|Going to sleep due to|WindowManager
logcat |grep -iE 'Powerkey down|Powerkey up|setting power mode|Waking up from Asleep|sprd_backlight|Going to sleep due to'
adb shell "logcat |grep -Ei 'Powerkey down|Powerkey up|setting power mode|Waking up from Asleep|sprd_backlight|Going to sleep due to'"
P720F03 android log 的屏幕唤醒流程:
Line 351656: S0528FD 07-11 19:05:39.584 1594 1795 D WindowManager: Receive Input KeyEvent of Powerkey down windows manager 收到按键按下
Line 351683: S052918 07-11 19:05:39.587 1594 1795 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)... 唤醒
Line 351823: M05296D 07-11 19:05:39.602 700 700 D SurfaceFlinger: Setting power mode 2 on display 0 设置亮屏
Line 353435: S052FA6 07-11 19:05:39.770 1594 1795 D WindowManager: Receive Input KeyEvent of Powerkey up windows manager 收到按键松开
Line 353691: M0530A6 07-11 19:05:39.899 700 700 D SurfaceFlinger: Finished setting power mode 2 on display 0 设置亮屏完成 ; 对应 kernel 里的上电和初始化
Line 353714: M0530BD 07-11 19:05:39.905 668 668 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=73 写亮度节点,亮屏
P720S11 android log 的屏幕唤醒流程:
03-03 09:03:28.044 13 13 I gpio_keys_gpio_report_event: zte powerkey pressed!
03-03 09:03:28.054 1553 1729 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)... 因电源键唤醒
03-03 09:46:10.104 1554 5773 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_GESTURE, details=com.zte.zgesture:RaiseWake)... 因抬手亮屏唤醒
03-03 09:03:28.071 696 696 D SurfaceFlinger: Setting power mode 2 on displ
03-03 09:03:28.246 13 13 I gpio_keys_gpio_report_event: zte powerkey released!
03-03 09:03:28.306 696 696 D SurfaceFlinger: Finished setting power mode 2 on display 0
03-03 09:03:28.318 654 654 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=150
P720F03 android log 的屏幕休眠流程:
Line 353965: S05318D 07-11 19:05:49.583 1594 1703 I PowerManagerService: Going to sleep due to timeout (uid 1000)...
Line 354094: M05320E 07-11 19:05:49.701 668 668 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=0
Line 354180: M05323D 07-11 19:05:49.710 700 700 D SurfaceFlinger: Setting power mode 0 on display 0
Line 354653: M053416 07-11 19:05:50.023 700 700 D SurfaceFlinger: Finished setting power mode 0 on display 0
P720S11 android log 的屏幕休眠流程:
03-03 09:07:52.669 13 13 I gpio_keys_gpio_report_event: zte powerkey pressed!
03-03 09:07:52.872 13 13 I gpio_keys_gpio_report_event: zte powerkey released!
03-03 09:48:14.008 1554 1554 I PowerManagerService: Going to sleep due to power_button (uid 1000)... power键休眠
03-03 09:46:20.751 1554 1646 I PowerManagerService: Going to sleep due to timeout (uid 1000)... 超时导致休眠
03-03 09:46:20.756 659 659 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=0 关背光
03-03 09:46:20.786 751 751 D SurfaceFlinger: Setting power mode 0 on display 0 设置灭屏
03-03 09:46:20.995 751 751 D SurfaceFlinger: Finished setting power mode 0 on display 0 设置灭屏完成
几个项目的亮度条最中间的背光亮度
项目 logcat dev
P720S11_T 73/255=0.286 70->280/255->1023 =0.274
P963F94_T 22/255=0.086 369/4095=0.09
Z5302O_T 23/255=0.09 22/255=0.086
P963F80_R 129/255=0.50 88/255=0.34
P963F23_S GO 22/255=0.098 22/255=0.098
S11 转换亮度的 log
中间亮度,在把 overlay 中数组改成线性背光之前:
pr_info("%s: brightness min:%u old: %u => zte:%u => level:%u\n", __func__, bl->min_level, bl_preset, bl_convert, level);
6,39079,1049625133,c1,-,caller=T657;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:67 => 125 min_level:11
下发 67 ,在 overlay 中数组第 67 个数字是 125 ,67/255=0.262 125/1024=0.122
中间亮度,在把 overlay 中数组改成线性背光之后:
pr_info("%s: brightness min:%u old: %u => zte:%u => level:%u\n", __func__, bl->min_level, bl_preset, bl_convert, level);
6,39079,1049625133,c1,-,caller=T657;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:67 => 268 min_level:11
下发 67 ,在 overlay 中数组第 67 个数字是 268 , 67/255=0.262 268/1024=0.261
(在logcat 中打印 :
08-22 00:58:22.693 657 657 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=67
08-22 02:01:32.014 657 657 I [drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:67 => 268 min_level:11
)
如果打开 CONFIG_ZTE_LCD_BACKLIGHT_LEVEL_CURVE 宏控,则中间还会再转换一次亮度: level -> convert -> level ,不过此宏控删掉很久了
pr_info("%s: brightness min:%u old: %u => zte:%u => level:%u\n", __func__, bl->min_level, bl_preset, bl_convert, level);
6,134755,1223094972,c3,-,caller=T671;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: 222,brightness min:11 old: 67 => zte:31 => level:124
67 是下发的亮度, 在 comm.c 里的数组第 67 个数字找到 convert = 31 ,在 overlay 里的数组第 31 个数字找到 level = 124 ,67/255=0.262 31/255=0.121 124/1024=0.121
(在 logcat 中打印:
08-28 14:19:34.079 671 671 D LIGHTS : func:write_int, path=/sys/class/backlight/sprd_backlight/brightness, value=67
08-28 14:21:23.215 671 671 I [drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: 222,brightness min:11 old: 67 => zte:31 => level:124
)
提 cq 的联系人: yang.chaofeng@zte,yang.yanpeng@zte,wang.jianping3@zte,dong.yuanjie@zte,qu.tao5@zte,
P720S16 华映屏闪屏,且log 出现 "Warning: (vsync + vbp) < 32, underflow risk!\n" 和 dpu underflow 打印 , cq SPCSS01196644
adb shell "cat /sys/class/devfreq/scene-frequency/sprd-governor/ddrinfo_freq_table" 查看可用 lcdon 频率
http://10.67.16.29:8080/c/device/sprd/mpool/+/1085969 去掉 tp 驱动
notepad++ 搜索框不见了, F7 后按 ALT + space 或者双击下边栏
在 0-android_system.log
07-14 14:28:24.055 1605 2907 D RefreshRate: setDesiredConfig fps : 90, who : touch, isUnlockCompleted : true, testing : false // 框架设置刷新率成功
07-14 14:28:24.100 1605 1771 D RefreshRate: onUEvent status : 90 // 驱动上报切换后的刷新率值
adb shell "dumpsys SurfaceFlinger |grep refresh" 查看有哪些刷新率可选
esd 恢复流程
6,97320,525878530,c3,-,caller=T878;[drm] sprd_dpu_enable_vblank()
6,97367,531164654,c0,-,caller=C0;[drm] sprd_dpu_disable_vblank()
6,97387,531958399,c7,-,caller=T6806;[drm][ dwrite_store] [SPRD_LCD]dtype = 0x05,write cmd = 0x10,length = 0x02
3,97390,533148955,c0,-,caller=T486;[drm:sprd_panel_te_check [sprd_drm]] *ERROR* TE esd timeout.
6,97391,533148982,c0,-,caller=T486;[drm] ====== esd recovery start ========
6,97392,533148989,c0,-,caller=T486;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,97393,533153579,c0,-,caller=T486;[drm][ dpu_wait_stop_done] dpu is idle now
6,97394,533153581,c0,-,caller=T486;[drm][ dpu_stop] dpu stop
6,97395,533153944,c0,-,caller=T486;[drm] sprd_panel_disable() cmds_len=68
6,97398,533153956,c0,-,caller=T486;[drm][lcd_tpd_notifier_callback] [SPRD_LCD]lcd_tpd_notifier_callback:lcd suspend powe off
6,97400,533153966,c0,-,caller=T486;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:96 => 0 min_level:11
6,97408,533320661,c0,-,caller=T486;[drm] sprd_panel_unprepare()
6,97409,533320677,c0,-,caller=T486;[drm] sprd_panel_unprepare() set lcd reset_gpio to 1
6,97422,533360743,c0,-,caller=T486;[drm] sprd_panel_unprepare() tpd: suspend don' need power on, lcd power off
6,97424,533360789,c0,-,caller=T486;[drm] sprd_dsi_encoder_enable(last_dpms=0, dpms=0)
6,97425,533360824,c0,-,caller=T486;[drm][ sprd_dsi_init] escape clock divider = 5
6,97426,533360959,c0,-,caller=T486;[drm][ sprd_dphy_init] lanes : 4
6,97427,533360961,c0,-,caller=T486;[drm][ sprd_dphy_init] freq : 768000
6,97428,533361934,c0,-,caller=T486;[drm] sprd_panel_prepare()
6,97429,533361936,c0,-,caller=T486;[drm] sprd_panel_prepare() tpd:lcd power on
6,97437,533437929,c0,-,caller=T486;[drm] sprd_panel_enable() lcd_name=lcd_icnl9911c2_easyquick_hkc_6p517_mipi_hd_chipone_4lane
6,97438,533437933,c0,-,caller=T486;[drm] icnl9911c_f6=0x2e
6,97447,533608508,c0,-,caller=T486;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:96 => 385 min_level:11
6,97448,533608514,c0,-,caller=T486;[drm][sprd_pwm_backlight_update] [SPRD_LCD]sprd_pwm_backlight_update delay 34ms
6,97453,533652796,c0,-,caller=T486;[drm][ dpu_run] dpu run
6,97454,533652838,c0,-,caller=T486;[drm] ======= esd recovery end =========
6,97455,533652840,c0,-,caller=T486;[drm] esd_count is 1
6,450081,10126834475,c1,-,caller=T891;[drm] vrr going, flush current esd work and cancel ongoing work
6,450082,10126834506,c1,-,caller=T891;[drm] sprd_dsi_connector_best_encoder()
6,450083,10126834511,c1,-,caller=T891;[drm] sprd_dsi_connector_best_encoder()
6,450084,10126834526,c1,-,caller=T891;[drm] sprd_dpu_mode_valid() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,450085,10126834531,c1,-,caller=T891;[drm] sprd_dsi_encoder_atomic_check()
6,450086,10126834553,c1,-,caller=T891;[drm] sprd_dsi_encoder_disable(last_dpms=0, dpms=0)
6,450087,10126834561,c1,-,caller=T891;[drm] sprd_dpu_disable_vblank()
6,450088,10126834608,c1,-,caller=T891;[drm] sprd_dpu_mode_set_nofb() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,450089,10126834616,c1,-,caller=T891;[drm][ dpu_modeset] begin switch to 720 x 1600
6,450090,10126834629,c1,-,caller=T891;[drm] sprd_dsi_encoder_mode_set() mode: "720x1600": 60 128000 720 756 760 796 1600 2622 2626 2658 0x48 0x0
6,450091,10126834637,c1,-,caller=T891;[drm] sprd_dsi_encoder_enable(last_dpms=0, dpms=0)
6,450092,10126834640,c1,-,caller=T891;[drm] skip dsi resume
6,450093,10126835544,c1,-,caller=T878;[drm] sprd_dpu_enable_vblank()
6,450095,10126874776,c3,-,caller=T388;[drm][ dpu_wait_stop_done] dpu is idle now
6,450096,10126874786,c3,-,caller=T388;[drm][ dpu_stop] dpu stop
6,450097,10126875872,c3,-,caller=T388;[drm][zte_panel_fps_send_uevent] [SPRD_LCD]FPS: send fps 60
6,450098,10126875880,c3,-,caller=T388;[drm] vrr finished, schedule esd work
S11 格科屏检测 id 的流程:
[00002872] [c1] cpu num 1
[00002873] [c0] creating secondary task
[00002876] [c1] entering scheduler on cpu 1
[00002879] [c0] arch_context_switch: cpu 0, old 0xb5722018 (bootstrap2, pri 16, flags 0x27), new 0xb5729318 (sprd_preload, pri 24, flags 0x27)
[00002890] [c1] arch_context_switch: cpu 1, old 0xb5197790 (idle 1, pri 0, flags 0x11), new 0xb5726418 (secondarybootstrap2, pri 16, flags 0x27)
[00002902] [c0] [lk core0] enter sprd_preload
[00002905] [c1] arch_context_switch: cpu 1, old 0xb5726418 (secondarybootstrap2, pri 16, flags 0x27), new 0xb572b718 (sprd_lcd, pri 24, flags 0x27)
[00002917] [c1] [lk core1] enter sprd_lcd
[00002920] [c1] lcd start init time:2920ms
[00002923] [c1] [sprdfb][sprd_panel_probe] zte sprd_panel_probe begin zte_lcd_detect_id = 0xfffe OPT_ID=0x9f name=lcd_chipone_icnl9911c2_tongxingda_mipi_hdplus
[00002936] [c1] [sprdfb][sprd_panel_probe] zte_lcd_detect sprd_t v1.0.0 ,there has no read panel id
[00002959] [c1] [sprdfb][mipi_dsi_init] escape clk div = 5
[00002964] [c1] [sprdfb][sprd_dsi_resume] dsi init OK
[00002967] [c1] [sprdfb][mipi_dphy_configure] lanes : 4
[00002971] [c1] [sprdfb][mipi_dphy_configure] freq : 768000
[00002977] [c1] [sprdfb][sprd_dphy_resume] dphy init OK
[00002981] [c1] [sprdfb][icnl9911c2_power] icnl9911c2_power on
[00003160] [c1] [sprdfb][icnl9911c2_readid] icnl9911c2 V2 read id:0x4a,0x0,0x0,0x0
[00003166] [c1] [sprdfb][icnl9911c2_power] icnl9911c2_power off V2
[00003201] [c1] [sprdfb][sprd_dphy_suspend] dphy uninit OK
[00003206] [c1] [sprdfb][sprd_dsi_suspend] dsi uninit OK
[00003211] [c1] [sprdfb][sprd_panel_probe] attach panel 0x9f failed, try next...
[00003217] [c1] [sprdfb][sprd_panel_probe] zte sprd_panel_probe begin zte_lcd_detect_id = 0x4a OPT_ID=0xa3 name=lcd_chipone_icnl9911c2_easyquick_mipi_hdplus
[00003229] [c1] [sprdfb][sprd_panel_probe] zte sprd_panel_probe begin zte_lcd_detect_id = 0x4a OPT_ID=0x4a name=lcd_gc7202_skyworth_galaxycore_mipi_hdplus
[00003258] [c1] [sprdfb][mipi_dsi_init] escape clk div = 7
[00003262] [c1] [sprdfb][sprd_dsi_resume] dsi init OK
[00003266] [c1] [sprdfb][mipi_dphy_configure] lanes : 4
[00003270] [c1] [sprdfb][mipi_dphy_configure] freq : 1012480
[00003275] [c1] [sprdfb][sprd_dphy_resume] dphy init OK
[00003279] [c0] load boot.img succeed!!
[00003282] [c1] [sprdfb][gc7202_power] gc7202_power on
[00003461] [c1] [sprdfb][sprd_panel_probe] attach panel 0x4a success twice
[00003466] [c1] i2c6, freq=100000
[00003469] [c1] i2c6, freq=100000
[00003472] [c1] i2c6, freq=100000
[00003475] [c1] [sprdfb][zte_set_vsp_vsn_power] zte_set_vsp_vsn_power to 6V sucess
[00003481] [c1] [sprdfb][gc7202_init] gc7202_init start
[00003627] [c1] [sprdfb][sprd_panel_probe] panel_init info->is_icnl9911c=0 ,supported_panel[i].lcd_id=74
[00003635] [c1] [sprdfb][calc_dpi_clk_src] calc DPI_CLK_SRC failed, use default
[00003641] [c1] [sprdfb][dispc_clk_init] DPU_CORE_CLK = 614000000
[00003646] [c1] [sprdfb][dispc_clk_init] DPI_CLK_SRC = 256000000
[00003651] [c1] [sprdfb][dispc_clk_init] DPU_CORE_CLK = 614000000, DPI_CLK_DIV = 8
[00003657] [c1] [sprdfb][dpu_run] dpu run
[00003660] [c1] [sprdfb][sprd_dispc_resume] dispc init OK
[00003664] [c1] [sprdfb][logo_mem_init] splashimage addr is 0x0x9d000000, fb size is 0x9e4000
[00003672] [c1] logo memory init success.
[00003674] [c1] splash_get_bpix: ZTE_LCD_DISPLAY_SPLASH defined bpix = 8
[00003680] [c1] [sprdlk][lcd_init] [LCD] Using LCD frambuffer at 0xb0000000
[00003686] [c1] [sprdlk][lcd_clear] [LCD] setting up console...
[00003690] [c1] lcd_console: have 90/100 col/rws on scr 720x1600 (0 deg rotated)
[00003861] [c0] load vendor_boot.img succeed!!
[00003864] [c1] Found Data: name=zte_variantflag; head=this-is-cfg-head; str=UNI_CN; signature=cfg-signature-is-here
[00003873] [c0] sprd_preload consume 974ms
[00003876] [c1] getcfgbyname cfgname=zte_variantflag, c=this-is-cfg-head
unlock 的方法 (解 bl 锁)为了push 东西到手机
1、adb reboot bootloader
2、fastboot flashing unlock_bootloader C:\Users\10335101\Downloads\adb1039_fastboot_unlock_newkey\signature_file 此时无adb 口,直接用此命令即可
3、按音量下键,显示成功后
4、fastboot reboot
5、adb push D:\MYFILE\OLD\apk\fps_mode_test.sh system/bin/
6、nohup fps_mode_test.sh &
7、adb push 失败可以 adb root 再 adb remount 重启后需要重新 adb root 和 adb remount
如果要看 TA 分支的代码,可以拉下来。 先 repo init (不加 --depth=1) ,随后 repo sync (不加-c) ,再 git branch 查看有哪些分支名,再 git checkout 分支名
切换分支
跳过开机向导命令
adb shell settings put secure user_setup_complete 1
adb shell settings put global device_provisioned 1
adb reboot
打开刷新率
adb shell service call SurfaceFlinger 1034 i32 1
aio 自测用例 取代码命令:
拉代码命令:
git clone "http://10335101@10.67.16.29:8080/a/platform/tools/testcase" -b tradefed && (cd "testcase" && mkdir -p .git/hooks && curl -Lo `git rev-parse --git-dir`/hooks/commit-msg http://10335101@10.67.16.29:8080/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
(从网页里找 http://10.67.16.29:8080/admin/repos/platform/tools/testcase windows 系统建议从网页带 http 的命令拉)
推送
git push origin HEAD:refs/for/tradefed
参考资料:
1、这是其他同事写的 py的测试用例,可以先参考下。py的用例编写比较简单。
http://10.67.16.29:8080/plugins/gitiles/platform/tools/testcase/+/refs/heads/tradefed/P_testcase/testcases/
2、这里是配置文件,用例编写完如果需要上线测试,需要加上配置文件。
http://10.67.16.29:8080/plugins/gitiles/platform/tools/testcase/+/refs/heads/tradefed/P_testcase/config
3、代码库修改记录查询
http://10.67.16.29:8080/q/project:platform%252Ftools%252Ftestcase
4、每日构建 AIO 项目
https://ct.zd.zte/view=Dailybuild&view_type=all
5、云真机
http://ct.zd.zte/pandora
取 CQ 中的patch 文档 主机名 ftp.unisoc 用户名 zte_sh 密码 3hTzs3tk 再 通用设置里 改为 HTTP/1.1 代理主机 proxysh.zte 代理端口 80
time ./build.sh P720S11_T -S -I -v userdebug -m vendor_dlkmimage -j 40 可编译sprd-drm.ko
生成的ko在目录 Z:\sprd\P720S11_T1\out\target\product\ums9620_2h10\vendor_dlkm\lib\modules\sprd-drm.ko 大小1.13M
adb push D:\MYFILE\sprd-drm.ko ./vendor_dlkm/lib/modules/sprd-drm.ko
push到手机
adb shell "cat /dev/kmsg | grep -Ei 'esd|fps'" 查看帧率和esd的打印
adb shell "cat /sys/class/display/panel0/esd_check_enable" 查看 esd 打开与否
P720S11是平台侧输出pwm波控制背光,生效的是 xref: /SPRD_T_5G_V1-P720S11_T/bsp/modules/kernel5.4/display/dispc/sprd_bl.c log关键字
last_backlevel == level, no set200 => 657 189 .update_status = sprd_pwm_backlight_update,
6,274710,934998704,c2,-,caller=T670;[drm][sprd_pwm_backlight_update] sprd_pwm_backlight_update: brightness level:88 => 353 min_level:11
P932F22是IC侧输出pwm波控制背光,生效的是 xref: /SPRD_S_GO-P932F22_S/bsp/kernel/kernel5.4/drivers/gpu/drm/sprd/sprd_dsi_panel.c log关键字 last_backlevel == level, so no set
1284 .update_status = sprd_oled_set_brightness,
6,65234,182203472,c1,-,caller=T756;[drm] sprd_oled_set_brightness level:979 --> convert_level:979 oled->cmds_total:1 bl_register_len:12
&panel {
sprd,backlight = <&pwm_backlight>;
reset-gpio = <&ap_gpio 11 GPIO_ACTIVE_HIGH>;
};
&dpu {
sprd,logo-memory = <&logo_reserved>;
sprd,backlight = <&pwm_backlight>;
/* if we need use fastcall for widevine, open the following config */
// sprd,widevine-use-fastcall;
};
F22 IC侧背光
&dpu {
sprd,logo-memory = <&logo_reserved>;
};
背光控制:
平台侧提供PWM:
| 7731E CPU | __________输出pwm波_________|上贴电阻,表示CPU和BL芯片连通了| _________ |BL芯片,(背光芯片)| ______________A=20V ,K=0V ,电压加在二极管两端,产生背光 ---|>-|>---(二极管) 。
|
屏,此处屏与BL芯片断开,没有连背光芯片
IC侧提供PWM:
| 7731E CPU | __________通过mipi信号,mipi协议,将控制亮度的51寄存器写值,比如写入FF,调到最亮 _________|屏的IC,比如7701s,连接BL芯片| _________ |BL芯片,(背光芯片)| __________| 输出pwm波 | ___________A=20V ,K=0V ,电压加在二极管两端,产生背光 ---|>-|>---(二极管) 。
|
CPU,此处CPU与BL芯片断开,没有连背光芯片
image.png
ap写 IC 的 51 (IC 的亮度寄存器)和53 (开关)
当51 寄存器存 FF 表示调到最亮,00 表示调到最暗 ,能控制占空比
当53 寄存器存 24 表示打开pwm 一下子亮,直接亮 ; 当53 寄存器存 2C 表示打开 dimming 功能
ENP 对应dtsi中的 CONFIG_LCM_GPIO_AVDDEN
ENN 对应dtsi中的 CONFIG_LCM_GPIO_AVEEEN
___________ 通过mipi_dsi给51寄存器写值来调节占空比,占空比影响电压电流,从而影响功率,亮度跟着变
___|___ | 表明AP侧提供背光
|_____|--二极管 /
| /
____ 贴上电阻____PWM______N/A(表示断开)____________
| |
| ______|________
|AP芯片|(CPU,UMS9620是CPU型号) ----------->|显示IC() |
| | LCD | 电压1.8V,默认正负5V,在dtsi中bias_config里写入14就是在调节电压到6V
| |______________|
| _______ ______ |
|____________|PMIC|______1.8v___|LDO|______________________|
______________
|AP芯片|(CPU,UMS9620是CPU型号) ----------->|显示IC() |
| / | LCD | 1.8V,正负5V
| / |______________|
| _______ ______ 发送PWM波 |
|____________|PMIC|______1.8v___|LDO|______________________|
PMIC是power manager IC,电源管理
LDO相当于开关,打开关闭
4路mipi的话,差分电路,4*2=8,再加上2路时钟信号,总共10条线路
软件dtsi文件中的lcd_id和硬件lcd id是不一样的,dtsi中的lcd_id是通过烧录寄存器,软件通过排线读取lcd上的ic里的寄存器来确认
硬件lcd id是靠硬件搭出来的电路状态来确认
LCM BIAS DRIVER 是lcd的供电驱动
LCM BACKLITHT DRIVER 是lcd的背光驱动
亮屏时序 : 先ui显示,再打开背光 防止异常显示
灭屏时序: 先关背光,再停图 防止异常显示
_____________
AP芯片(quantum,mtk,sprd)刷图 ------------>|显示IC() |
/ | LCD |
/ |______________|
发送PWM波
reset时序:
在kernel里 sprd,reset-on-sequence = <1 50>, <0 50>, <1 120>;
在lk里 在 .c 的 power函数里 sprd_gpio_request(CONFIG_LCM_GPIO_RSTN);
sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1);
没下成功初始化,打印异常log
dsi_wait_tx_cmd_fifo_empty|dsi_wait_tx_payload_fifo_empty
单个的dtsi 编译成dtb 编进 bootimage
dtbo是dtb的overlay ,改了overlay 编进dtboimage
拉最新的代码
git status
git log
git diff > patch.patch
git reset --hard 节点
repo sync -c bsp/kernel/kernel5.4 或者 git pull
S11 为了看版本号,进工程模式的方法:
进工程模式 *#*#983#*#*
一级解锁 *983*673636#
进真正工程模式 *987*0# 可以看到版本号
*983*#1024# 变形金刚标志位
*983*0# 各项测试界面
手机开root方法 为了cat /dev/kmsg ,user 版本无法cat 问题
adb shell getprop |findstr signature 查看下载软件的密钥,下载对应的apk
在 *#*983#*#* 再 *983*1024# 找到右上角扫码鉴权
*#*#983#*#*
同时手机安装软件 adb install "C:\Users\10335101\Downloads\SecureEmode-S-signed.apk" 用网站对应的apk
*#983*1024# 安装完apk 后才会显示扫码界面
安装成功后在网站上扫码 https://zd.zte/secureemode/
P720S09开log方法:*#*#83781#*#* ,DEBUG&LOG里的YLOG如果是灰色的YLog表示没开
vysor 连接错误和用adb install装软件失败,可用 adb shell vendorcfg -s -nzte.anti_usb_install -r0 ,解决不能安装软件问题,之后再重启生效
查看S11 创维屏 initial code 是否生效 亮屏下执行,灭屏执行会死机
adb shell "echo FF55AA66 > /sys/lcd_sys/reg_debug/dwrite"
adb shell "echo FE55AA66 > /sys/lcd_sys/reg_debug/dwrite" 前两行是解锁,用的initial code最前两行
adb shell "echo FF22 > /sys/lcd_sys/reg_debug/dwrite" 切page
adb shell "echo F403 > /sys/lcd_sys/reg_debug/dread" F4寄存器,读取 3个寄存器
adb shell "cat /sys/lcd_sys/reg_debug/dread" 查看读取结果
pause
C:\Users\10335101\Desktop>adb shell "echo FF55AA66 > /sys/lcd_sys/reg_debug/dwrite"
C:\Users\10335101\Desktop>adb shell "echo FE55AA66 > /sys/lcd_sys/reg_debug/dwrite"
C:\Users\10335101\Desktop>adb shell "echo FF22 > /sys/lcd_sys/reg_debug/dwrite"
C:\Users\10335101\Desktop>adb shell "echo F403 > /sys/lcd_sys/reg_debug/dread" F4寄存器,读取 3个寄存器
C:\Users\10335101\Desktop>adb shell "cat /sys/lcd_sys/reg_debug/dread"
read back:
rbuf[00]=01 rbuf[01]=00 rbuf[02]=00
如果更改了 sleep in code
可通过 cat /dev/kmsg | grep drm 查看 cmds_len 的长度,有几个数据
6,59868,114303704,c2,-,caller=T881;[drm] sprd_panel_disable() cmds_len=151
也可通过 cat /proc/driver/lcd_id 查看时间戳
932F22_NEEA_S 查看变形标记 *#*#983#*#* 再 *983*1024# 就可见到 Transform Variants 里面变型标记 DGT_SS
因为在 staple/ums9620-2h10-overlay.dts 里 include dtsi 所以单编 dtbo
1 #include "zte_lcd_skyworth_gc7202_6p517_mipi_hdplus.dtsi"
image.png
上面是mipi,下面是reset,应该reset需要比mipi晚下电70ms,上图同时下电,有问题,旁边箭头图例是自己设置的变量
正确的:
image.png
上面是mipi,下面是reset,reset需要比mipi晚下电70ms,符合要求
time ./build.sh P720S11_T -S -I -v userdebug -m vendor_dlkmimage -j 40 可编译sprd-drm.ko 大小1.13M
生成的ko在目录 Z:\sprd\P720S11_T1\out\target\product\ums9620_2h10\vendor_dlkm\lib\modules
adb push D:\MYFILE\sprd-drm.ko ./vendor_dlkm/lib/modules/sprd-drm.ko push到手机
lk consume time:3655ms, lcd init consume:1508ms, backlight on time:4636ms
sprd_lcd consume 在uboot里可查看lcd耗时
lcd耗时 从enter sprd_lcd 到 logo memory init success.
新串口线,如果手机连电脑,不需要串口线的接地线连接手机。如果手机没连电脑,只需串口线的RX接手机TX
通过板级查询哪些项目在用此板级 可在/SPRD_S-P618F08_S/vendor/zte/feature/projects/ 搜索 lettuce
lettuce (full), "/SPRD_S-P618F08_S/vendor/zte/feature/projects/" (path) in projects: SPRD_S-P618F08_S - OpenGrok search results
getprop | grep brightness 查看prop
如果有故障,是否必现?还是一次性
1、在0-android.log中搜索 Going to sleep due 关键字可查看 休眠原因
Waking up from Asleep 唤醒原因 , 相关的可搜索的关键字 SurfaceFlinger ,也 可通过命令 logcat |grep SurfaceFlinger 查看
SurfaceFlinger: Setting power mode 2 表示亮屏
SurfaceFlinger: Setting power mode 0 表示灭屏
logcat |grep -Ei "SurfaceFlinger: Setting power mode|Going to sleep due|Waking up from Asleep"
可通过命令 logcat |grep "SurfaceFlinger: Setting power mode" 查看打印
比如 01-05 06:00:45.620 693 693 D SurfaceFlinger: Setting power mode 0 on display 0
P720S11_T中找brightness 节点 cat ./sys/devices/platform/backlight/backlight/sprd_backlight/brightness 通过find -name "brightness"找到的路径
关背光和写亮度节点,推荐: adb shell "echo 0 > sys/class/backlight/sprd_backlight/brightness"
因为andorid.log 里就是再写此节点:
P963F94:/ # cat sys/class/backlight/ sprd_backlight /brightness
0
其中 sprd_backlight 是软链接
P963F94:/sys/class/backlight # ls -l sprd_backlight
lrwxrwxrwx 1 root root 0 2023-09-16 12:13 sprd_backlight -> ../../devices/platform/soc/soc:mm/63100000.dsi/63100000.dsi.0/display/panel0/sprd_backlight
实际上操作的 ./sys/devices/platform/soc/soc:mm/63100000.dsi/63100000.dsi.0/display/panel0/sprd_backlight/ brightness 节点
P963F94 机器 find -name brightness 结果:
./sys/devices/platform/soc/soc:ap-ahb/20300000.sdio/leds/mmc1::/brightness
./sys/devices/platform/soc/soc:ap-ahb/20600000.sdio/leds/mmc0::/brightness
./sys/devices/platform/soc/soc:aon/41800000.spi/spi_master/spi4/spi4.0/41800000.spi:pmic@0:led-controller@180/leds/sc27xx:green/brightness
./sys/devices/platform/soc/soc:aon/41800000.spi/spi_master/spi4/spi4.0/41800000.spi:pmic@0:led-controller@180/leds/sc27xx:red/brightness
./sys/devices/platform/soc/soc:aon/41800000.spi/spi_master/spi4/spi4.0/41800000.spi:pmic@0:led-controller@180/leds/sc27xx:blue/brightness
./sys/devices/platform/soc/soc:mm/63100000.dsi/63100000.dsi.0/display/panel0/sprd_backlight/brightness 实际操作的节点
P963F94 关背光方法二:
2|P963F94:/ # cat sys/class/display/ panel0 /sprd_backlight/brightness
0
此时 panel0 是软链接
ls -l panel0
lrwxrwxrwx 1 root root 0 2023-09-16 11:39 panel0 -> ../../devices/platform/soc/soc:mm/63100000.dsi/63100000.dsi.0/display/panel0
实际上也是操作的 ./sys/devices/platform/soc/soc:mm/63100000.dsi/63100000.dsi.0/display/panel0/ sprd_backlight/brightness
P720S11关背光方法二:
adb shell "echo 0 > ./sys/devices/platform/backlight/backlight/sprd_backlight/brightness"
因为 P720S11机器 find -name brightness 结果:
./sys/devices/platform/backlight/backlight/sprd_backlight/brightness 这是实际操作的节点
./sys/devices/platform/soc/soc:ap-ahb/22200000.sdio/leds/mmc0::/brightness
./sys/devices/platform/soc/soc:ap-ahb/22220000.sdio/leds/mmc1::/brightness
./sys/devices/platform/soc/soc:aon/64400000.spi/spi_master/spi4/spi4.0/sc27xx-bltc/leds/sc27xx:blue/brightness
./sys/devices/platform/soc/soc:aon/64400000.spi/spi_master/spi4/spi4.0/sc27xx-bltc/leds/sc27xx:red/brightness
./sys/devices/platform/soc/soc:aon/64400000.spi/spi_master/spi4/spi4.0/sc27xx-bltc/leds/sc27xx:green/brightness
此时推荐的方法: adb shell "echo 0 > sys/class/backlight/sprd_backlight/brightness" 中的 sys/class/backlight/sprd_backlight 是软链接
P720S11:/ # ls -l sys/class/backlight/sprd_backlight
lrwxrwxrwx 1 root root 0 2023-08-31 09:22 sys/class/backlight/sprd_backlight -> ../../devices/platform/backlight/backlight/sprd_backlight
S11 设置光感亮度命令
adb shell dumpsys sensorservice set_lux N
adb shell dumpsys sensorservice set_lux 5000
adb shell "echo 255 > /sys/class/backlight/sprd_backlight/brightness"
查看亮度 cat /sys/class/display/panel0/sprd_backlight/brightness
adb shell "cat /sys/class/backlight/sprd_backlight/brightness"
在bsp/out/androids/s9863a1h10_go_32_2g/obj/kernel/drivers/gpu/drm/sprd里有sprd-drm.ko,把这个ko可以push到手机分区
2022.11.14
今日笔记:
kernel中的ums9620-2h10-overlay.dts 里的 sprd,max-brightness-level = <1023>; 是因为有10比特,2^10
下面的brightness-levels 也相应地乘以对应系数转换
关pq:
enhance_test enable read 查看pq
如何找一个项目对应 json ,在rdc里补充信息里找
P932F22-Tigo-危地马拉-项目差异-GUI-0010 Bootup logo 在rdc 补充信息
json:P932F22_AR_RV_S.json
变形标志位:TIGO_GT
存放正式版本的地址 \\10.95.242.18\version\version_blade\P932F22\GEN_MX_P932F22V1.0.0B08
存放构建地址 \\10.95.242.28\version_jarvis\S\SPRD\SC9832E\P932F22\dailybuild
查看kernel宏是否生效 vim bsp/out/androidt/ums9620_2h10_native/obj/kernel/.config 在此文件里找找
在S11 等T 基线上的kernel代码不在 bsp/kernel/kernel5.4/drivers/gpu/drm/sprd/sprd_dsi_panel.c 等文件里,因为
通过ls bsp/out/androidt/ums9620_2h10_native/obj/kernel/drivers/gpu/drm/sp 都tab自动补全不出来文件所在目录表明都没有编译到。而在bsp/modules/kernel5.4/display/dispc/sprd_dsi_panel.c 里
image.png
pinmap
image.png
想把RST拉高拉低,先在电路原理图上查看RST是哪个GPIO,例如GPIO11,再通过GPIO11在硬件配置表(excel表)里查看实际名称,例如 LCM0_RSTN ,最后在pinmap.c ,例如 bsp/bootloader/lk/target/ums9620_2h10/zte_staple_pinmap.c 中搜索 LCM0_RSTN 找到该改的位置,如下图。注意,两行记录才表示一个pin
{REG_PIN_LCM0_RSTN, BITS_PIN_AF(3)},
{REG_MISC_PIN_LCM0_RSTN, BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_WPD|BIT_PIN_SLP_AP|BIT_PIN_SLP_NUL|BIT_PIN_SLP_OE},//LCM_RSTN
lcd 解析dtsi的函数调用过程
sprd_panel_probe --> sprd_panel_parse_dt --> sprd_panel_parse_lcddtb (解析 sprd,dsi-color-format 和 sprd,initial-command 等) -->
of_get_property --> of_find_property(查找结点) --> __of_find_property --> of_prop_cmp(比较,一旦名字对应则找到返回)
hbp/hfp/hsync vbp/vfp/vsync Video 屏的 Hporch/Vporch 参数。如果是 CMD 屏,这些参数必须是 0。
LCD 屏幕需要支持通过只修改 vfront-porch 参数来进行 60 Hz/90 Hz 刷新率动态切换,保证平台停止 送数 50 ms 内无显示异常。
sprd,sleep-in-command LCD 休眠指令。 sprd,sleep-out-command LCD 唤醒指令。
sprd,reset-on-sequence LCD 上电时,reset 引脚的操作时序。 <1 5>, <0 5>, <1 20>:表示先保持高电平 5 ms,再保持低电平 5 ms,然后 保持高电平 20 ms。
sprd,phy-bit-clock High-Speed 模式下数据传输时,clock lane 的传输速率,即 PHY frequency,单位为 kbit/s。
mipi_clock=pixel_clock *div ,几分频
P720S11_T 同兴达 icnl9911c2 设置的 mipi 频率 sprd,phy-bit-clock = <768000>; /* kHz */ 768000 kHz 即 768 MHz
P720S11_T 同兴达 icnl9911c2 设置的 pixel clk 频率 clock-frequency = <128000000>; /* Hz */ 128000000 Hz 即 128 MHz
P720S11_T 同兴达 icnl9911c2 设置的 分频 sprd,dpi-clk-div = <6>; 设置的 6 分频 刚好对应 128 x 6 = 768
mipi 频率是sprd,phy-bit-clock = <552000>; 单位 kbps
pixel clock是clock-frequency = <38400000> 单位 Hz
.dtsi中的 sprd,phy-bit-clock = <453000>; /* kbps */ 对应 cat /sys/class/display/dphy0/freq 出现的453000 ,叫做mipi频率,mipi clock 453 Mbps
.dtsi中的 clock-frequency = <34000000>; 对应 cat /sys/class/display/panel0/pixel_clock 出现的32000000 ,叫做 pixel_clock Hz
cat /sys/class/display/dphy0/freq 显示453000 查看mipi频率
echo xxx > /sys/class/display/dphy0/freq 设置mipi频率
mipi clk (M) = (SPRDFB_DPI_CLOCK_SRC * dividor ) * 3 * 8/0.9/ .lan_number /1000000
其中的 dividor = if (need_clock/2 > SPRDFB_DPI_CLOCK_SRC - dividor*need_clock , int(
SPRDFB_DPI_CLOCK_SRC/ Dpi_need_clk ) , int( SPRDFB_DPI_CLOCK_SRC/ Dpi_need_clk ) +1 )
[SPRD_9620]dpiclk_dsiclk_calc 根据porch信息计算mipi频率和clock_frequency
P720S11_T 里的频率 计算方法(h+hfp+hbp+hsync)*(w+vfp+vbp+vsync)*60=.pixel_clk
.pixel_clk X 6 =.phy_freq .dtsi实际填的 .phy_freq 单位是KHZ,所以.dtsi填入的值等于 .pixel_clk X 6/1000 6是6分频,1000是因为 kbps
win+shift +print Screen 暗色主题
win + ctrl +c 颜色滤镜
下版本命令:
qcom平台使用 adb reboot edl
sprd平台使用 adb reboot autodloader
mtk平台开着下载工具,adb reboot即可
(1、打开PC功能,配置好下载选项后,选择 文件导出download.xml
2、在cmd窗口运行flash_tool -i download.xml
3、在另外一个窗口让手机重启)
注意终端软件部和终端软件工程部两个空间页面的区别
2023,2,9
正式版本在18服务器,每日构建在28服务器 \\10.95.242.18\version\version_blade\P932F22\GEN_MX_P932F22V1.0.0B08
如果merge conflict 网页上rebase再修改,可以先修改patch 1
S11 的initcode开关在 /SPRD_T-P720S07_T/bsp/modules/kernel5.4/display/dispc/zte_lcd_reg_debug.c 中
单独编译pic_ref下boot logo的内容命令 ./build.sh P932F22_S -m splashimg -S -I 2>&1 | tee -a test3.log -I是跳过一些内容,加速编译
注意是哪个项目 P932F22_NEEA_GEN_S 就 ./build.sh P932F22_NEEA_GEN_S
开机logo生成的img文件在Boot Logo分区里面。具体名称比如,P963F22里的Boot Logo:
在GAIA 网站里的LOGO配的是 LOGO_BIN_NAME :unisoc_HD_720_1280_24bit.bmp
在S11中lk里的函数宏定义 位置:bsp/bootloader/lk/project/zte_staple.mk
GLOBAL_DEFINES += ZTE_LCD_DISPLAY_SPLASH <---宏定义
ZTE_LCD_DISPLAY_DEFAULT_BPP=8
ZTE_LCD_PANEL_DETECT
ZTE_LCD_SUPPORT_PANEL_OFF
ZTE_LCD_SUPPORT_TE_PRECHECK
ZTE_LCD_SUPPORT_TE_PIN_DSI0
ZTE_LCD_TE_GPIO=12
CONFIG_LCM_GPIO_AVDDEN=189
CONFIG_LCM_GPIO_AVEEEN=190 \
2023,1,17
排查lcd不亮的流程:
1、背光亮么?P720F03是平台背光
2、屏幕和lcd_name匹配么,若不匹配,是否是lcd_id有问题,可写死,提前return 0试试
3、看lk 的log有明显异常么,找硬件量电,1.8V, 正负5V是否正常,电有异常具体是哪个电有异常
pinmap是设GPIO的,查硬件原理图和硬件配置表可看到
2023,1,16
chage -l dongyuanjie 查看用户上回改密码时间 ; dmesg -Tx 查看内核信息
2023,1,11
1、查看一个项目最小亮度 可找到kernel下的overlay 例如
bsp/kernel5.4/kernel5.4/arch/arm64/boot/dts/sprd/coconut/ums9620-2h10-overlay.dts
有时候uart send error可能是版本和手机型号不符合
vysor 连接错误和用adb install装软件失败,可用 adb shell vendorcfg -s -nzte.anti_usb_install -r0 ,解决不能安装软件问题,之后再重启生效
2023,1,9
1、P720S09 Sensor FOTA升级压力测试 D:\MYFILE\update-OTA>python fota_test.py 324225940012
展锐平台 userdebug 打开ylog *#*#83781#*#*
2、忘记拉的是不是TINY分支,可通过在项目目录下 cat .repo/mainfest.xml 查看
3、vendor/zte/feature/projects/ 里面显示哪些项目同一个库
2023,1,3
1. enhance_test enable read 命令可查看enhance打开关闭情况
logcat |grep enhance 查看enhance相关日志
编译机配置环境变量命令 source ./build.sh P720S11_T 再 mninja 模块名 2>&1 | tee mninja.log
生成后的动态库位置在 out/target/product/ums9620_2h10/vendor/lib64/hw/enhance.unisoc.so
另一个编译命令 ./build.sh P720S11_T -S -I -m enhance.unisoc
手机端先 adb root 再 adb remount 若提示先 adb disable-verity (关闭分区检测功能) 则照做,
remount 成功后用 adb push D:\MYFILE\enhance.unisoc.so /vendor/lib64/hw/enhance.unisoc.so
在手机端查看 enhance 相关动态库的位置 先 cd vendor 再 find -name *enhance* 出现 ./lib64/hw/enhance.unisoc.so
关闭enhance 的函数位置在 vendor/sprd/modules/enhance/2.0/Core/DpuEnhanceCore.cpp
2022,12,16
1.grep "lcd_g40396_truly_mipi_fhd" * -nR 查找与屏幕名相关的文档,定位可能涉及的需同时修改的文档
2、在 bsp/kernel/kernel5.4/drivers/video/backlight/backlight.c 中使用宏控
在 bsp/kernel/kernel5.4/drivers/gpu/drm/sprd/Kconfig 中配置宏
config ZTE_LCD_WRITE_MAX_BRIGHTNESS
bool "zte add for support ZTE_LCD_WRITE_MAX_BRIGHTNESS"
default n
在 vendor/zte/kernelconfig/sprd/configs/pitaya_diff_config 中 ADD宏控
ADD:CONFIG_ZTE_LCD_WRITE_MAX_BRIGHTNESS
lcd 解析dtsi的函数调用过程
sprd_panel_probe --> sprd_panel_parse_dt --> sprd_panel_parse_lcddtb (解析 sprd,dsi-color-format 和 sprd,initial-command 等) -->
of_get_property --> of_find_property(查找结点) --> __of_find_property --> of_prop_cmp(比较,一旦名字对应则找到返回)
mtk串口波特率选 921600
mtk下版本的Download-Agent C:\Users\10335101\Downloads\SP_Flash_Tool_exe_Windows_v5.2044.00.000\DA_PL_2044.bin
Scatter-loading File 选 什么scatter.txt
2022,12,14
1、学硬件原理图,整理连接情况
GPIO 189 / LCM_BIAS_ENP(P5) --> GPIO 189 / LCM_BIAS_ENP(P43) --> 输出 OUTP LCM_AVDD (p43)
--> LCM_AVDD(p42)
LCD_TP_VIO (P42) --> LCD_TP_VIO (P43) 1.8V --> LCD_TP_VIO (P55) 芯板板连接器
GPIO9 LCM_ID (P4) --> GPIIO 9 /LCM_ID (P42)
2022.12.8
git diff drivers/video/backlight/backlight.c > modify.patch
git checkout drivers/video/backlight/backlight.c
git diff drivers/video/backlight/backlight.c
vi modify.patch
patch -p1 < modify.patch
查看backlight.c 是否生效ls out/androids/s9863a1h10_go_32b_2g/obj/kernel/drivers/video/backlight/backlight.o
查看日志等级 cat proc/sys/kernel/printk
cat /sys/class/display/dispc0/actual_fps 查看刷新率
2022.12.5
在P932F22_S中
sudo kill -STOP 进程号1 进程号2 暂停进程
sudo kill -CONT 进程号1 进程号2 恢复执行
sudo renice -n -20 -u 用户名 设置优先级
hdparm -Tt /dev/sda4 测磁盘速度
taskset -c 1 ./dgram_servr& 指定的进程运行在指定的cpu上,程序运行在1号核上
2022.12,3
P932F22:/sys/lcd_sys/reg_debug # echo 3400 > dwrite 给34寄存器写入00,把显示弄坏,看是否有esd重启
P932F22:/sys/lcd_sys/reg_debug # echo 1000 > dwrite 给10寄存器写入00
P932F22:/sys/lcd_sys/reg_debug # echo 51ff > dwrite 51寄存器是调亮度的,设置最大亮度ff
esd_check_en 1是打开,0是关闭
esd_check_mode 0是reg寄存器检查,1是te信号检查
P720S11_T icnl9911c 关 TE 的方法: 注释 35 和 C2 寄存器 ; 华映屏,是在 35 后下 34
29 0A 00 02 35 00
29 0A 00 01 34 多下一个 34
2022,11,20
非第一次全编译可加上 -S -I 如 ./build.sh P720S11_T -S -I
保存时间戳的编译命令 ./build.sh P720S11_T -m bootloader -S -I 2>&1 | tee >(awk '{print "["strftime("%Y%m%d %T",systime())"]"$0}' > build_log.txt)
提CQ版本号可从路径 https://souing.zx.zte/xref/SPRD_S_GO-P932F22_S/vendor/sprd/release/IDH/Doc/Version_T.txt 查看
2022.11.29
查看pixel_clock cat /sys/class/display/panel0/pixel_clock
查看porch cat /sys/class/display/panel0/hporch
查看mipi 频率 cat /sys/class/display/dphy0/freq
2022.11.28
董远杰-11月总结汇报.pptx
2022.11.18
1、 解决P932F22 PV版本插USB无法进五色界面
今日笔记:
pv版本无法五色界面问题:
源码地址:https://souing.zx.zte/xref/SPRD_S_GO-P932F22_S/bsp/bootloader/u-boot15/common/lcd.c?r=241e9f9c&mo=21931&fi=889#889
函数名: void zte_lcd_precheck_mode(void)
注释的位置:https://souing.zx.zte/xref/SPRD_S_GO-P932F22_S/bsp/bootloader/u-boot15/include/configs/zte_rosemary_diff.h?r=dff49a17#24
当时串口log反复打印:
ztelcd _ precheck _ mode : This is PV lcd check mode
zte _1cd_ detect _ te V2.0.0 start _ time =278873 end _ time =283896 te _ count =0
zte _ lcd _ precheck _ mode : This is PV lcd check mode
zte _ lcd _ detect _ te V2.0.0 start _ time =283909 end _ time =288932 te _ count =0
分析源码:
while (1) {
printf("zte_lcd_precheck_mode: This is PV lcd check mode\n");
#ifdef ZTE_LCD_SUPPORT_TE_PRECHECK 当时这个宏定义定义了,没注释
set_rgb_color(0xffff);/*white*/ 显示白色界面
if (zte_lcd_delay_get_te(5000) > 0) zte_lcd_delay_get_te(5000)根据日志,返回值为-1
printf("zte_lcd_precheck_mode:will display red\n");
else
continue; 执行这里,陷入循环中
}
int zte_lcd_delay_get_te(int delayms) {
printf("zte_lcd_detect_te V2.0.0 start_time=%d end_time=%d te_count= %d\n", start_time, end_time, te_count); 根据日志打印得知 te_count=0
if (te_count > (delayms / 1000) * TE_MIN_COUNT_PER_SECOND)
return 1;
else
return -1; 所以结果返回-1
#else 最后我们取消了宏控,执行下面这段代码
set_rgb_color(0xffff);/*white*/ 显示白色
#ifdef ZTE_LCD_CMD_TYPE_MODE
lcd_enable();
#endif926 mdelay(5000);
set_rgb_color(0xf800);/*red*/ 显示红色
}
修改后正常,log循环打印:
zte_lcd_precheck_mode: This is PV lcd check mode
zte_lcd_precheck_mode: This is PV lcd check mode
zte_lcd_precheck_mode: This is PV lcd check mode
2022.11.7
董远杰中期答辩_2022年.pptx
2022.11.5
今日笔记:
vim bsp/kernel5.4/kernel5.4/drivers/gpu/drm/sprd/Kconfig
module里面加的宏在git diff bsp/modules/kernel5.4/display/dispc/Kbuild
+#zte add for disable enhance func by board_name
+$(info zte lcd display ZTE_BOARD_NAME = ${ZTE_BOARD_NAME})
+ifeq ($(ZTE_BOARD_NAME),unicorn)
+$(info CONFIG_SPRD_DSI_SWITCH = ${CONFIG_SPRD_DSI_SWITCH})
+CONFIG_SPRD_DSI_SWITCH :=y
+$(info CONFIG_SPRD_DSI_SWITCH = ${CONFIG_SPRD_DSI_SWITCH})
+endif
查看kernel宏是否生效 vim bsp/out/androidt/ums9620_2h10_native/obj/kernel/.config 在此文件里找找
lk里的屏幕.c生成后的位置在 ./bsp/out/androidt/ums9620_2h10_native/obj/lk/build-ums9620_2h10/platform/sprd_shared/driver/video/sprd/lcd/zte_lcd_tongxingda_icnl9911c2_6p517_mipi_hdplus.o
2022.11.3
今日笔记:
1、验证kernel里面dtsi是否生效的方法
在里面加一行 zte,lcd-version-v000
再cmd里adb 里 adb shell "ls /sys/firmware/devicetree/base/lcds" 可以看见兼容了几家屏幕
再cmd里adb 里 adb shell "ls /sys/firmware/devicetree/base/lcds/lcd_chipone_icnl9911c2_tongxingda_mipi_hdplus" 可以看见 zte,lcd-version-v000
2. sprd定义的宏位置 bsp/out/androidr/umns9620_2h10_native/obj/kernel
2022.11.2
今日笔记:
1、不重复上传单据 git --amend 再git commit
git commit -m "xx"
防止冲突方法, git pull --rebase 后,如果冲突了,本地一解,再上传
防止修改文件属性命令 git config --replace core.filemode false
允许修改文件属性命令 git config --replace core.filemode true
切换分支,拉取最新代码,再比对上传:
cd vendor/zte/kernelconfig/
git branch -a |grep release
git checkout -t zte/t-default-tiny-ccs
2022.11.1
今日笔记:
P720S07_T查看是否编译,是否生成.o节点
ls bsp/out/androidt/ums9620_2h10_native/obj/lk/build-ums9620_2h10/platform/sprd_shared/driver/video/sprd/lcd/
2022.10.31
董远杰-10月总结汇报.pptx
今日笔记:
高通下载版本:三键齐按 或 adb reboot edl
判断是否编译执行了修改? #error "cuole"如果运行到,停下报错 #warning "cuole"如果运行到,会打印出来
查看log定位问题可以搜索显示架构drm等关键字
2022.10.28
p720s07_t的lcd 驱动调试
参观产线
2022.10.27
1、 P720S07_T 的lcd驱动调试(进行中)
今日笔记:
T基线因为有overlay,所以可以单独编译dtbo,还可以单独编译bootloader ./build.sh P720S09_R -m dtboimage -S
P720S07_T的lcd驱动,回顾具体做了什么:
1. . c位置在\\10.95.240.190\dongyuanjie\sprd\P720S07_T\bsp\bootloader\lk\platform\sprd_shared\driver\video\sprd\lcd下
除了对着类似的.c改动以外还修改了
2. git diff project/zte_unicorn.mk 位置:bsp/bootloader/lk/project/zte_unicorn.mk
+#lcd
+LCD_UNICORN_TONGXINGDA_ICNL9911C2 := 1 加宏控,宏打开
+CONFIG_SPRD_DSI_SWITCH := 1
+
+CONFIG_LCM_GPIO_AVDDEN :=62
+CONFIG_LCM_GPIO_AVEEEN :=61
+GLOBAL_DEFINES += \
+CONFIG_LCM_GPIO_AVDDEN=62 \
+CONFIG_LCM_GPIO_AVEEEN=61 \
+CONFIG_SPRD_DSI_SWITCH=1
+
+#iovdd-gpio = <&ap_gpio 148 GPIO_ACTIVE_HIGH>;
+
GLOBAL_DEFINES += CONFIG_LCM_GPIO_AVDDEN=62
CONFIG_LCM_GPIO_AVEEEN=61
CONFIG_SPRD_DSI_SWITCH=1
在S11中lk里的函数宏定义
GLOBAL_DEFINES += ZTE_LCD_DISPLAY_SPLASH <---宏定义
ZTE_LCD_DISPLAY_DEFAULT_BPP=8
ZTE_LCD_PANEL_DETECT
ZTE_LCD_SUPPORT_PANEL_OFF
ZTE_LCD_SUPPORT_TE_PRECHECK
ZTE_LCD_SUPPORT_TE_PIN_DSI0
ZTE_LCD_TE_GPIO=12
CONFIG_LCM_GPIO_AVDDEN=189
CONFIG_LCM_GPIO_AVEEEN=190 \
3. git diff platform/sprd_shared/driver/video/sprd/rules.mk 加config_xxx宏
+ifeq ($(LCD_UNICORN_TONGXINGDA_ICNL9911C2),1)
+GLOBAL_DEFINES += CONFIG_LCD_UNICORN_TONGXINGDA_ICNL9911C2
+MODULE_SRCS += \
+ $(LOCAL_DIR)/lcd/zte_lcd_tongxingda_icnl9911c2_6p517_mipi_hdplus.c
+endif
+
.c在\\10.95.240.190\dongyuanjie\sprd\P720S07_T\bsp\bootloader\lk\platform\sprd_shared\driver\video\sprd\lcd下
4. git diff platform/sprd_shared/driver/video/sprd/lcd/panel_cfg.h 用config_xxx,加 panel driver
extern struct panel_driver g40396_truly_driver;
+extern struct panel_driver icnl9911c2_tongxingda_driver;
#ifdef CONFIG_LCD_UNICORN_TONGXINGDA_ICNL9911C2
+ {
+ .lcd_id = 0xc3,
+ .drv = &icnl9911c2_tongxingda_driver,
+ },
+#endif
5 .c里包含了一个结构体
struct panel_driver icnl9911c2_tongxingda_driver = {
.info = &icnl9911c2_info,
.ops = &icnl9911c2_ops,
};
6. git diff arch/arm64/boot/dts/sprd/unicorn/ums9620-2h10-overlay.dts include 一下 kernel的dtsi
+#include "zte_lcd_tongxingda_icnl9911c2_6p517_mipi_hdplus.dtsi"
- sprd,max-brightness-level = <880>;
+ sprd,max-brightness-level = <1023>;
brightness-levels = < //亮度等级被修改了
- 0 3 4 5 6 7
+ /* 0 3 4 5 6 7
8 9 10 11 12 13 14 15 16 17
766 772 778 784 790 796 802 808 814 820
- 826 832 838 844 850 856 862 868 874 880
+ 826 832 838 844 850 856 862 868 874 880 */
+ 0 5 5 5 6 8
+ 9 10 11 12 13 15 16 17 18 19
+ 20 22 23 24 25 26 27 29 30 31
- avdd-gpio = <&ap_gpio 192 GPIO_ACTIVE_HIGH>;
- avee-gpio = <&ap_gpio 191 GPIO_ACTIVE_HIGH>;
+ avdd-gpio = <&ap_gpio 62 GPIO_ACTIVE_HIGH>;
+ avee-gpio = <&ap_gpio 61 GPIO_ACTIVE_HIGH>;
-&lcd_g40396_truly_mipi_fhd {
- sprd,sr-width = <720>;
- sprd,sr-height = <1600>;
-};
7. 在 vendor/zte/kernelconfig/sprd/configs/unicorn_diff_config 中
+#lcd
+ADD:CONFIG_SPRD_DSI_SWITCH
这里unicorn是板级名,新项目注意查看确认板级
8. 检查pinmap avdd avee 的GPIO 是否配置正确
9.检查 sprd/configs/okra_diff_config 是否配置正确
10. 检查 projects/P963F10_T.json logo是否配置正确
11、检查 module/others/bsp/mfeature/kernel/kernel5.4/msoc/sharkl3/ko/zte_okra.mk 是否加载 ±6v 的ko
可以参考 http://10.67.16.29:8080/q/topic:%22P963F10_T+add+easyquick+aixiesheng+lcd+driver%22 节点
2022.10.26
1、 P720S07_T 的lcd驱动调试(进行中)
今日笔记:
ls bsp/out/androidt/ums9620_2h10_native/obj/kernel/arch/arm64/boot/dts/sprd/unicorn/
不看网站查板级驱动名
回到项目目录,比如 P932F22_S 再repo sync -c bsp/kernel/kernel4.14/ 拉取一小段最新代码
如果本地改过遇到报错,则 git log . 查看修改的序列号
git reset --hard b76885ad6180f64eca49e73e661ddb5cc127d580 同步到最新的序列号
git rm platform/sprd 删去git里不需要再显示的已删去文件的命令
grep "lcd_g40396_truly_mipi_fhd" * -nR 查找与屏幕名相关的文档,定位可能涉及的需同时修改的文档
2022.10.25
1. 观摩学习师傅定位产线拿来的4台闪屏黑屏手机问题
2.跟师傅讨论交流lcd函数调用流程,准备月总结
查看闪频分析故障命令 cat /dev/kmsg |grep drm 看看有没有什么error
单独编译dtbo ./build.sh P720S09_R -m dtboimage -S
想生成initcode节点 在 bsp/kernel/kernel5.4/drivers/gpu/drm/sprd 的 zte_lcd_reg_debug.c 上面加定义 LCD_INITCODE_DEBUG 的宏控
查看 initcode cat sys/lcd_sys/reg_debug/initcode 最稳妥的找 zte_lcd_reg_debug.c 的方法是在 souing 上找
adb shell ls /sys/lcd_sys/reg_debug 后会出现 如下节点
dread
dwrite
mipiclk
reserved
或者 dread dwrite esdcode gread gwrite initcode mipiclk reserved
可通过 :
adb shell "echo FF55AA66 > /sys/lcd_sys/reg_debug/dwrite"
adb shell "echo FE55AA66 > /sys/lcd_sys/reg_debug/dwrite"
adb shell "echo FF22 > /sys/lcd_sys/reg_debug/dwrite"
adb shell "echo F403 > /sys/lcd_sys/reg_debug/dread" F4寄存器,读取 3个寄存器
adb shell "cat /sys/lcd_sys/reg_debug/dread"
来读取操作寄存器
查看lcd节点命令,查看lcd信息 ,查看lcd的使用的驱动程序 cat /proc/driver/lcd_id
cd /sys/class/display/ 再ls 屏幕输出: dispc0 dispc1 dphy0 dsi0 panel0 分别是2个展示控制和dphy
adb shell "ls /sys/class/display/panel0/" 下有很多节点 :
device
esd_check_enable
esd_check_mode
esd_check_period
esd_check_register
esd_check_value
hporch
lane_num
name
of_node
panel_fps
pixel_clock
power
resolution
resume
screen_size
sprd_backlight
subsystem
suspend
uevent
vporch
waiting_for_supplier
adb shell ls /sys/class/display/ 屏幕输出: dispc0 dphy0 dsi panel0
adb shell cat /sys/class/display/panel0/esd_check_enable 屏幕输出:1 表明esd检测已打开
adb shell cat /sys/class/display/panel0/esd_check_mode 屏幕输出: 0 0对应dtsi中的esd检测从寄存器里读取,1 为检测 TE 信号
adb shell "echo 0 > /sys/class/display/panel0/esd_check_enable" 关闭 esd check
adb shell "echo 1000 > /sys/lcd_sys/reg_debug/dwrite" 可以通过这个模拟静电黑屏,看屏幕是否恢复。向10写入00数据,观察到屏幕熄灭后又亮了,因为这是在故意搞乱,esd检测到后使得芯片重启,恢复显示
adb shell cat /sys/class/display/panel0/esd_check_mode 屏幕输出: 0 0对应dtsi中的esd检测从寄存器里读取
adb shell cat /sys/class/display/panel0/esd_check_register 屏幕输出:0x0a 代表esd检测的寄存器是10号
adb shell cat /sys/class/display/panel0/esd_check_value 屏幕输出: 0x9c
adb shell "echo 3400 > /sys/lcd_sys/reg_debug/dwrite"
2022.10.24
1. 查看刷新率 cat /sys/class/display/dispc0/actual_fps 显示60.4
2. 给手机安装软件.apk adb install 拖拉电脑的apk到窗口
对加载开机logo函数的学习.docx
2022.10.20
1、云CI验证K98_R AP侧代码修改
今日笔记:
对加载开机logo函数的学习,我通过函数找出了调用流程 zte_display_splash_screen_prepare 调用-> zte_read_logo-from_splash ->
common_raw_read(char* path_name ,4096,logo_info_offset,logo_info_arr) 在common_raw_read(part_name,size ,offset,buf)中通过
memcpy(buf,offset,size),将数据写入buf,即就是logo_info_arr里面,而logo_info_arr[4096]刚好对应之前的前4096字节里存放的是
boot logo 和charge logo的分辨率大小等信息,后面的字节存放实际图片内容
2022.10.19
观摩学习师傅解决k98的背光比屏幕后关闭故障
发现git能拉代码,但无法上传单据,找同事改git配置解决
今日笔记:
如果电脑连接的有两个手机可以adb选择一个进入 adb devices
显示
324226320141 device
327325630084 device
选择一个进入 adb -s 327325630084 shell
高通平台进入下载模式adb reboot edl,ports 口才会出来,或者高通的三键齐按
单独编译高通的bootimg命令 ./build.sh K98_R -m out/target/product/bengal/boot.img -S
编辑宏控文件 vim vendor/zte/kernelconfig/qcom/configs/boards/chestnut_diff_config
里面加入一个宏 ADD:CONFIG_ZTE_LCD_CLOSE_DIMMING
编辑kconfig文件 vim kernel/msm-4.19/drivers/gpu/drm/Kconfig
设置配置
config ZTE_LCD_CLOSE_DIMMING
bool "add for close lcd ic dimming function"
default n
如果光有上面的的kconfig,而没有上面的ADD宏,那么在编译后.config里CONFIG_ZTE_LCD_CLOSE_DIMMING会显示not set
编译后查看宏配置是否生效 vim out/target/product/bengal/obj/KERNEL_OBJ/.config
CONFIG_ZTE_LCD_CLOSE_DIMMING=y 已生效
运用宏来改.c逻辑,修改.c vim kernel/msm-4.19/techpack/display/msm/dsi/dsi_panel.c
#ifdef CONFIG_ZTE_LCD_CLOSE_DIMMING
if (bl_lvl == 0) {
int error_ret;
const char CMD53 = 0x24;
error_ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_WRITE_CONTROL_DISPLAY, &CMD53, 1);
/*if (error_ret < 0)
return error;*/
pr_info("MSM_LCD Sends 53 cmds,error_ret=%d\n", error_ret);
}
#endif
2022.10.18
1、K98项目拉代码,编译版本、借机器,和装高通的下载工具
2、学lcd图片加载相关的函数和内容
2022.10.17
改sh脚本,修复bootlogo重复载入boot_logo.bmp问题,并上传单据
写bat脚本,实现比较两个cat结点值是否相等(进行中)
单独编译pic_ref下的内容命令 ./build.sh P932F22_S -m splashimg -S -I 2>&1 | tee -a test3.log -I是跳过一些内容,加速编译
进入校准模式 高通 adb reboot ftmmode
展锐 adb reboot cftreboot (AT+ZREBOOTCALI) 会出现一个 com 口
MTK adb reboot meta
image.png
2022.12.12
查看有哪些可用的 dpu_core_clk ,需要先确认在哪一个 global_dispc.c .c 里找
ls bsp/out/androidr/sp7731e_1h10_native/obj/u-boot15/drivers/video/sprd/ 查看是哪一个? 例如 pike2/global_dispc.c
SPRD_DIAG (COM 16) 是校准模式的com口
P732F21_R和P963F60_R是一个souing代码库
DPI_CLK_SRC 数组里
2022.10.13
1、P963F91的二供屏st7701点亮
2、P932F22的开机logo有白点,我认为是用画图打开另存为256色位图时不小心点上的,下回多检查避免这类低级问题,logo重新改过后上传了
今日笔记:
开机logo生成的img文件在Boot Logo分区里面。具体名称比如,P963F22里的Boot Logo:
在GAIA 网站里的LOGO配的是 LOGO_BIN_NAME :unisoc_HD_720_1280_24bit.bmp
最后在下载工具里的Boot Logo是 D:\MYFILE\ResearchDownload_R25.21.0802\Bin\ImageFiles\_DownloadFiles1995C_19B8E805_0\unisoc_HD_720_1280_24bit.bmp
刚好对应,如果更换logo后想单独编译一下,用命令 ./build.sh P932F22_S -m splashimg -S
lcd学习指南总结:
lcd有两种工作模式,video mode和command mode,video mode模式需要持续刷新显示器,不需要帧缓冲器;command mode有帧缓冲器不需要定期刷新,定时器会从帧缓冲器取数据显示在屏幕上。video mode虽节省了帧缓冲器,但是定期高速发送DSI视频报文消耗了大量能量,command mode在显示器中集成全帧长帧缓冲器需要成本
中间具体改dtsi的我总结过;后面波形图的内容不大看得懂
2022.10.12
1、p932f22验证二供屏正常,上传单据
2 p963f91二供屏st7701驱动加好了,但是现在只是uboot生效了,kernel似乎没编进去还没有生效
今日笔记:
快速在项目目录里找到板级驱动 ls bsp/out/androids/s9863a1h10_go_32b_2g/obj/kernel/arch/arm/boot/dts/pitaya/ (多次tab补齐)
以P932F22_S为例,含义是 ls bsp/out/androids/sp9832e_1h10_go2g/obj/kernel/arch/arm/boot/dts/rosemary/ sp9832刚好对应P932F22_S,
后面就是kernel里面修改dtsi的路径
刚下载编译好,下载版本到手机,改动代码前看看初始的代码有没有问题
如果屏幕不亮,在有口的条件下,cat /proc/driver/lcd_id 看是否加载了正确的驱动程序 也可 cat /proc/cmdline 查看lcd_name是否符合预期
如果怀疑uboot没有编译进来,可以先单独编译uboot,刚好也花不了太多时间
2022.10.11
1、P932F22二供屏点亮
2、遇到一些initial-comand不符合展锐格式的改成了展锐格式,和屏幕不亮的一些解决方法
3.接下来的计划:具体的学习一下开机logo图片是怎么样,转化成bin文件加载到内存和最后输出到屏幕的 ,我在程序里面找一下相应的函数
下面是今天的笔记:
开机logo流程:boot logo会先转换成boot.bin,boot.bin里前4096字节里存放的是boot logo 和charge logo的分辨率大小等信息,后面的字节存放实际图片内容
不要用\\注释,不要用printk函数,用print_info函数
屏幕还是没亮采取的策略: 不是平台侧控制背光,是IC控制输出pw信号控制背光,找创维lcd ic 厂的FAE要输出30k的pw波的指令,厂商发来如下指令:
39 01 00 00 00 00 06 FF 77 01 00 00 10
39 01 00 00 00 00 02 BB 00
39 01 00 00 00 00 02 CD 00
39 01 00 00 00 00 02 CA 11
39 01 00 00 00 00 02 BC 01
39 01 00 00 00 00 02 51 00
39 01 00 00 00 00 02 53 0C
39 01 00 00 00 00 02 55 00
39 01 00 00 00 00 02 5E 03
这些指令,不符合展锐的风格,我把它们转换成符合展锐风格的格式,如下:
39 01 00 06 FF 77 01 00 00 10
39 01 00 02 BB 00
39 01 00 02 CD 00
39 01 00 02 CA 11
39 01 00 02 BC 01
39 00 00 06 FF 77 01 00 00 00
39 00 00 02 51 ff/*zuiliang,yuanlaishi 00*/ 51后面的数据原来是00,为了让它以最大的亮度显示,我将这里改成了ff
39 00 00 02 53 0C
39 00 00 02 55 00
39 00 00 02 5e 03/*yishang 4 hang*/ 我把它们放在最后一个指令29的前面
05 20 00 01 29 这是initial-command最后一条指令29
还是没亮 ---> 找硬件测PW波形,发现没PW波信号 ----> 找厂商要自测模式,发来自测模式如下:
WriteComm (0xFF);
WriteData (0x77);
WriteData (0x01);
WriteData (0x00);
WriteData (0x00);
WriteData (0x12);//bank2
WriteComm (0xD1);
WriteData (0x81);
WriteComm (0xD2);
//WriteData (0x05);//黑色白边框
//WriteData (0x06);//棋盘格
WriteData (0x08);//彩条
WriteComm (0x29);//display on 最后29对应initial-command的最后一条指令 05 20 00 01 29 打开显示
我把它们按照展锐的格式加在initial-command的倒数第二个指令:
39 00 00 06 FF 77 01 00 00 12
39 00 00 02 D1 81
39 00 00 02 D2 08
屏还没亮,找硬件部把背光强制拉高,看看结果 ---> 强制拉高后屏亮了,接下来用电池也能亮屏,只是注意主板拆下来后,
要按电源开机或下版本,一定要把主板往中壳按下去,这样电源按钮才能短接,电源键才能用
最后为了速度快一些,我把 sleep-in-command 中的 05 78 00 01 28 中的延时120ms改成了32ms ,修改后的指令是 05 20 00 01 28
直接通过adb指令改porch :
cd /sys/class/display/panel0/
ls 在ls后可以看到hporch 和 vporch
cat hporch 屏幕显示: hfp=20 hbp=20 hsync=8
echo 42 42 8 > hporch
echo 48 48 8 > vporch
input keyevent 26 相当于按下power键
2022.10.10
9月总结
月总结.docx
内核启动时u-boot传入参数: cat /proc/cmdline
在修改dtsi文件的initial-command中,一般含有文件名比如 zte_lcd_lcetron_st7701_hsd_4p95_480p.dtsi 中的initial-command 里有 39 00 00 06 FF 77 01 00 00 00
这样含有文件名7701的指令,意义是切换7701的page寄存器,通常在initial-command最后一个切换page寄存器指令是切换到寄存器编号为0的指令,比如
在前面可能是 39 00 00 06 FF 77 01 00 00 13 在initial-command快要结束的时候切成 39 00 00 06 FF 77 01 00 00 00 ,以便后面的其它诸如sleep-in-command执行
2022.10.9
39 00 00 03 7A 13 1A 是展锐平台initial-command格式
1 1 2
MIPI_CMD_TYPE delay_time register_count register_value(把值13,1A写给寄存器7A)
在初始化参数的39,15,05等是MIPI命令,随后一个字节是延时时间,其后两个字节 00 03表示后面有三个寄存器值
例如 05 78 00 01 11 //delay 120ms 第二个字节是十六进制78表示延时120ms
在mtk平台写法变成 39 00 00 08 69 14 22 14 22 44 22 08 = 0x69, 07, 14 22 14 22 44 22 08 把69寄存器写在前面,后面还剩7个寄存器和值
在兼容第二家屏前,先通过下载版本到手机来看看之前程序有没有问题,无误后再下一步,有误则重新拉取程序编译和修改
在有口的情况下展讯平台下版本可以直接通过 reboot autodloader (adb shell下) adb reboot autodloader (cmd下)
2022.10.8:
一个驱动测试,包括驱动代码、dts修改、编译控制修改等
在\\10.95.240.190\dongyuanjie\sprd\P720S09\bsp\kernel\kernel4.14\arch\arm64\boot\dts\sprd\snail\ touchscreen_snail.dtsi 改写 test.dtsi
/ {
zte_test:zte_test {
compatible = "zte_test";
};
};
在\\10.95.240.190\dongyuanjie\sprd\P720S09\vendor\zte\kernelconfig\sprd\configs\snail_diff_config (因为板级驱动 ZTE_BOARD_NAME 就是snail) 中加入
ADD:CONFIG_A
最后按照之前的方式把它上传之后,很快在网页里点击三个点把它设置为work in progress,这样其它人就不会加1
今天发现展锐平台的log用一个批处理文件抓完后打开看乱码,需要运行一个.py的python脚本双击解析出新文档才能看,安装python脚本的时候要注意勾选加入环境变量,这样之后双击.py的analyzer.py脚本才有新的解析后的不乱码的文档生成
2022.9.30
1 修改P932F22的bootlogo和重新拉取代码,修改bootlogo地址: \\10.95.240.190\dongyuanjie\sprd\P932F22\vendor\zte\resourceimg\pic_res\boot_logo\V11_2021new\1014_480
2 单独重新拉取一个小manifest的代码: 回到项目目录,比如 P932F22_S 再repo sync -c vendor/zte/resourceimg
3 commit代码的另一个方法,git commit
输入文字
(空行)
@type RQ
F3
回车
CTRL+X 退出
apush (提交)
2022.9.13
1、参加二轮培训,学习了《认识终端启航第一课》和《终端战略及产品知识》、《职业发展规划》学到了要善于觉察
和对制定的目标要有行动力,要有独立的思考和行动,成就自我,再成就公司。
2022.9.9
1、单独编辑bootimage,得到的文件路径是P720S07/out/target/product/ums9620_2h10
2、在bsp/kernel/kernel14.14/drivers/gpu/drm/sprd/zte_lcd_common.c中加入proc节点的代码
2022.9.8
1、单独编译的命令 ./build.sh P720S07_R -m bootimage -S
2、查看手机日志 cat /dev/kmsg
3、编译了我的Proc节点,ls能查看到,但是read和write有问题导致cat和echo节点后手机死机,接下来我要仿照着源码改程序。
2022.9..7
一、在师傅指导下,在\\10.95.240.190\dongyuanjie\sprd\P720S07.1\bsp\kernel\kernel4.14\drivers\gpu\drm\sprd\zte_lcd_common.c 中加了一个很简单的proc节点,源码是
#define FILE_NAME "my_test_procfs"
static ssize_t test_proc_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
{
printk(KERN_INFO "hello");
return 0;
}
static const struct file_operations test_ops =
{ .owner = THIS_MODULE,
.read = test_proc_read,
};
在一定会执行的代码下加入
proc_create(FILE_NAME, 0664, NULL, &test_ops);
image.png
image.png
image.png
二、同事指导的在proc下产生一个节点需要执行的步骤:
1、在\\10.95.240.190\dongyuanjie\sprd\P720S07.1\vendor\zte\kernelconfig\sprd\configs下的unicorn_diff_config下输入
ADD:CONFIG_A
2、在\\10.95.240.190\dongyuanjie\sprd\P720S07.1\bsp\kernel\kernel4.14\drivers\vendor\common\下创建自己文件夹c,c里再存放makefile和kconfig以及自己的a.c
2.1、makefile内容如下:
#drivers/test/Makefile
#
#Makefile for the test
#
#ccflags-y += -I$(srctree)/drivers/vendor/common/touchscreen_v2/test/
ccflags-y += -I$(srctree)/drivers/vendor/common/c
obj-$(CONFIG_A) += a.o
2.2、kconfig内容如下:
config A
bool "A support"
default n
help
Say Y here to enable debug test.
If unsure, say N.
3、父目录\\10.95.240.190\dongyuanjie\sprd\P720S07.1\bsp\kernel\kernel4.14\drivers\vendor\common\下
makefile内容:
#
obj-$(CONFIG_A) += c/
kconfig内容:
#
source "drivers/vendor/common/c/Konfig"
最后单独编译命令 ./build.sh P720S07_R -S -m bootimage 得到的image路径为 P720S07/out/target/product/ums9620_2h10
存在的问题:
再看源码时函数调用比较复杂,像是上回的dtsi文件里的reset-on-sequence都没有一路追踪到®ister
2022.9.5
在同事指导下修改P720S07的γ参数,再编译版本,下载版本到手机,成功上传一次代码
用到的命令是:
git status .
git add xxx.dtsi
git commit 然后CTRL+X先退出,在是否保存输入Y确认保存,再回车,即可本地提交成功
git log 查看本地提交情况
cat .git/refs/remotes/m/release-zte 查看上传分支
屏幕显示:ref: refs/remotes/zte/r-sprd-5g-v1
git push zte HEAD:refs/for/r-sprd-5g-v1
接着网页设置boot和kernel下的文件同一topic关联起来,再点击reply给自己加1
2022.9.1
使用P720S07的熊猫屏修改后的配置文件重新编译程序,下载了版本,配置文件在uboot和kernel中都有,所以一次改两处,路径是P720S07/bsp/bootloader/boot/soic
学了linux中的信号,通过signal函数来注册信号处理函数,signal函数中的两个参数分别为信号的宏和发生此信号的回调函数signal_handler,回调函数是由内核调用,不是由程序员调用,程序员只注册信号处理函数,以下是以前写的利用信号实现父进程回收子进程。sigaction函数注册信号SIGCHLD的信号处理函数(此处用sigaction,因为sigaction无论UNIX还是 Linux都可以用,更通用。虽然signal函数更简单些。)
2022.8.31
1. 学了poll轮询函数和select函数,联系到之前的Linux网络编程里写高并发服务器的时候用到过,当时是说poll函数监控发生变化的文件描述符,可以取代多进程和多线程版本的服务器,相比少了进程切换的开销,以下是之前使用poll函数写高并发服务器server.c的程序:
2022.8.30
P932F22开机logo已经好了,是把sprd.main.c中的文件里一个字符串后面_a取消了就好了,今天熟悉了当出现屏幕相关问题,可以抓log看看哪里出了问题,再结合一个搜索代码的网站,定位代码出错位置再修改
P932F22的开机logo位置是 \\10.95.240.190\dongyuanjie\sprd\P932F22\vendor\zte\resourceimg\pic_res\boot_logo\V11_2021new\1014_480 ,了解了sprd平台开机logo要设置成8bit,画图工具打开,另存为256位即可
修改两个dtsi里的内容,在uboot里改lcd_id 烧录id,一次改两个位置,然后改porch,在kernel只需改porch
需要修改两个dtsi位置为
\\10.95.240.190\dongyuanjie\sprd\P932F22\bsp\bootloader\u-boot15\arch\arm\dts\rosemary
\\10.95.240.190\dongyuanjie\sprd\P932F22\bsp\kernel\kernel5.4\arch\arm\boot\dts\rosemary
在分别include一下:在kernel里的arch/arm/boot/dts/rosemary/zte_lcd.dtsi和uboot里的arch/arm/dts/rosemary/sp9832e_1h10_32b.dts里面分别include一下就好
单独编译 ./build.sh P720S07_R -S -m bootimage 单独编译uboot ./build.sh P720S07_R -S -m bootloader 编译后的结果是u-boot-sign.bin
2022.8.29
今天学习了加载开机启动logo的内容,首先根据物料信息更改JSON上面的分辨率等相关配置,然后git上传
阅读了.sh和.py两个脚本,Python脚本里面有个读取bmp文本的函数,boot logo的bmp图片会先转换成boot.bin存在内存中,
boot.bin里前4096字节里存放的是boot logo 和charge logo的分辨率大小等信息,后面的字节存放实际图片内容,最后再由其它地方的程序加载显示在屏幕上。
2022.8.26
参与了P932F22项目,现在屏幕亮了,在这个过程中,学习了改程序的套路和提交命令,熟练了下载版本等操作
看完了mtk关于LCD的源码,觉得和之前的设备驱动结构有些类似,还需要再看看书本,了解LCD相关的内容,看看LCD驱动编程通常需要实现哪些函数
2022.8.25
学习了看与LCD相关的电路图,这样一旦程序出问题,我们还可以拿万用表来测量一些电压,锁定问题,了解了pwm调光,我们的pwm调光来源有两个,一是显示IC,而是CPU芯片,ap侧
学习了已经兼容了第一家屏的基础上,如何改代码兼容第二家屏,通常来说,如果能兼容第一家屏的话,说明了供电没有问题,这时候只需要复制第一家屏的uboot文件和kernel文件,换2个porch和ID就行了
第三就是找板级,方法是JSON系统——项目名——项目配置——board name。
修改好的新LCD驱动,单独编译后输出的内容在bsp/out/target目录下
2022.2.24
学习内容:
1. 下载了开源的mtk的源码,找到了LCD相关的程序在阅读
2. 最近这几天把Python基础看完了,因为之前见到同期入职的同事再拿Python写脚本,而且之前领导也问我会不会Python,问了两次,现在我把Python基础过完了,但是最后再做一个关于Python面向对象特性的项目飞机大战的时候,pygame一直装不上,可能是因为我为了运行流畅而装的Ubuntu14.04版本老的缘故,视频中老师一行安装代码能行,但是我用就会报错,下面是我看的mtk程序和写的Python代码
2022.8.18
学习内容:
看了书并发与同步控制的一章,发现很多函数原型和之前看的视频不一样,就拿之前看过的基于信号量实现的生产者消费者模型来说,下面以前的程序
视频教程都用的sem_wait和sem_post中间夹着临界区,而书本则是down和up
IMG_20220818_220641.jpg
而在man手册直接查不到down这个系统调用,不过感觉似乎表达的意思差不多
最后还是感觉以前看的视频更简单些,以前的视频介绍的是互斥锁,条件变量(条件变量不是锁,通常配合互斥锁一起使用),读写锁(读写锁是一把锁,读共享,写独占。写锁优先级更高。),信号量以及最后基于信号量实现的生产者消费者模型(允许一定程度的并发)。
2022.8.17
学习内容:
借到了展瑞的p720s09手机,拉取源码并编译
学会了adb 下cat proc/driver/lcd_id看LCD的版本,再通过soud网站查询LCD的源码
看了一些竞态与并发相关的内容,了解了读写锁和自旋锁
明日计划:
学互斥锁与信号量
2022.8.16
学习内容:
1、《看懂原理图》一文看了一遍,起初这篇文章打不开,联系了作者还是打不开,即使作者开了权限也打不开,后来在it网站提交问题,十分钟后解决,说是原因是:服务器异常
2、完成三门线上考试
3、看了新加驱动后kconifg和makefile内容怎么改
明日计划:
学Linux设备驱动中的并发控制
存在问题:
不知道kconfig加在哪,以及写完kconfig后的后续操作和验证程序
2022.8.15
学习内容:
下载 MTK 平台 版本工具,遇到无法下载问题。需要安装 MTK 平台的 Preloader 端口驱动 才能正常下载。联系一位同事发来驱动解决
明日计划:
学adb调试,打印分析log
2022.8.12
学习内容:
完成了字符驱动程序编写
明日计划:
找IT解决repo拉代码报错
等mtk手机申请处理完成,然后借手机
image.png
image.pngimage.png
image.pngimage.pngimage.pngimage.pngimage.png
2022.8.11
学习内容:
学习字符设备驱动开发内容
参考教材,已经写了一半的字符驱动程序了
明日计划:
写完整个字符驱动开发程序
存在问题:
repo命令报错,拉代码报错
文件位置 ./vendor/honor/chipset/qcom/sm8650/devicetree/honor_display/panel/dtsi/ROD2/dsi-panel-260-a20-12p3-cmd-dphy-ver-000.dtsi
gerrit位置honor/chipset/qcom/sm8650/devicetree/honor_display/dtsi/dtsi/dtsi/dsi-panel-260-a20-a20-12pp3-cmd-dphy-ver-000.dtsi.dtsi
260_A20.C
文件位置 ./vendor/honor/chipset/qcom/base/kernel/drivers/lcd/panel/rod2/260_a20.c
Gerrit位置荣誉/芯片组/QCOM/base/base/kernel/drivers/lcd/panel/rod2/260_a20.c
BZL MSM/lcdkit/panel/rod2/260_a20.c
文件位置 ./vendor/qcom/opensource/display-drivers/display_modules.bzl
gerrit位置平台/供应商/opensource/display-drivers/display_modules.bzl
kbuild lcdkit/panel/rod2/260_a20.o \
文件位置 ./vendor/qcom/opensource/display-drivers/msm/Kbuild
gerrit位置平台/供应商/opensource/display-drivers/msm/kbuild
DTSI中中
&sde_dp {
状态=“禁用”;
};
QPST的::
C:\ programData \ Qualcomm \ qpst
代码在代码::
struct mipi_dsi_msg {
U8频道;
U8类型;
U16标志;
size_t tx_len;
const void *tx_buf;
size_t rx_len;
void *rx_buf;
};
struct DSI_CMD_DESC {
struct mipi_dsi_msg msg;
bool last_command;
U32 POST_WAIT_MS;
U32 ctrl;
U32 ctrl_flags;
ktime_t ts;
};
struct DSI_PANEL_CMD_SET {
enum dsi_cmd_set_type类型;
ENUM DSI_CMD_SET_STATE状态;
U32计数;
u32 ctrl_idx;
struct dsi_cmd_desc *cmds;
};
高通初始代码::
-QCOM,MDSS-DSI-Panel-status-command:由多个DCSPACKET形成的字节流
QCOMDSI控制器协议,读取面板状态。
此价值用于踢出ESD恢复。
字节0:DCS数据类型
字节1:设置指示这是一个单独的数据包
(没有链)
字节2:虚拟通道号
BYTE3:期望客户端(DCS Read命令)的ACK
BYTE4:DCS命令后指定的MS的等待次数
传输
字节5、6:16位的网络字节顺序长度
BYTE7及以后:有效载荷的数字字节
长度长度的数数,用于用于面板面板的
关于关于,请请\ drivers \ video \ msm \ mdss \ mdss_dsi.h中dsi_cmd_desc结构
Qcom dsi控制器控制器控制器协议协议协议数据数据包构成的字节流字节流字节流
字节0 - DCS数据数据字节字节
1 - 设置字节表示是独立数据包()字节
2 - 虚拟虚拟编号
3 - 需要来自端确认确认确认确认读取读取读取)字节)
4 - DCS命令命令等待指定的毫秒毫秒
5、6 - 按按字节顺序列出列出列出列出位位
7及 - 净荷净荷的数数
05 01 00 00 ff 00 01 11
cmd [i] .msg.type = data [0];
cmd [i] .msg.channel = data [2];
cmd [i] .msg.flags | = data [3];
cmd [i] .ctrl = 0;
cmd [i] .post_wait_ms = data [4];
cmd [i] .msg.tx_len =((数据[5] << 8)|(data [6]));
有效载荷[J] =数据[7 + j];
-QCOM,MDSS-DSI-ON-COMMAND:由多个DCS数据包形成的字节流
QCOM DSI控制器协议。
字节0:DCS数据类型
字节1:未使用
字节2:虚拟通道号
字节3:消息标志
字节4:DCS命令后指定的MS的等待次数
传输
字节5、6:16位的网络字节顺序长度
字节7及以后:有效载荷的数字字节
打包打包条:40就就打包打包,要要打包打包打包打包是的是打包是是打包打包打包打包打包打包打包打包条条条条的话前四四条条条条条条条条条条条条四四四用用
字节3 = 00(表明这是一个单独的数据包)
字节3 = 40(表示这将附加到下一个
数据包流中的单个数据包)
7.3.8,通用读取请求,数据类型= 00 0100(0x04),01 0100(0x14),10 0100(0x24)
通用阅读请求有3种类型::
数据类型= 00 0100(0x04):0个参数;
数据类型= 01 0100(0x14):1个参数;
数据类型= 10 0100(0x24):2个参数;
7.3.9.1,dcs短写命令,数据类型= 00 0101(0x05),010101(0x15)
通用长写,数据类型= 10 1001(0x29)
7.3.9.3,dcs long write / write_lut命令,数据类型= 11 1001(0x39)十六十六进制
enum dcs_cmd_type {
dcs_cmd_short_wr = 0x05,
dcs_cmd_rd = 0x06,
dcs_cmd_wr = 0x15,
dcs_cmd_long_wr = 0x39,
dcs_cmd_delay = 0xff
};
enum gen_cmd_type {
gen_cmd_rd = 0x14,
gen_cmd_long_wr = 0x29,
};
若若改了honon_display/panel/xml/rod2/rod2_260_a20_123_cmd.xml产物
-rw-rw-r-- 1 DJ0011744 DJ0011744 3158332 5月24日17:59 ./boot.mxf.2.1/boot_images/boot/qcompkg/socpkg/socpkg/palawan/palawan/palawan/bin/bin/bin/laa/laa/release/release/release/ueelease/uefi.elf
第406行:FastBoot Flash Uefi D:\ MyFile \ Myfile \ Factory \ 2401_底\ factory \ Factory \ Factory_version \ bootloaderimage \ Qual_fac_download_tools_1.1 \ .. \ bootloaderloaderimage/uefi.elf/uefi.elf/uefi.elf
查看面板
adb shell cat sys/class/graphics/fb0/lcd_model
屏幕区::
C:\ USER \ DJ0011744> ADB SHELL CAT SYS/class/graphics/fb0/lcd_model
260_A20 12p3 3000 x 1920 Project_HD119 VER_001
C:\ Users \ DJ0011744>
Git Show头
查看头头和
HBM模式(高亮度模式)
aod模式(始终在显示),,
HDR:
高动力范围,hdr),相比相比的的的动态动态范围的,可以的,可以可以提供更多动态
的曝光时间的LDR(Low-Dynamic Range,低动态范围图像),并利用每个曝光时间相对应最佳细节的LDR图像来合成最终HDR图像。
它能够更好地反映出真实环境中的视觉效果。
git clone -b honor_u_factory_MagicOS8.0.1_rod2_20240229_chipset_qcom_sm8650 ssh://dj0011744@mgit-tm.ipd.hihonor:29418/platform/vendor/opensource/display-drivers
拉单仓,好上传
honor_u_factory_MagicOS8.0.1_rod2_20240229_chipset_qcom_sm8650 是分支名
ssh://dj0011744@mgit-tm.ipd.hihonor:29418/platform/vendor/opensource/display-drivers 可以由 cherrypick 复制只要前面一点内容得到,
也可点 Project -- List -- Filter 里搜 display-drivers (Project 后几位) ,然后复制 git clone ssh://dj0011744@mgit-tm.ipd.hihonor:29418/platform/vendor/opensource/display-drivers
串口管控方案
为了提高性能串口默认是关闭的状态,不打印kernel和lk日志,串口log管控方案合入后,可以通过fastboot命令打开或者关闭串口log.
1)高通平台:
adb reboot bootloader
fastboot 解锁
fastboot oem uart enable/disable
fastboot reboot
注:波特率为115200
fastboot oem uart status可以查看当前串口开关状态
高通平台开启串口后,手机会比较卡顿,且容易发生dump,故测试完成后及时关闭串口。
2) Mtk平台
adb reboot bootloader
fastboot 解锁
fastboot oem p2u on/off
fastboot reboot
注:MTK平台的波特率为921600
可以通过cat proc/cmdline查看其中的参数来查看当前串口开关状态
mtk_printk_ctrl.disable_uart=1表示串口打印关闭
mtk_printk_ctrl.disable_uart=0表示串口打印开启
串口开启后,连接串口线,打开串口工具,根据平台不同设置对应的波特率,即可抓取串口log。
读 id log ,关键字 IdPin
Line 399: (bootloader) eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
Line 400: (bootloader) eDisplayId: 0, GpioIdPinGroup: Id0:6, Id1:6
Line 401: (bootloader) eDisplayId: 0, GpioIdPinBus: Id0:0, Id1:0
Line 404: (bootloader) IDPIN gpio down
Line 406: (bootloader) IDPIN gpio down
Line 409: (bootloader) LcdkitDynamicGetPanelId: IdPin = 0x00 !
Line 410: (bootloader) eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
异常,默认屏,读id
Line 401: eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
Line 402: eDisplayId: 0, GpioIdPinGroup: Id0:6, Id1:6
Line 403: eDisplayId: 0, GpioIdPinBus: Id0:0, Id1:0
Line 406: IDPIN gpio down
Line 408: IDPIN gpio down
Line 410: LcdkitDynamicGetPanelId: IdPin = 0x0A !
Line 411: eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
Line 1116: eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
Line 1117: eDisplayId: 0, GpioIdPinGroup: Id0:6, Id1:6
Line 1118: eDisplayId: 0, GpioIdPinBus: Id0:0, Id1:0
Line 1121: IDPIN gpio down
Line 1123: IDPIN gpio down
Line 1125: LcdkitDynamicGetPanelId: IdPin = 0x0A !
Line 1126: eDisplayId: 0, GpioIdPin: Id0:54, Id1:54
Line 1677: Unable to get Panel IDPin, 14
uefi log
fastboot oem log
花屏了,抓完 log 后 并标明花屏时故障机上的时间,后续可以做的几个动作:
1、基本排查一下是送图都是花的 ? 还是送图 ok , 是仅屏幕显示花 ?
方法: 出现花屏后截屏、录屏或投屏,得到的图片,录像、投屏看起来花么 ?如果花,那么就是送图都是花的, 得找上层解决,不关驱动的事 ;如果从屏幕看起来花,截图等却正常,那就是屏幕问题,可能得部件、驱动分析
1、显示图像有多个图层, hwc 这个软件也能渲染图片, 验证 hwc 代码是否有问题 ?
方法: 关闭 HWC ,强制使用 gpu 处理图像画面 ,如果 关闭 HWC 后,故障消失或不复现了,那就是 hwc 代码有问题,需要和客户商量方案
2、如果怀疑图层叠加问题,那么试着规避叠加
方法: 用 bist code (或 mtk 平台有 test pattern) ,显示纯色界面 ,看一下屏幕是否显示正常 ? 如果显示异常,则模组端分析,
dump 界面了,9008 刷版本:
三键齐按退dump - 只要一有显示马上按音量下,进 fastboot - fastboot oem edl 进 9008
adb reboot edl 直接进 edl
生产同学看 shared_pref 来确认有无报错,如 te timeout
D:\MYFILE\Getlog老化\Logs_35.0_b7ea82a2_20240330162454\07_RunningTest_log\shared_pref\rt1_dmd_content.xml
te timeout 报错搜索 sde_|lcd|drm 关键字
Line 12534: 02-19 01:00:16.800 <3>[ 30.964971][ T1141] [2024:02:19 01:00:15](3)[1141:crtc_commit:168][drm:_sde_encoder_phys_cmd_handle_wr_ptr_timeout:2208] [sde error]enc68 intf1 wr_ptr_irq wait failed, switch_te:0
log 打印:
Line 4815: 02-20 03:19:25.859 <3>[ 25.866571][ T1152] [2024:02:20 03:19:25](6)[1152:crtc_commit:169][drm:_sde_encoder_phys_cmd_handle_wr_ptr_timeout:2208] [sde error]enc68 intf1 wr_ptr_irq wait failed, switch_te:0
Line 5958: 02-20 03:17:04.930 <3>[ 78.958552][ T1669] [2024:02:20 03:17:03](0)[1669:vendor.honor.ha][drm:lcdkit_panel_cmd_rx [msm_drm]] *ERROR* [lcdkit /E]: recv_buf_len is less
Line 6935: 02-20 03:17:26.856 <6>[ 100.882822][ T1669] [2024:02:20 03:17:26](1)[1669:vendor.honor.ha][drm] [lcdkit /I]: lvd read reg error
Line 6936: 02-20 03:17:26.856 <3>[ 100.882843][ T1669] [2024:02:20 03:17:26](1)[1669:vendor.honor.ha][drm:lcdkit_ddic_lv_detect_show [msm_drm]] *ERROR* [lcdkit /E]: ddic lvd judge fail
新的查看 dmd 是否报错
D:\MYFILE\老化Getlog\龙锋_生产_0307Logs_35.0_31ff9bc3_20240308101826\07_RunningTest_log\shared_pref\rt1_dmd_content.xml
wmic bios get serialnumber 获取电脑SN号
lcd文档:
http://tplcd.rnd.hihonor/docs/%E7%9F%A5%E8%AF%86%E6%96%87%E6%A1%A3%E6%80%BB%E7%BB%93/2%E3%80%81%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF%E7%B1%BB/Honor-panel.html
刷版本:
https://elink.e.hihonor/docx/doxlrXVcK9LA6SIoCjZnibTuuqW
bring up 的代码:
http://
dtsi
zj0010898@siashcsitd03596:~/code/rod2_fac_20240129/.repo/manifests$ grep -nir "platform/vendor/opensource/display-drivers"
dtbomiage 位置:
/mnt/disk/zj0010898/code/rod2_fac_20240126/ap/out/target/product/pineapple/ROD2/
版本:
进fastboot
adb reboot bootloader
查看设备
fastboot devices
下小包
fastboot flash dtbo C:\Users\wj0011466\Desktop\asd\dtbo.img
重启
fastboot reboot
下版本 无adb 也无 fastboot :
短接强制下载点,和 1.8V 进9008 后双击 C:\Users\dj0011744\Downloads\QCOM_Download_Tools_V1.3\QCOM_Download_Tools_V1.3\Qcom_Format_Download_Tools_V1.3.bat
根据提示操作, 版本路径输入 : D:\MYFILE\version\factory\鲁宇读sn\factory 即可,(在bootloaderimage,fastbootimage和ROD2-W09-BD_1.0.0.5_Download.xml的上层路径)
如何寻找强制下载点?
可通过 adobe 打开原理图,再搜索位号图,例如 rod2 搜索 uart 找到 TP3821 (FORCE_USB_BOOT强制下载点)
下版本路径:
factory\factory_version\bootloaderimage\Qual_fac_download_tools_1.1 中的 fac_download_tools_fastboot_1.1.bat
下载了一个 ROD2-LGRP5-CHN_SM8635_Master_performance_no_log_20240207_04 版本
使用的刷机脚本 : C:\Users\dj0011744\Downloads\ROD2-LGRP5-CHN_SM8635_Master_performance_no_log_20240207_04\no_log\ROD2-W09_all_cn\updateinadb_all.bat
启动单项MMI:
adb shell am start com.hihonor.mmitest/.MmiSingleItemMenu
白、红、绿、蓝、灰、深灰、黑、
Line 3: 6,625023,56340322741,-,caller=T1873;[2024:03:17 04:42:58](2)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 972 桌面亮度
Line 51: 6,625463,56360925986,-,caller=T1873;[2024:03:17 04:43:18](5)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 4466 apk 界面亮度
Line 65: 6,625645,56363883396,-,caller=T1873;[2024:03:17 04:43:21](6)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 3442 白
Line 125: 6,625757,56367180508,-,caller=T1873;[2024:03:17 04:43:24](6)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 8176 红、绿、蓝
Line 234: 6,625927,56372674390,-,caller=T1873;[2024:03:17 04:43:30](2)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 8176
Line 242: 6,625957,56374533902,-,caller=T1873;[2024:03:17 04:43:32](0)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 38 灰、深灰
Line 274: 6,626068,56380934702,-,caller=T1873;[2024:03:17 04:43:39](6)[1873:binder:1664_2][drm] [lcdkit /I]: backlight level = 4466 返回apk
查看boaddid 命令:
adb shell getprop ro.board.boardid
老化命令
adb shell setprop persist.sys.rt.para true
打开屏幕显示刷新率命令 :
adb shell service call SurfaceFlinger 1034 i32 1
切帧率
adb shell service call SurfaceFlinger 1035 i32 1
.bashrc 配置
118 export no_proxy=mirror-gerrit.ipd.hihonor,iot-gerrit.ipd.hihonor,pd-gerrit.ipd.hihonor,gerrit-pub.ipd.hihonor,gitlab-y.ipd.hihonor,mgit-tm.ipd.hihonor,mgit-tm.rnd.hi honor,gitlab-g.ipd.hihonor,
119 export PATH=~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
120
121 export ONLINE_USERNAME="zj0010898"
122 export ONLINE_PASSWD="Zhang0608,"
123 export no_proxy=mgit-tm.ipd.hihonor
124
125 export https_proxy=proxysysx.hk.heds.hihonor:8080
126 export http_proxy=proxysysx.hk.heds.hihonor:8080
127 #export http_proxy='proxysysx.his.hihonor:8080'
128 #export https_proxy='proxysysx.his.hihonor:8080'
129
130 #export ftp_proxy='proxysysx.his.hihonor:8080'
131 #export no_proxy='localhost,127.0.0.1,w3.hihonor,mgit-tm.ipd.hihonor,mirrors.chinatelecom.hihonor.io'
读寄存器
adb remount
adb shell "mount -t debugfs none /sys/kernel/debug"
adb shell "echo set_debug_level:4 > /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "echo read_reg:dsi:0 cmd:0x0A read_count:1 > /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "echo read_reg:dsi:1 cmd:0x0A read_count:1 > /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "cat /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell cat /sys/class/graphics/fb0/panel_sncode
adb remount
adb shell "mount -t debugfs none /sys/kernel/debug"
adb shell "echo set_debug_level:4 > /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "echo write_reg:dsi:0 lp_mode:1 cmd:0x90 payload:0x68 0x00 0x86 0xE6 >/sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "echo read_reg:dsi:0 cmd:0x91 read_count:4 > /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
adb shell "cat /sys/kernel/debug/lcd-dbg/lcd_kit_dbg"
echo c > /proc/sysrq-trigger
这个是触发dump的 可以看下dump显示OK着不'
串口log
tx 接 rx
rx 接 tx
共地
查看sn 码
adb shell cat /sys/class/graphics/fb0/panel_sncode
adb shell cat /sys/class/graphics/fb0/ddic_oem_info
cat /sys/class/graphics/fb0/panel_sncode,这里的信息是在开机是读取,然后存储在全局变量中,当
./temp/${save_dtbo_file}.$i -o ${save_dts_file}.$i
编译方法:
若改了
/vendor/qcom/opensource/display-drivers/msm/dsi/dsi_display.c
则编译
./build_vendor.sh variant=eng versionmode=factory export_para=RELEASE_SIGN:false export_para=NETWORK_TYPE:wifionly msm_drm.ko
/honor_android_trunk_magicos-vendor_qcom_sm8650/vendor/honor/chipset/qcom/base/kernel/drivers/lcd/lcdkit_factory.c
生成物是 msm_drm.ko
-rw-rw-r-- 1 dj0011744 dj0011744 7678087 Mar 4 10:30 ./ap/out/target/product/pineapple/obj/DLKM/msm_drm.ko_intermediates/msm_drm.ko
两个都编译
time ./build_vendor.sh variant=user export_para=RELEASE_SIGN:false export_para=NETWORK_TYPE:wifi export_para=TRANSLATOR32:true dtboimage msm_drm.ko
D:\MYFILE\version\factory\2401_底版本\factory\factory_version\fastbootimage 里的 vbmeta_vendor_dlkm.img 和 vendor_dlkm.img
若都有,则都刷,
Search "vendor_dlkm.img" (2 hits in 1 file of 1 searched)
D:\MYFILE\完整的刷机log.txt (2 hits)
Line 165: fastbootimage/vbmeta_vendor_dlkm.img
Line 751: fastboot flash vbmeta_vendor_dlkm D:\MYFILE\version\factory\2401_底版本\factory\factory_version\bootloaderimage\Qual_fac_download_tools_1.1\..\..\\fastbootimage/vbmeta_vendor_dlkm.img
拉代码:
repo init -u http://mgit-tm.ipd.hihonor/platform/manifest.git -b honor_u_debug_MagicOS8.0_20240207_rod2 --no-repo-verify --repo-branch=stable -m vendor_qcom_sm8650.xml
&& repo sync -c -d --no-tags -j8
编译命令
&& ./build_vendor.sh variant=user export_para=RELEASE_SIGN:false export_para=NETWORK_TYPE:wifi export_para=TRANSLATOR32:true
推送
git push origin HEAD:refs/for/honor_u_debug_20240207_rod2_chipset
git 创建分支并切换
git checkout -b 分支名
配置计算云:
https://w3.hihonor/weshare/community/#/blog-detail?blogId=1892fcac479f53c16e6c98a4ac0991d9
https://w3.hihonor/weshare/community/#/blog-detail?blogId=656211969720320000
TicketNo:AR102IKIT
Description::give product, ROD2 LCD vtc hor line
Team:OS_LCD
Feature or Bugfix:Feature
Binary Source:No
PrivateCode(Yes/No):No
成功绑定屏:
Line 3051: 03-27 16:37:56.904 <6>[ 8.557763][ T989] [2024:03:27 08:37:43](7)[989:modprobe][drm:dsi_display_bind [msm_drm]] [msm-dsi-info]: Successfully bind display panel 'e68b624fc2ce959f '
打开串口工具,连接 type c 线,选择 BDAdapter 的 COM 口
diag 指令灭屏:
1、发送指令AT^DEVTEST=LCDCURR,close,null,null关闭LCD 勾选 加回车换行 波特率 : 115200
4B C9 D6 EE 00 00 00 00 0D 00 00 00 00 00 00 00 00 05 00 00 E9 92 7E ,快速灭屏,返回值(4B C9 D6 EE 00 00 00 00 0D 00 00 00 00 00 00 00 00 05 00 00 E9 92 7E )
勾选 HEX 显示,HEX 发送,加回车换行
安卓 log 休眠唤醒关键字
adb shell "logcat |grep -Ei 'Waking up from Asleep|Going to sleep due to|setPowerMode to|setting power mode|InputReader: powerKeyCount'"
adb shell "logcat |grep -Ei 'Waking up from Asleep|Going to sleep due to|setPowerMode to|setting power mode|InputReader: powerKeyCount|surfaceflinger'"
设亮度关键字
setDisplayBrightness|set brightness
adb shell "logcat |grep -Ei 'Waking up from Asleep|Going to sleep due to|setPowerMode to|setting power mode|InputReader: powerKeyCount|setDisplayBrightness|set brightness'"
解析code:
行 3739: 07-22 23:56:01.139 <6>[ 5.576941][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:6, name:[qcom,mdss-dsi-panel-lcd-check-reg-commands], length:8, pkt-count=1
行 3740: 07-22 23:56:01.139 <6>[ 5.576966][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:19, name:[qcom,mdss-dsi-oeminfo-read-commands], length:115, pkt-count=10
行 3741: 07-22 23:56:01.139 <6>[ 5.576976][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:23, name:[qcom,mdss-dsi-mipi-error-check-command], length:23, pkt-count=2
行 3742: 07-22 23:56:01.139 <6>[ 5.576990][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:31, name:[qcom,mdss-dsi-dsi-bl-reg-commands], length:9, pkt-count=1
行 3743: 07-22 23:56:01.139 <6>[ 5.577033][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:65, name:[qcom,mdss-dsi-apl-bl-mode-on-command], length:16, pkt-count=1
行 3744: 07-22 23:56:01.139 <6>[ 5.577037][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:66, name:[qcom,mdss-dsi-apl-bl-mode-off-command], length:16, pkt-count=1
行 3745: 07-22 23:56:01.139 <6>[ 5.577041][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:67, name:[qcom,mdss-dsi-lcd-pcd-check-open-commands], length:0, pkt-count=0
行 3746: 07-22 23:56:01.139 <6>[ 5.577045][ T919] [2024:07:22 15:55:51](7)[9
749: 07-22 23:56:01.139 <6>[ 5.577058][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:71, name:[qcom,mdss-dsi-hor-line-test-commands], length:352, pkt-count=22
行 3750: 07-22 23:56:01.139 <6>[ 5.577071][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:72, name:[qcom,mdss-dsi-lvd-enter-commands], length:0, pkt-count=0
行 3751: 07-22 23:56:01.139 <6>[ 5.577075][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:73, name:[qcom,mdss-dsi-lvd-read-commands], length:23, pkt-count=2
行 3752: 07-22 23:56:01.139 <6>[ 5.577081][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:74, name:[qcom,mdss-dsi-panel-checksum-enable-commands], length:0, pkt-count=0
行 3753: 07-22 23:56:01.139 <6>[ 5.577085][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:75, name:[qcom,mdss-dsi-panel-checksum-disable-commands], length:0, pkt-count=0
行 3754: 07-22 23:56:01.139 <6>[ 5.577089][ T919] [2024:07:22 15:55:51](7)[919:modprobe][drm] [lcdkit /I]: type:76, name:[qcom,mdss-dsi-panel-checksum-commands], length:108, pkt-count=9
亮屏:
06-18 11:31:03.092 2625 3012 I InputReader: powerKeyCount == 1
06-18 11:31:03.118 2625 3012 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)...
06-18 11:31:03.198 1693 1852 I SurfaceFlinger: setPowerMode to 2 from pid=2625, uid=1000
06-18 11:31:03.746 1693 1693 I SurfaceFlinger: Finished setting power mode 2 on display 4630947251269534339
[64983.186211] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm:dsi_display_set_mode [msm_drm]] [msm-dsi-info]: mdp_transfer_time=6388, hactive=3000, vactive=1920, fps=60, clk_rate=910000000
[64983.187283] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-0: IRQ 318 registered
[64983.188215] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-1: IRQ 319 registered
[64983.259684] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm] [lcdkit /I]: panel power on step
[64983.259700] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm] [lcdkit /I]: panel name: e68b624fc2ce959f
[64983.259822] [2024:06:18 11:31:02](6)[979:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
[64983.259883] [2024:06:18 11:31:02](1)[1085:crtc_commit:169][drm] [lcdkit /I]: single panel
[64983.264806] [2024:06:18 11:31:02](0)[1085:crtc_commit:169][drm] [lcdkit /I]: panel init mipi lp step
[64983.264836] [2024:06:18 11:31:02](0)[1085:crtc_commit:169][drm] [lcdkit /I]: single panel
[64983.264847] [2024:06:18 11:31:02](0)[1085:crtc_commit:169][drm] [lcdkit /I]: type = 1, count = 135, state = 0
[64983.268523] [2024:06:18 11:31:02](2)[979:ts_thread:0][drm] [lcdkit /I]: type:2
[64983.329715] [2024:06:18 11:31:02](2)[979:ts_thread:0][drm] [lcdkit /I]: type:3
[64983.707184] [2024:06:18 11:31:03](1)[1085:crtc_commit:169][drm:dsi_panel_enable [msm_drm]] [msm-dsi-info]: unsupport dbn feature
[64983.708759] [2024:06:18 11:31:03](1)[1085:crtc_commit:169][drm:lcdkit_tx_cmd_set [msm_drm]] *ERROR* [lcdkit /E]: error info:count == 0
[64983.710087] [2024:06:18 11:31:03](1)[1085:crtc_commit:169][drm] [lcdkit /I]: No commands to be sent for state:51
[64983.710134] [2024:06:18 11:31:03](1)[1085:crtc_commit:169][drm] [lcdkit /I]: elvdd_gpio get name failed
[64983.710153] [2024:06:18 11:31:03](1)[1085:crtc_commit:169][drm] [lcdkit /I]: type = 19, count = 1, state = 0
[64983.711002] [2024:06:18 11:31:03](0)[1085:crtc_commit:169][drm] [lcdkit /I]: panel init mipi hs step
[64983.722719] [2024:06:18 11:31:03](0)[1085:crtc_commit:169][drm] [lcdkit /I]: backlight level = 0
[64983.789400] [2024:06:18 11:31:03](5)[1873:binder:1655_2][drm] [lcdkit /I]: screen on, backlight level = 2194
[64983.789438] [2024:06:18 11:31:03](5)[1873:binder:1655_2][drm] [lcdkit /I]: backlight level = 2194
[64983.818574] [2024:06:18 11:31:03](2)[2682:JankManager][drm] [lcdkit /I]: current_fps:60;default_fps:60;support_fps_list:60,144,120;current_index:0;max_fps:144
切帧率:
[18470.932448] [2024:05:14 16:05:53](4)[1102:crtc_commit:169][drm:dsi_display_set_mode [msm_drm]] [msm-dsi-info]: mdp_transfer_time=6388, hactive=3000, vactive=1920, fps=60, clk_rate=910000000
[18470.932826] [2024:05:14 16:05:53](4)[1102:crtc_commit:169][drm] [lcdkit /I]: type = 21, count = 2, state = 0
[18470.935482] [2024:05:14 16:05:53](2)[1102:crtc_commit:169][drm] [lcdkit /I]: panel
tive=3000, vactive=1920, fps=144, clk_rate=910000000
[18479.611668] [2024:05:14 16:06:02](2)[1102:crtc_commit:169][drm] [lcdkit /I]: type = 21, count = 2, state = 0
[18479.624062] [2024:05:14 16:06:02](0)[1102:crtc_commit:169][drm] [lcdkit /I]: panel init mipi hs step
[18480.864752] [2024:05:14 16:06:03](0)[15934:kworker/u16:3](virq:irq_count)- GICv3:IPI(1):44730275 GICv3:arch_timer(11):21162799 GICv3:IPI(6):16628414 GICv3:IPI(2):3507668 GICv3:dwc3(309):2324495 GICv3:apps_rsc-drv-2(35):2016856 GICv3:msm_drm(317):1363548 GICv3:ipcc_0(19):661119 ipcc:glink-native-adsp(414):660394 GICv3:hfi(313):610373
灭屏:
06-18 11:31:07.035 2625 3012 I InputReader: powerKeyCount == 1
06-18 11:31:07.256 2625 2789 I PowerManagerService: Going to sleep due to power_button (uid 1000, screenOffTimeout=30000, activityTimeoutWM=10000, maxDimRatio=0.20000005, maxDimDur=7000)...
06-18 11:31:07.506 1693 1852 I SurfaceFlinger: setPowerMode to 0 from pid=2625, uid=1000
06-18 11:31:07.698 1693 1693 I SurfaceFlinger: Finished setting power mode 0 on display 4630947251269534339
[64984.959616] [2024:06:18 11:31:04](0)[2682:JankManager][drm] [lcdkit /I]: current_fps:60;default_fps:60;support_fps_list:60,144,120;current_index:0;max_fps:144
[64987.481448] [2024:06:18 11:31:06](2)[1873:binder:1655_2][drm] [lcdkit /I]: screen off, backlight level = 0
[64987.481490] [2024:06:18 11:31:06](2)[1873:binder:1655_2][drm] [lcdkit /I]: backlight level = 0
[64987.487761] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: backlight level = 0
[64987.487991] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: panel off mipi hs step
[64987.487998] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: type = 23
[64987.488304] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: h-bit read_val[0]:0x0, expect_val[0]:0x0.
[64987.488311] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: l-bit read_val[1]:0x0, expect_val[1]:0x0.
[64987.488316] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: h-bit read_val[2]:0x0, expect_val[2]:0x0.
[64987.488320] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: l-bit read_val[3]:0x0, expect_val[3]:0x0.
[64987.488324] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: [e68b624fc2ce959f] mipi error check is OK!
[64987.488358] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: single panel
[64987.488363] [2024:06:18 11:31:06](3)[1085:crtc_commit:169][drm] [lcdkit /I]: type = 6, count = 7, state = 0
[64987.642567] [2024:06:18 11:31:06](0)[979:ts_thread:0][drm] [lcdkit /I]: type:0
[64987.642693] [2024:06:18 11:31:06](0)[979:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
[64987.651118] [2024:06:18 11:31:06](1)[1085:crtc_commit:169][drm] [lcdkit /I]: panel off mipi lp step
[64987.672024] [2024:06:18 11:31:06](0)[1085:crtc_commit:169][drm] [lcdkit /I]: panel off power off step
[64987.672145] [2024:06:18 11:31:06](0)[1085:crtc_commit:169][drm] [lcdkit /I]: single panel
[64987.672197] [2024:06:18 11:31:06](0)[1085:crtc_commit:169][drm] [lcdkit /I]: single panel
刚开始启动读 sn:
D:\MYFILE>adb shell "dmesg -w | grep drm"
[ 7.282132] [2024:06:14 00:10:29](7)[958:modprobe]msmdrm_smmu soc:qcom,smmu_sde_unsec_cb: Adding to iommu group 45
[ 7.282530] [2024:06:14 00:10:29](5)[958:modprobe][drm] probing device qcom,smmu_sde_unsec
[ 7.282536] [2024:06:14 00:10:29](5)[958:modprobe][drm] Created domain mdp_ns, secure=0
[ 7.282754] [2024:06:14 00:10:29](5)[958:modprobe]msmdrm_smmu soc:qcom,smmu_sde_sec_cb: Adding to iommu group 46
[ 7.283283] [2024:06:14 00:10:29](7)[958:modprobe][drm] probing device qcom,smmu_sde_sec
[ 7.283287] [2024:06:14 00:10:29](7)[958:modprobe][drm] Created domain mdp_s, secure=1
[ 7.286001] [2024:06:14 00:10:29](7)[958:modprobe][drm:sde_dbg_init:2681] evtlog_status: enable:11, panic:1, dump:2
[ 7.288996] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_pll_init [msm_drm]] [msm-dsi-info]: DSI_PLL_0: DSI pll label = dsi_pll_4nm
[ 7.289372] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_pll_init [msm_drm]] [msm-dsi-info]: DSI_PLL_0: PLL SSC enabled
[ 7.290313] [2024:06:14 00:10:29](5)[958:modprobe][drm:dsi_pll_clock_register_4nm [msm_drm]] [msm-dsi-info]: DSI_PLL_0: Registered clocks successfully
[ 7.290753] [2024:06:14 00:10:29](5)[958:modprobe][drm:dsi_phy_driver_probe [msm_drm]] [msm-dsi-info]: DSI_0: Probe successful
[ 7.291698] [2024:06:14 00:10:29](5)[958:modprobe][drm
15] [2024:06:14 00:10:29](5)[958:modprobe][drm:dsi_ctrl_dev_probe [msm_drm]] [msm-dsi-info]: dsi-ctrl-0: Probe successful
[ 7.296416] [2024:06:14 00:10:29](5)[958:modprobe][drm:dsi_ctrl_dev_probe [msm_drm]] [msm-dsi-info]: dsi-ctrl-1: Probe successful
[ 7.299175] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_parse_bl_config [msm_drm]] [msm-dsi-info]: [e68b624fc2ce959f] bl_max_real_level_enable is enable
[ 7.310345] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_display_dev_probe [msm_drm]] [msm-dsi-info]: secondary default panel not found
[ 7.311322] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: qcom,support-cmd-sequence-check-enabled : 0
[ 7.311326] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_parse_lhbm_gray_setting [msm_drm]] *ERROR* [lcdkit /E]: qcom,mdss-dsi-lhbm-gray-settings node is not defined
[ 7.311581] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: parse lhbm gray settings failed
[ 7.311834] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:6, name:[qcom,mdss-dsi-panel-lcd-check-reg-commands], length:8, pkt-count=1
[ 7.311856] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:19, name:[qcom,mdss-dsi-oeminfo-read-commands], length:115, pkt-count=10
[ 7.311867] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:23, name:[qcom,mdss-dsi-mipi-error-check-command], length:23, pkt-count=2
[ 7.311882] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:31, name:[qcom,mdss-dsi-dsi-bl-reg-commands], length:9, pkt-count=1
[ 7.311930] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:67, name:[qcom,mdss-dsi-lcd-pcd-check-open-commands], length:0, pkt-count=0
[ 7.311933] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:68, name:[qcom,mdss-dsi-lcd-pcd-check-reg-commands], length:23, pkt-count=2
[ 7.311937] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:69, name:[qcom,mdss-dsi-lcd-pcd-check-close-commands], length:0, pkt-count=0
[ 7.311941] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:70, name:[qcom,mdss-dsi-vtc-line-test-commands], length:64, pkt-count=4
[ 7.311953] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:71, name:[qcom,mdss-dsi-hor-line-test-commands], length:352, pkt-count=22
[ 7.311958] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:72, name:[qcom,mdss-dsi-lvd-enter-commands], length:0, pkt-count=0
[ 7.311962] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:73, name:[qcom,mdss-dsi-lvd-read-commands], length:23, pkt-count=2
[ 7.311965] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:74, name:[qcom,mdss-dsi-panel-checksum-enable-commands], length:0, pkt-count=0
[ 7.311969] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:75, name:[qcom,mdss-dsi-panel-checksum-disable-commands], length:0, pkt-count=0
[ 7.311973] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: type:76, name:[qcom,mdss-dsi-panel-checksum-commands], length:108, pkt-count=9
[ 7.311982] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: failed to read: qcom,mdss-dsi-panel-oem-2d-barcode-offset
[ 7.312229] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: not support read panel batch info!
[ 7.312470] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: bl_offset: 0
[ 7.312713] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: not support dbn feature!
[ 7.312955] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_parse_dynamic_demura_setting [msm_drm]] *ERROR* [lcdkit /E]: qcom,mdss-dsi-dynamic-demura-settings node is not defined
[ 7.313186] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: parse dynamic demura settings failed
[ 7.313416] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_dsm_register [msm_drm]] *ERROR* [lcdkit /E]: lcd_module_name not exist
[ 7.313647] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_dsm_register [msm_drm]] *ERROR* [lcdkit /E]: lcd_ic_name not exist
[ 7.314071] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: create fb sysfs path!
[ 7.314196] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: create fb0 sysfs success!
[ 7.314198] [2024:06:14 00:10:29](7)[958:modprobe][drm:lcdkit_init [msm_drm]] *
dprobe][drm:dsi_display_bind [msm_drm]] [msm-dsi-info]: Successfully bind display panel 'e68b624fc2ce959f '
[ 7.314933] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound soc:qcom,dsi-display-primary (ops dsi_display_comp_ops [msm_drm])
[ 7.315159] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound soc:qcom,dsi-display-secondary (ops dsi_display_comp_ops [msm_drm])
[ 7.315385] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound soc:qcom,smmu_sde_unsec_cb (ops msm_smmu_comp_ops [msm_drm])
[ 7.315610] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound soc:qcom,wb-display@1 (ops sde_wb_comp_ops [msm_drm])
[ 7.315835] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound soc:qcom,wb-display@2 (ops sde_wb_comp_ops [msm_drm])
[ 7.316062] [2024:06:14 00:10:29](7)[958:modprobe]msm_drm ae00000.qcom,mdss_mdp: bound af20000.qcom,sde_rscc (ops sde_rsc_comp_ops [msm_drm])
[ 7.316305] [2024:06:14 00:10:29](7)[958:modprobe][drm] mapped mdp address space @ffffffc019400000
[ 7.317563] [2024:06:14 00:10:29](7)[958:modprobe][drm:_sde_kms_hw_init_blocks:5020] sde hardware revision:0xa0010000
[ 7.328623] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] *ERROR* [msm-dsi-error]: qcom,mdss-dsi-panel-real-framerate is not defined, rc=-22
[ 7.328957] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: failed to parse wakeup speedy delay values, rc=-22
[ 7.328972] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] [msm-dsi-info]: default topology: lm: 2 comp_enc:2 intf: 2
[ 7.329288] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] *ERROR* [msm-dsi-error]: qcom,mdss-dsi-panel-real-framerate is not defined, rc=-22
[ 7.329534] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: failed to parse wakeup speedy delay values, rc=-22
[ 7.329544] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] [msm-dsi-info]: default topology: lm: 2 comp_enc:2 intf: 2
[ 7.329827] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] *ERROR* [msm-dsi-error]: qcom,mdss-dsi-panel-real-framerate is not defined, rc=-22
[ 7.330108] [2024:06:14 00:10:29](7)[958:modprobe][drm] [lcdkit /I]: failed to parse wakeup speedy delay values, rc=-22
[ 7.330120] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_panel_get_mode [msm_drm]] [msm-dsi-info]: default topology: lm: 2 comp_enc:2 intf: 2
[ 7.330387] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_connector_get_modes [msm_drm]] [msm-dsi-info]: panel-name:e68b624fc2ce959f.edid-name:e68b624fc2ce959f.
[ 7.336511] [2024:06:14 00:10:29](7)[958:modprobe][drm] Initialized msm_drm 1.4.0 20130625 for ae00000.qcom,mdss_mdp on minor 0
[ 7.336515] [2024:06:14 00:10:29](7)[958:modprobe][drm] cont_splash enabled in 1 of 1 display(s)
[ 7.336687] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-0: IRQ 350 registered
[ 7.336990] [2024:06:14 00:10:29](7)[958:modprobe][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-1: IRQ 351 registered
[ 12.517853] [2024:06:14 00:10:34](6)[1449:init.qcom.early][drm:dsi_connector_get_modes [msm_drm]] [msm-dsi-info]: panel-name:e68b624fc2ce959f.edid-name:e68b624fc2ce959f.
[ 13.034711] [2024:06:14 00:10:34](4)[1:init]init 13: starting service 'vendor.drm-clearkey-service'...
[ 13.038326] [2024:06:14 00:10:34](4)[1:init]init 13: ... started service 'vendor.drm-clearkey-service' has pid 1528
[ 13.143625] [2024:06:14 00:10:34](6)[1121:servicemanager]servicemanager: Found android.hardware.drm.IDrmFactory/clearkey in device VINTF manifest.
[ 13.809903] [2024:06:14 00:10:35](3)[1682:vendor.qti.hard][drm:dsi_connector_get_modes [msm_drm]] [msm-dsi-info]: panel-name:e68b624fc2ce959f.edid-name:e68b624fc2ce959f.
[ 13.818163] [2024:06:14 00:10:35](3)[1682:vendor.qti.hard][drm:dsi_connector_get_modes [msm_drm]] [msm-dsi-info]: panel-name:e68b624fc2ce959f.edid-name:e68b624fc2ce959f.
[ 13.820881] [2024:06:14 00:10:35](3)[1682:vendor.qti.hard][drm:dsi_connector_get_modes [msm_drm]] [msm-dsi-info]: panel-name:e68b624fc2ce959f.edid-name:e68b624fc2ce959f.
[ 14.495043] [2024:06:14 00:10:36](7)[1:init]init 20: processing action (drm.service.enabled=true) from (/system/etc/init/drmserver.rc:8)
[ 14.495194] [2024:06:14 00:10:36](7)[1:init]init 20: starting se
3)[1619:vendor.honor.ha][drm] [lcdkit /I]: current_fps:60;default_fps:60;support_fps_list:60,144,120;current_index:0;max_fps:144
[ 17.349938] [2024:06:14 00:10:39](4)[1898:binder:1682_3][drm] crtc_commit[0]:1105, hwdisplay:0
[ 17.353815] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm:dsi_display_set_mode [msm_drm]] [msm-dsi-info]: mdp_transfer_time=6388, hactive=3000, vactive=1920, fps=60, clk_rate=910000000
[ 17.354433] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm] [lcdkit /I]: type = 19
[ 17.355747] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm] [lcdkit /I]: sn: 5099HXFA120H02141AV0
[ 17.355751] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm] [lcdkit /I]: type = 19
[ 17.357080] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm] [lcdkit /I]: barcode_data: 5099HXFA120H02141AV0
[ 17.357370] [2024:06:14 00:10:39](6)[1105:crtc_commit:169][drm] [lcdkit /I]: panel init mipi hs step
[ 22.133417] [2024:06:14 08:10:43](1)[1896:binder:1682_2][drm] [lcdkit /I]: screen on, backlight level = 4013
[ 22.133481] [2024:06:14 08:10:43](1)[1896:binder:1682_2][drm] [lcdkit /I]: backlight level = 4013
[ 31.593389] [2024:06:14 08:10:53](0)[2719:JankManager][drm] [lcdkit /I]: current_fps:60;default_fps:60;support_fps_list:60,144,120;current_index:0;max_fps:144
重启打印:
[ 7828.555390] [2024:06:14 20:01:39](7)[1:init]init 13: Sending signal 15 to service 'vendor.drm-clearkey-service' (pid 1549) process group...
[ 7828.735514] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: screen off, backlight level = 0
[ 7828.735561] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: backlight level = 0
[ 7828.735835] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: panel off mipi hs step
[ 7828.735846] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: type = 23
[ 7828.736175] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: h-bit read_val[0]:0x0, expect_val[0]:0x0.
[ 7828.736186] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: l-bit read_val[1]:0x0, expect_val[1]:0x0.
[ 7828.736193] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: h-bit read_val[2]:0x0, expect_val[2]:0x0.
[ 7828.736200] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: l-bit read_val[3]:0x0, expect_val[3]:0x0.
[ 7828.736207] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: [e68b624fc2ce959f] mipi error check is OK!
[ 7828.736256] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: single panel
[ 7828.736264] [2024:06:14 20:01:39](0)[1109:crtc_commit:169][drm] [lcdkit /I]: type = 6, count = 7, state = 0
[ 7828.890457] [2024:06:14 20:01:40](2)[1033:ts_thread:0][drm] [lcdkit /I]: type:0
[ 7828.890532] [2024:06:14 20:01:40](2)[1033:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
[ 7828.897909] [2024:06:14 20:01:40](2)[1109:crtc_commit:169][drm] [lcdkit /I]: panel off mipi lp step
[ 7828.918197] [2024:06:14 20:01:40](0)[1109:crtc_commit:169][drm] [lcdkit /I]: panel off power off step
[ 7828.918242] [2024:06:14 20:01:40](0)[1109:crtc_commit:169][drm] [lcdkit /I]: single panel
[ 7828.918262] [2024:06:14 20:01:40](0)[1109:crtc_commit:169][drm] [lcdkit /I]: single panel
[ 7828.961821] [2024:06:14 20:01:40](5)[1:init]init 13: Service 'vendor.drm-clearkey-service' (pid 1549) received signal 15
[ 7828.961833] [2024:06:14 20:01:40](5)[1:init]init 13: Sending signal 9 to service 'vendor.drm-clearkey-service' (pid 1549) process group...
识别不到屏:
C:\Users\dj0011744>adb shell "cat /dev/kmsg | grep drm"
6,18939,58789036,-,caller=T1980;[2024:03:12 11:22:02](4)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 1364
3,19935,59999607,-,caller=T1980;[2024:03:12 11:22:04](4)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,19942,60004948,-,caller=T1980;[2024:03:12 11:22:04](4)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 1347
3,20878,61215604,-,caller=T1980;[2024:03:12 11:22:05](4)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,20885,61220991,-,caller=T1980;[2024:03:12 11:22:05](4)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 1330
3,21177,62431619,-,caller=T1980;[2024:03:12 11:22:06](4)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,21207,62436988,-,call
0;[2024:03:12 11:22:41](6)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 798
3,24665,97695784,-,caller=T1980;[2024:03:12 11:22:42](1)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24666,97701667,-,caller=T1980;[2024:03:12 11:22:42](3)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 781
3,24673,98915606,-,caller=T1980;[2024:03:12 11:22:43](3)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24674,98920921,-,caller=T1980;[2024:03:12 11:22:43](3)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 764
3,24676,100127642,-,caller=T1980;[2024:03:12 11:22:44](3)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24677,100133556,-,caller=T1980;[2024:03:12 11:22:44](3)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 747
3,24693,101343748,-,caller=T1980;[2024:03:12 11:22:45](1)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24694,101349853,-,caller=T1980;[2024:03:12 11:22:45](1)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 730
3,24713,102559672,-,caller=T1980;[2024:03:12 11:22:47](1)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24714,102565849,-,caller=T1980;[2024:03:12 11:22:47](1)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 712
3,24720,103779609,-,caller=T1980;[2024:03:12 11:22:48](1)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24721,103785715,-,caller=T1980;[2024:03:12 11:22:48](1)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 695
3,24722,104991703,-,caller=T1980;[2024:03:12 11:22:49](6)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24723,104997205,-,caller=T1980;[2024:03:12 11:22:49](6)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 678
3,24728,106208741,-,caller=T1980;[2024:03:12 11:22:50](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24729,106214886,-,caller=T1980;[2024:03:12 11:22:50](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 661
3,24737,107423748,-,caller=T1980;[2024:03:12 11:22:52](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24738,107429765,-,caller=T1980;[2024:03:12 11:22:52](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 644
3,24739,108639729,-,caller=T1980;[2024:03:12 11:22:53](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24740,108645948,-,caller=T1980;[2024:03:12 11:22:53](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 626
3,24744,109855701,-,caller=T1980;[2024:03:12 11:22:54](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24745,109861898,-,caller=T1980;[2024:03:12 11:22:54](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 609
3,24756,111071679,-,caller=T1980;[2024:03:12 11:22:55](2)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24758,111077756,-,caller=T1980;[2024:03:12 11:22:55](2)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 592
3,24761,112287802,-,caller=T1980;[2024:03:12 11:22:56](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24762,112293967,-,caller=T1980;[2024:03:12 11:22:56](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 575
3,24774,113503828,-,caller=T1980;[2024:03:12 11:22:58](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24775,113509880,-,caller=T1980;[2024:03:12 11:22:58](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 558
3,24783,114719681,-,caller=T1980;[2024:03:12 11:22:59](1)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transf
:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24886,140969982,-,caller=T1980;[2024:03:12 11:23:25](2)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 448
3,24887,142175746,-,caller=T1980;[2024:03:12 11:23:26](2)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24888,142181910,-,caller=T1980;[2024:03:12 11:23:26](2)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 407
3,24913,143391782,-,caller=T1980;[2024:03:12 11:23:27](0)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24914,143397928,-,caller=T1980;[2024:03:12 11:23:27](0)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 367
3,24922,144607721,-,caller=T1980;[2024:03:12 11:23:29](3)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,24932,144613056,-,caller=T1980;[2024:03:12 11:23:29](3)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 331
3,26024,145823800,-,caller=T1980;[2024:03:12 11:23:30](4)[1980:binder:1793_2][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,26028,145829885,-,caller=T1980;[2024:03:12 11:23:30](4)[1980:binder:1793_2][drm] [lcdkit /I]: backlight level = 298
3,26945,147043734,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm:dsi_ctrl_dma_cmd_wait_for_done [msm_drm]] *ERROR* [msm-dsi-error]: dsi-ctrl-0: Command transfer failed
6,26946,147049888,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: screen off, backlight level = 0
6,26947,147049930,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: backlight level = 0
6,26948,147055801,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: panel off mipi hs step
6,26949,147055811,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: not support mipi error check
6,26951,147055863,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: single panel
6,26957,147056600,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: panel off mipi lp step
6,26963,147071942,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: panel off power off step
6,26965,147072023,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: single panel
6,26967,147072043,-,caller=T1110;[2024:03:12 11:23:31](1)[1110:crtc_commit:167][drm] [lcdkit /I]: single panel
6,27006,147211742,-,caller=T1123;[2024:03:12 11:23:31](5)[1123:ts_thread:0][drm] [lcdkit /I]: type:0
6,27008,147211765,-,caller=T1123;[2024:03:12 11:23:31](5)[1123:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
6,27083,153984713,-,caller=T1110;[2024:03:12 11:23:37](5)[1110:crtc_commit:167][drm:dsi_display_set_mode [msm_drm]] [msm-dsi-info]: mdp_transfer_time=0, hactive=3000, vactive=1920, fps=60, clk_rate=0
6,27084,153985322,-,caller=T1110;[2024:03:12 11:23:37](5)[1110:crtc_commit:167][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-0: IRQ 318 registered
6,27085,153985606,-,caller=T1110;[2024:03:12 11:23:37](5)[1110:crtc_commit:167][drm:dsi_ctrl_isr_configure [msm_drm]] [msm-dsi-info]: dsi-ctrl-1: IRQ 319 registered
6,27101,154056507,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm] [lcdkit /I]: panel power on step
6,27102,154056513,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm] [lcdkit /I]: panel name: default panel vid
6,27106,154056623,-,caller=T1123;[2024:03:12 11:23:37](7)[1123:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
6,27110,154056669,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm] [lcdkit /I]: single panel
6,27111,154062779,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm] [lcdkit /I]: panel init mipi lp step
6,27113,154062795,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm] [lcdkit /I]: single panel
6,27114,154062802,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm:dsi_panel_enable [msm_drm]] [msm-dsi-info]: unsupport dbn feature
3,27115,154063058,-,caller=T1110;[2024:03:12 11:23:37](3)[1110:crtc_commit:167][drm:lcdkit_tx_cmd_set [msm_drm]] *ERROR* [lcdkit /E]: error info:count == 0
6,27116,154063297,-,caller=T1110;[2024:03:12 11:23:37]
ller=T1123;[2024:03:12 11:23:48](5)[1123:ts_thread:0][drm] [lcdkit /I]: pt_flag = 0
6,27336,193946710,-,caller=T2895;[2024:03:12 11:24:18](2)[2895:JankManager][drm] [lcdkit /I]:
6,27341,194104184,-,caller=T2895;[2024:03:12 11:24:18](2)[2895:JankManager][drm] [lcdkit /I]:
6,27343,194283859,-,caller=T2895;[2024:03:12 11:24:18](2)[2895:JankManager][drm] [lcdkit /I]:
6,27352,194503054,-,caller=T2895;[2024:03:12 11:24:18](0)[2895:JankManager][drm] [lcdkit /I]:
6,27356,194981078,-,caller=T2895;[2024:03:12 11:24:19](2)[2895:JankManager][drm] [lcdkit /I]:
14,27604,196637026,-,caller=T1;[2024:03:12 11:24:20](6)[1:init]init 4: Sending signal 15 to service 'vendor.drm-clearkey-service' (pid 1609) process group...
14,27852,197386794,-,caller=T1;[2024:03:12 11:24:22](7)[1:init]init 4: Service 'vendor.drm-clearkey-service' (pid 1609) received signal 15
14,27853,197386798,-,caller=T1;[2024:03:12 11:24:22](7)[1:init]init 4: Sending signal 9 to service 'vendor.drm-clearkey-service' (pid 1609) process group...
qcom,mdss-dsi-oeminfo-read-commands = [
29 01 00 40 00 00 05 90 68 00 86 E6
29写指令 05是5个Byte 90 是写的指令 e6 86 00 68 是tcon寄存器
14 01 00 00 00 00 04 91 00 00 00
14读指令 04是4Byte参数 91读指令
for (i = 0; i < cnt; i++) {
buf = (char *)(cmd_desc[i].msg.tx_buf);
LCD_DEBUG("cmds[%d]->msg.type = 0x%x\n", i,
cmd_desc[i].msg.type);
LCD_DEBUG("cmds[%d]->post_wait_ms = 0x%x\n", i,
cmd_desc[i].post_wait_ms);
LCD_DEBUG("cmds[%d]->last_command = 0x%x\n", i,
cmd_desc[i].last_command);
LCD_DEBUG("cmds[%d]->msg.channel = 0x%x\n", i,
cmd_desc[i].msg.channel);
LCD_DEBUG("cmds[%d]->msg.flags = 0x%x\n", i,
cmd_desc[i].msg.flags);
LCD_DEBUG("cmds[%d]->msg.tx_len = 0x%x\n", i,
cmd_desc[i].msg.tx_len);
LCD_DEBUG("payload:\n");
for (j = 0; j < cmd_desc[i].msg.tx_len; j++)
LCD_DEBUG("0x%x", buf[j]);
LCD_DEBUG("\n");
}
}
解析 /* parse read bl reg */
pinfo->bl_reg.read_reg_enabled = utils->read_bool(
utils->data, "qcom,mdss-dsi-read-bl-reg-enabled");
if (pinfo->bl_reg.read_reg_enabled)
lcdkit_parse_bl_reg_info(pinfo, utils);
}
在 lcdkit_init 中 调用 lcdkit_register_work_handler(panel);
lcdkit_register_work_handler 中 if (panel->pinfo->bl_reg.read_reg_enabled)
lcdkit_panel_register_backlight_check_handler(panel);
lcdkit_panel_register_backlight_check_handler 延时工作队列: INIT_DELAYED_WORK(&panel->pinfo->backlight_check.work,
lcdkit_panel_handle_backlight_check);
lcdkit_panel_handle_backlight_check 打印: LCD_INFO("cmd = 0x%x set backlight backlight = 0\n", bl_cmd);
常亮屏:
adb shell settings put system screen_off_timeout 60000000
adb shell svc power stayon true
adb shell su -c 'settings put system screen_off_timeout 2147483647'
进入 recovery
adb reboot recovery fastboot reboot recovery
进入 fastboot
adb reboot bootloader
配置 cp 侧代码
https://w3.hihonor/weshare/community/#/blog-detail?blogId=18616f38c6c6a6458786a3c4279ba4a7
编译报错:
吕万杰(00017803
https://w3.hihonor/weshare/community/#/blog-detail?blogId=1810884f9f020bda8343401469a9d80d
https://w3.hihonor/weshare/community/#/blog-detail?blogId=1819010883db1377254b2304bb28f0c0
手机进入工程模式的命令
*#*#2846579#*#*
"MMI 3
(LTE版本拨号盘输入暗码*#*#2847#*#*
WIFI版本计算器输入()()2847()())" 欢迎界面 NA
单项老化
adb shell setprop persist.sys.rt.para true
adb reboot
pause
停止取消单项老化:
adb remount
adb shell rm -fr data/data/com.hihonor.runningtestii/shared_prefs
adb reboot
pause
触发死机进dump:
echo c > /proc/sysrq-trigger
进入 dump 后,端口 900E ,打开 QPST 软件 , 然后会自动保存内容,查看保存位置 :
点 help - Open Log File Directory 即可打开,保存的内容是一个跟端口相关的文件夹
寻找每日构建用的 xml package_config - chipset_component_config - ap_build - manifest.xml 到时候一替换就可以拉代码
在 dtsi 里面故意加一个节点 时间戳 ,写一段话描述此 dtsi 验证什么内容,然后 adb shell 后
ls /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/of_node/qcom,mdss_dsi_260_a20_12p3_dphy_cmd 即可查看下面的节点:
ls ./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@ae00000/qcom,mdss_dsi_260_a20_12p3_dphy_cmd 也可 (内容一样)
./sys/firmware/devicetree/base/soc/qcom,mdss_mdp@ae00000/qcom,mdss_dsi_260_a20_12p3_dphy_cmd
dtsi 里的内容:
&mdss_mdp {
dsi_260_a20_12p3_dphy_cmd: qcom,mdss_dsi_260_a20_12p3_dphy_cmd {
HNROD2-Q:/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/of_node/qcom,mdss_dsi_260_a20_12p3_dphy_cmd # ls
name qcom,mdss-dsi-border-color qcom,mdss-dsi-lvd-read-commands qcom,mdss-dsi-panel-lcd-pcd_det_num
ss-dsi-display-timings qcom,mdss-dsi-panel-blackness-level qcom,mdss-dsi-panel-lvd-support qcom,mdss-dsi-te-dcs-command
qcom,dsi-fps-list qcom,mdss-dsi-dma-trigger qcom,mdss-dsi-panel-brightness-sync-te-enabled qcom,mdss-dsi-panel-name qcom,mdss-dsi-te-pin-select
qcom,dsi-fps-mmi-test-list qcom,mdss-dsi-dsi-bl-reg-commands qcom,mdss-dsi-panel-checksum-commands qcom,mdss-dsi-panel-oem-2d-barcode-enabled qcom,mdss-dsi-te-using-te-pin
qcom,dsi-fps-rt-test-list qcom,mdss-dsi-dsi-bl-reg-commands-state qcom,mdss-dsi-panel-checksum-disable-commands qcom,mdss-dsi-panel-oem-info-enabled qcom,mdss-dsi-traffic-mode
qcom,dsi-fps-tplcd-test-list qcom,mdss-dsi-hor-line-test-commands qcom,mdss-dsi-panel-checksum-enable-commands qcom,mdss-dsi-panel-oem-sn-enabled qcom,mdss-dsi-underflow-color
qcom,dsi-phy-num qcom,mdss-dsi-lane-0-state qcom,mdss-dsi-panel-checksum-size qcom,mdss-dsi-panel-peak-brightness qcom,mdss-dsi-virtual-channel-id
qcom,dsi-select-clocks qcom,mdss-dsi-lane-1-state qcom,mdss-dsi-panel-checksum-support qcom,mdss-dsi-panel-physical-type qcom,mdss-dsi-vtc-line-test-commands
qcom,graphics-cpuset-enabled qcom,mdss-dsi-lane-2-state qcom,mdss-dsi-panel-checksum-value qcom,mdss-dsi-panel-pt-reset-enabled qcom,mdss-dsi-wr-mem-continue
qcom,mdss-brightness-max-level qcom,mdss-dsi-lane-3-state qcom,mdss-dsi-panel-force-power-off qcom,mdss-dsi-panel-status-check-mode qcom,mdss-dsi-wr-mem-start
qcom,mdss-dsi-bl-inverted-dbv qcom,mdss-dsi-lane-map qcom,mdss-dsi-panel-force-power-time qcom,mdss-dsi-panel-status-command qcom,mdss-pan-physical-height-dimension
qcom,mdss-dsi-bl-max-level qcom,mdss-dsi-lcd-model qcom,mdss-dsi-panel-hbm-enabled qcom,mdss-dsi-panel-status-command-state qcom,mdss-pan-physical-width-dimension
qcom,mdss-dsi-bl-max-real-level qcom,mdss-dsi-lcd-pcd-check-close-commands qcom,mdss-dsi-panel-hdr-color-primaries qcom,mdss-dsi-panel-status-read-length qcom,panel-supply-entries
qcom,mdss-dsi-bl-max-real-level-enable qcom,mdss-dsi-lcd-pcd-check-open-commands qcom,mdss-dsi-panel-hdr-enabled qcom,mdss-dsi-panel-status-value qcom,platform-reset-gpio
qcom,mdss-dsi-bl-min-level qcom,mdss-dsi-lcd-pcd-check-reg-commands qcom,mdss-dsi-panel-lcd-check-pcd-expect_vals qcom,mdss-dsi-panel-type qcom,support-ltm-adjust-enabled
qcom,mdss-dsi-bl-pmic-control-type qcom,mdss-dsi-lvd-cust-mask qcom,mdss-dsi-panel-lcd-check-pcd-support qcom,mdss-dsi-pre-set-bl-commands qcom,ulps-enabled
qcom,mdss-dsi-bl-reg-count qcom,mdss-dsi-lvd-cust-mask-enabled qcom,mdss-dsi-panel-lcd-check-reg-commands qcom,mdss-dsi-pre-set-bl-commands-state
qcom,mdss-dsi-bllp-eof-power-mode qcom,mdss-dsi-lvd-enter-commands qcom,mdss-dsi-panel-lcd-check-reg-enabled qcom,mdss-dsi-pre-set-bl-enabled
qcom,mdss-dsi-bllp-power-mode qcom,mdss-dsi-lvd-expect-value qcom,mdss-dsi-panel-lcd-check-reg-expect_vals qcom,mdss-dsi-reset-pre-off-sleep
HNROD2-Q:/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/of_node/qcom,mdss_dsi_260_a20_12p3_dphy_cmd # ls | grep pt
qcom,mdss-dsi-panel-pt-reset-enabled
查看节点的值,确认版本
HNROD2-Q:/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/of_node/qcom,mdss_dsi_260_a20_12p3_dphy_cmd # od -t x1 qcom,mdss-dsi-bl-min-level
0000000 00 00 00 03
0000004
横竖线激发
40 - 47 行不需要
lcd_vtc lcd_gener
checksum 最好重启做,显示·不要开
checksum 的 log 关键字
LCD_INFO("checksum pic num:%d\n", pic_index);
if (read_value[0] == 0 && read_value[1
http://mgit-tm.ipd.hihonor/#/c/5621904/
ct01:http://mgit-tm.ipd.hihonor/#/c/5455305/
主干:http://mgit-tm.ipd.hihonor/#/c/5634873/
图片 push 到 storage/emulated/0/Pictures/Screenshots 目录,再重启,即可显示
@所有人 烧片分支已经拉出
AP代码:repo init -u http://mgit-tm.ipd.hihonor/platform/manifest.git -b honor_u_factory_MagicOS8.0.1_rod2_20240229 --no-repo --repo-branch=stable -m vendor_qcom_sm8650.xml
Modem代码:repo init -u http://mgit-tm.ipd.hihonor/platform/manifest.git -b honor_u_factory_MagicOS8.0.1_rod2_20240229 --no-repo --repo-branch=stable -m vendor_qcom_cp_sm8650.xml
LE代码:repo init -u http://mgit-tm.ipd.hihonor/platform/manifest.git -b honor_u_factory_MagicOS8.0.1_rod2_20240229 --no-repo --repo-branch=stable -m vendor_qcom_le_sm8650.xml
System代码:repo init -u http://mgit-tm.ipd.hihonor/platform/manifest.git -b honor_u_factory_MagicOS8.0.1_rod2_20240229 --no-repo --repo-branch=stable -m system_all.xml
tag版本
http://cloudartifact-sia.ipd.hihonor/artifactory/x-vmpplus-artifacts/vmp/Rolland2-W09B/BL253322584-ROD2-W09 8.0.1.5(SP99C00E1R98P2)/BiddingDoc
编译
ap:
./build_vendor.sh variant=eng versionmode=factory export_para=RELEASE_SIGN:false export_para=NETWORK_TYPE:wifi 2>&1 | tee build.log
modem:
./build.sh target=sm8635 versionmode=factory product=ROD2 parallel_module=mpss export_para=RELEASE_SIGN:true export_para=NETWORK_TYPE:wifi build all
repo start myjob .
C:\Users\dj0011744>adb shell cat sys/class/graphics/fb0/lcd_model
260_a20 12p3 3000 x 1920 project_HD119 ver_001
C:\Users\dj0011744>
pcd 检测 在 warming up 1 里打开 pcd error flag check
qcom,mdss-dsi-panel-real-framerate
lcdkit_parse_dynamic_demura_setting [msm_drm]] *ERROR* [lcdkit /E]: qcom,mdss-dsi-dynamic-demura-settings node is not defined
drm:lcdkit_init [msm_drm]] *ERROR* [lcdkit /E]: parse lhbm gray settings failed
not support mipi error check
完整启动log:
版权声明:本文标题:Lcd Debug 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727102487a1097904.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论