[1]Dsi_host_v2.c (kernel\drivers\video\msm\mdss):static int msm_dsi_bta_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
[2]Dsi_host_v2.c (kernel\drivers\video\msm\mdss):void msm_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl)
void msm_dsi_ctrl_init(struct mdss_dsi_ctrl_pdata *ctrl)
{
.......
ctrl->check_status = msm_dsi_bta_status_check;
}
[3]
Dsi_status_v2.c (kernel\drivers\video\msm\mdss):int __init mdss_dsi_status_init(void)
int __init mdss_dsi_status_init(void)
{
............
pstatus_data->fb_notifier.notifier_call = fb_event_callback;
rc = fb_register_client(&pstatus_data->fb_notifier);
..............
INIT_DELAYED_WORK(&pstatus_data->check_status, check_dsi_ctrl_status);
}
[4]fb_event_callback实现esd机制的睡眠唤醒
[5]Mdss_fb.c (kernel\drivers\video\msm\mdss):static int mdss_fb_blank_sub(int blank_mode, struct fb_info *info,
mdss_fb_blank_sub实现display显示系统的reset
这里尤其要注意的是:mdss_dsi_panel_reset只reset LCD,而不是reset显示系统。别混淆。reset显示系统是mdss_fb_blank_sub
[5]display HAL实现
Hwc.cpp (hardware\qcom\display\libhwcomposer):static void reset_panel(struct hwc_composer_device_1* dev);
void reset_panel_esd_check(struct hwc_context_t* ctx)