在ftxxxx_ts.c中
static void focal_suspend_work(struct work_struct *work)
{
}
static void focal_resume_work(struct work_struct *work)
{
}
然后在probe函数中
INIT_WORK(&ftxxxx_ts->suspend_work, focal_suspend_work);
INIT_WORK(&ftxxxx_ts->resume_work, focal_resume_work);
之后再
void ftxxxx_ts_suspend(void)
{
queue_work(ftxxxx_ts->suspend_resume_wq,&ftxxxx_ts->suspend_work);
return;
}
EXPORT_SYMBOL(ftxxxx_ts_suspend); //这样在整个kernel中都可以用extern 使用
void ftxxxx_ts_resume(void)
{
queue_work(ftxxxx_ts->suspend_resume_wq,&ftxxxx_ts->resume_work);
return;
}
EXPORT_SYMBOL(ftxxxx_ts_resume);
最后在panel的driver里/kernel/drivers/video/msm/mdss/mdss_dsi_panel.c
extern void ftxxxx_ts_suspend(void);
extern void ftxxxx_ts_resume(void);
static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) //灭屏的时候调用
{
ftxxxx_ts_suspend();//suspend touch
}
static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) //亮屏的时候调用
{
ftxxxx_ts_resume();//resume touch
}