大家好,又见面了,我是你们的朋友全栈君。
(1)添加头文件:
#include <linux/earlysuspend.h>
(2)在特定驱动结构体中添加early_suspend结构:
#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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192209.html原文链接:https://javaforall.cn