MSM8610:ESD CHECK & recovery

[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)


 

 


 

你可能感兴趣的:(MSM8610:ESD CHECK & recovery)