当前位置:神舟问>生活百科>Android驱动开发之earlysuspend睡眠模式编程总结

Android驱动开发之earlysuspend睡眠模式编程总结

2023-06-30 07:38:53 编辑:join 浏览量:531

Android驱动开发之earlysuspend睡眠模式编程总结

(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,编程

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/life/115285.html
热门文章