Linux内核电源管理全解析
1. 电源管理基础规则
在Linux内核电源管理中, ->runtime_resume() 有着特殊的执行规则:
- 当 ->runtime_resume() 即将执行或有待执行的请求时,同一设备的其他回调函数将不会执行。
- 执行 ->runtime_resume() 的请求会取消同一设备其他回调函数的待执行或已调度请求,但已调度的自动挂起请求除外。
这些规则为理解回调函数调用失败的原因提供了重要线索,也表明恢复操作或恢复请求的优先级高于其他回调或请求。
2. 电源域概念
2.1 电源域定义
从不同角度看,电源域有不同的定义:
- 技术层面:电源域是共享电源资源(如时钟或电源平面)的一组设备。
- 内核角度:电源域是一组设备,其电源管理在子系统级别使用相同的回调函数集和通用的电源管理数据。
- 硬件角度:电源域是用于管理电源电压相关设备的硬件概念,例如视频核心IP与显示IP共享电源轨。
2.2 通用电源域(Genpd)
由于片上系统(SoC)设计日益复杂,需要一种抽象方法使驱动尽可能通用,于是通用电源域(Genpd)应运而生。它是Linux内核的一种抽象,将每个设备的运行时电源管理扩展到共享电源轨的一组设备。电源域在设备树中定义,描述了设备与电源控制器之间的关系,这使得电源域可以动态重新设计,驱动程序无需重启整个系统或重建新内核即可适应变化。
当设备存在电源域对象时,其电源管理回调函
超级会员免费看
订阅专栏 解锁全文
3658

被折叠的 条评论
为什么被折叠?



