大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1.添加头文件
#ifdef CONFIG_HAS_EARLYSUSPEND
#include <linux/earlysuspend.h>
#endif
2. 在驱动结构体中添加early_suspend结构体
#ifdef CONFIG_HAS_EARLYSUSPEND
struct early_suspend early_suspend;
#endif /* CONFIG_HAS_EARLYSUSPEND */
3. 在驱动probe结构函数中,注册相应early_suspend结构体
#ifdef CONFIG_HAS_EARLYSUSPEND1
/*
* The higher the level, the earlier it resume,
* and the later it suspend.
*/
dev_info(&client->dev, "%s register_early_suspend\n", __func__);
par->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1;
par->early_suspend.suspend = ssd1307fb_earlysuspend;
par->early_suspend.resume = ssd1307fb_earlyresume;
register_early_suspend(&par->early_suspend);
#endif /* CONFIG_HAS_EARLYSUSPEND */
4. 在驱动remove函数中取消earlay_suspend结构体的注册
#ifdef CONFIG_HAS_EARLYSUSPEND
unregister_early_suspend(&par->early_suspend);
#endif /* CONFIG_HAS_EARLYSUSPEND */
5. 定义相关suspend 和 resume 函数
#ifdef CONFIG_HAS_EARLYSUSPEND
void ssd1307fb_earlysuspend(struct early_suspend *h)
{
printk(KERN_ACCT "%s: suspend bklight\n", __func__);
ssd1305fb_full_screen(global_par, 0);
gpio_set_value(global_par->bklight, 0);
return;
}
void ssd1307fb_earlyresume(struct early_suspend *h)
{
printk(KERN_ACCT, "%s: resume bklight\n", __func__);
ssd1305fb_update_display(global_par);
gpio_set_value(global_par->bklight, 1);
return;
}
#endif /* CONFIG_HAS_EARLYSUSPEND */
6. 在系统驱动结构体中设置没有使用的suspend和resume的函数接口
#ifndef CONFIG_HAS_EARLYSUSPEND
.suspend = xxxx_suspend,
.resume = xxxx_resume,
#endif
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192086.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...