linux 通知链(notifier chain)

LCD亮屏时间分析 1、添加log,打印亮灭屏期间lcd大概花的时间 fbmem.c中 int fb_blank(struct fb_info *info, int blank) { struct fb_event event; int ret = -EINVAL, early_ret; if (blank > FB_BLANK_POWERDOWN) blank = FB_BLANK_POWE... 阅读详情

        最近在公司瑞芯微平台的触控终端上加了一颗雷达芯片作为距离传感器实现接近唤醒功能(即当有人靠近时实现自动亮屏),但是在 platform 驱动中注册了 resume 和 suspend 函数后发现当系统挂起或者是唤醒的时候并不能调用这两个函数,后查阅相关资料发现,瑞芯微的系统并不会让系统进入到深度休眠所以系统无法调用到 suspend 和 resume 函数;后发现可以通过 linux 的通知链机制进行处理;

static int radar_power_event(struct notifier_block *this, unsigned long event,
			   void *ptr)
{
    int blank_mode;
    struct fb_event *fbEvent = ptr;
    // printk(KERN_INFO "radar_power_event is %ld....\n",event);
	switch (event) {
        case FB_EVENT_BLANK:
            blank_mode = *((int *)fbEvent->data);
            if (blank_mode == FB_BLANK_UNBLANK)
            {
                radar_platform_resume();            //resume 函数
            }
            break;
        case FB_EARLY_EVENT_BLANK:
            blank_mode = *((int *)fbEvent->data);
            if (blank_mode != FB_BLANK_UNBLANK)
            {
                radar_platform_suspend();            // suspend 函数
            }
            break;
        default:
  
从基本理解到深入探究 Linux kernel 通知notifier chain 文章目录基本理解Linux kernel 事件通知深入探究Linux kernel 事件通知 基本理解Linux kernel 事件通知 linux/drivers/video/fb_notify.c 一般人会使用这个几个接口就行了,若不想放弃请看下面深入探究Linux kernel 事件通知。 深入探究Linux kernel 事件通知 https://blog.csdn.ne... 阅读详情

相关推荐

notifier chain — 内核通知

大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知的机制。通知表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知通知表是一个函数表,表上的每一个节点都注册了一个函数。当某个事情发生时,表上所有节点对应的函数就会被执行。所以对于通知表来说

嵌入式技术博客 1万+

TP休眠流程

在智能设备上,tp一般随lcd休眠,这样可以减少整机功耗,防止tp误触。也就是说,按下电源键熄屏后,lcd会走休眠流程,该过程lcd会发通知lcd已经进入休眠了,由于tp驱动中注册了lcd内核通知,tp也随之进入休眠。按电源键唤醒后,lcd唤醒了,tp也随之唤醒。如 #if defined(CONFIG_FB) INIT_WORK(&data->fb_notify_work,...

Android开发 3280

【IoT】高通LCD之亮灭屏过程简析

1、如何看亮灭屏时间 adb shell kmsgcat |grep fb_blank 2、code简介 在kernel/drivers/video/msm/mdss/mdss_fb.c中, static intmdss_fb_blank_sub(int blank_mode, struct fb_info *info, int op_en

产品线负责人 1万+

ANDROID Porting系列十一Power Management

ANDROID Porting系列十一、Power Management 分类: 2.----ANDROID 2010-07-16 20:36 2782人阅读 评论(1) 收藏 举报 http://source.android.com/porting/power_management.html 介绍   wake_locks Wake Locks类型 探索Wa

lqf785435771的专栏 661

Linux内核源码——通知notifier chain

写在前面的话: 刚入手Linux驱动的时候,各种Linux内核的机制是我们需要搬起的一块大砖块。搬砖的过程中,我发现自己不能很好的理解相关的业务驱动的很大的一个原因就是对内核的基本机制掌握不太准确。刚看内核机制代码的时候,需要借助百度上面的各种文档、结合自己的业务代码开展学习。后面有一定基础了,看内核源码、再看业务代码,最后看看网上的博客,效果我自己感觉还可以。通知notifier chain...

舞动的心 1143

Linux 内核通知notifier chain)原理和使用方法

目录 通知的引入 通知类型 一个简单的测试实例 通知的引入 Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知机制(notification chain)。 通知只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码...

yetaibing1990的博客 5799

Linux内核事件通知(notifier chain)

Linux内核基础--事件通知(notifier chain) 简介: 内核许多子系统之间关联紧密,因此在一个子系统发生或者检测到的事件信息很可能对其他子系统来说也是有价值的。为了满足其他子系统对这些事件信息的需求,即在某个子系统内发生或检测到事件时,其他对此感兴趣的子系统也能知道事件的发生,内核提供了notification chain机制。 注意:notification chain适用于内核子系统之间的信息传递,不涉及用户态。 Notification chain使用发布-订阅模型(pub...

深蓝旭的博客 550

linux内核事件通知,Linux内核基础--事件通知(notifier chain)

1.4. 简单一例:通过上面所述,notifier_chain机制只能在内核个子系统间使用,因此,这里使用3个模块:test_notifier_chain_0、test_notifier_chain_1、test_notifier_chain_2;当 test_notifier_chain_2通过module_init初始化模块时发出事件TESTCHAIN_2_INIT;然后 test_notif...

weixin_35186551的博客 314

linux kernel 通知notifier chain

最近在分析TP驱动中的suspend和resume实现,发现是通过linux内核提供的通知notifier chain)来实现的,借此分析一下以加深理解。

Neil驱动的博客 244

linux 通知(notifier chain)

了解通知(notifier chain)。 1.通知(notifier chain)   notifier chainLinux kernel中被用来实现不同的subsystem之间的通信。简单来说,notifier chain是一个存储了某个事件对应的回调函数的列表。每个notifier chain都和特定的事件相关,当发出事件通知的时候,会触发对应的回调函数来处理该事件。   四种不...

weixin_41028621的博客 1022

Linux内核通知(notifier chain)

1、概述 Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知机制(notification chain)。 通知只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码均位于kernel目录下,通知表位于kernel/notifier.c中,对应的头文件为include/linux/notifier.h。 事件通知表是一个事件处理函数的列表,

大帅的博客 2409

linux内核通知(notifier chain)

概述Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知机制(notification chain)。通知只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码均位于kernel目录下,通知表位于kernel/notifier.c中,对

luckywang1103的专栏 2271

Linux内核通知Notifier Chain)使用

当某个事件发生时,内核会遍历通知,依次调用表中的每个处理函数,将事件传递给它们。通知提供了一种简单而灵活的事件通知机制,允许内核模块之间以异步方式进行通信。Linux内核通知是一种内核机制,用于在内核事件发生时通知注册的内核模块。通过通知,模块之间可以以一种松耦合的方式进行通信,实现事件的高效传递和处理。其中,nb是指向通知块的指针,event是事件类型,data是事件数据。内核模块需要实现一个通知处理函数,用于接收并处理通知事件。接下来,需要定义一个通知块,并将处理函数注册到通知中。

ACMIII的博客 619

Linux内核通知 notifier chain

源出处:http://fangjian0518.blog.163.com/blog/static/5591965620118295401816/ 1.内核通知表简介(引用网络资料)     大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知的机制。通知

lihaoweiV的专栏 2540

从基本理解到深入探究 Linux kernel 通知notifier chain)【转】

转自:https://blog.csdn.net/u014134180/article/details/86563754 版权声明:本文为博主原创文章,未经博主允许不得转载。——Wu_Being https://blog.csdn.net/u014134180/article/details/86563754文章目录基本理解Linux 内核事件通知1. TP 驱动相关代码2. LCM 背光相关...

weixin_33982670的博客 492

Linux内核基础--事件通知(notifier chain) 简单一例

1.4. 简单一例: 通过上面所述,notifier_chain机制只能在内核个子系统间使用,因此,这里使用3个模块:test_notifier_chain_0、test_notifier_chain_1、test_notifier_chain_2;当 test_notifier_chain_2通过module_init初始化模块时发出事件TESTCHAIN_2_INIT;然后 test_not

u013403237的专栏 882
上一篇: Calling a method in the system process without a qualified user
兔子夹心脆
博客等级 码龄10年 7粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值