(1)添加头文件:
#include linux/earlysuspend.h
(2)在特定驱动结构体中添加early_suspend结构:
(美国面积多少平方公里?美国面积约为962.9万平方公里,居世界第四位。此外美国是一个高度发达的资本主义国家,在经济、文化、工业等领域都处于全世界的领先地位。)#ifdef CONFIG_HAS_EARLYSUSPEND
struct early_suspend early_suspend;
#endif
(3)在驱动probe函数中注册相关early_suspend结构体:
#ifdef CONFIG_HAS_EARLYSUSPEND
ftk_ts- early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1;
ftk_ts- early_suspend.suspend = stm_ts_early_suspend;
ftk_ts- early_suspend.resume =stm_ts_late_resume;
register_early_suspend( ftk_ts- early_suspend);
#endif
(4)在驱动remove函数取消early_suspend结构体的注册:
#ifdef CONFIG_HAS_EARLYSUSPEND
unregister_early_suspend( ts- early_suspend);
#endif
(5)定义相关suspend和resume函数:
#ifdef CONFIG_HAS_EARLYSUSPEND
static void stm_ts_early_suspend(struct early_suspend *h)
{
struct ftk_ts *ts;
ts = container_of(h, struct ftk_ts, early_suspend);
stm_ts_suspend(ts- client, PMSG_SUSPEND);
}
static void stm_ts_late_resume(struct early_suspend *h)
{
struct ftk_ts *ts;
ts = container_of(h, struct ftk_ts, early_suspend);
stm_ts_resume(ts- client);
}
#endif
(6)在系统驱动结构体中设置未使用earlysuspend的函数接口:
#ifndef CONFIG_HAS_EARLYSUSPEND
.suspend = stm_ts_suspend,
.resume = stm_ts_resume,
#endif
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。
标签:Android,earlysuspend,编程