[RK3288][Android6.0] DeviceTree中的status属性使用规则
来源:互联网 发布:手机视频修复软件 编辑:程序博客网 时间:2024/06/07 03:39
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
有看到网友在讨论device tree中的status到底该如何设置,默认状态是什么,知识点如下:
- 默认情况下不设置status属性的话表示此节点的功能是enable的
- 如果要设置status,那么值必须是”okay”或者”ok”
- dts里的status属性值会覆盖dtsi中的值(编译dtb的时候会覆盖)
对应代码在kernel/drivers/of/base.c:
/** * of_device_is_available - check if a device is available for use * * @device: Node to check for availability * * Returns 1 if the status property is absent or set to "okay" or "ok", * 0 otherwise */int of_device_is_available(const struct device_node *device){ unsigned long flags; int res; raw_spin_lock_irqsave(&devtree_lock, flags); res = __of_device_is_available(device); raw_spin_unlock_irqrestore(&devtree_lock, flags); return res;}
__of_device_is_available():
/** * __of_device_is_available - check if a device is available for use * * @device: Node to check for availability, with locks already held * * Returns 1 if the status property is absent or set to "okay" or "ok", * 0 otherwise */static int __of_device_is_available(const struct device_node *device){ const char *status; int statlen; status = __of_get_property(device, "status", &statlen); if (status == NULL) return 1; if (statlen > 0) { if (!strcmp(status, "okay") || !strcmp(status, "ok")) return 1; } return 0;}
参考:
Linux Device Tree: What those status = “okay” are about
阅读全文
1 0
- [RK3288][Android6.0] DeviceTree中的status属性使用规则
- [RK3288][Android6.0] Audio中的period_size使用规则
- [RK3288][Android6.0] Display中的Composition机制
- [RK3288][Android6.0] Android中的Properties
- [RK3288][Android6.0] WiFi在Setting中的开启过程小结
- [RK3288][Android6.0] Audio中的HW Params设置流程
- [RK3288][Android6.0] Display中的2D Rendering机制
- [RK3288][Android6.0] ALSA中的DMA buffer分配
- [RK3288][Android6.0] Audio中的录音重采样小结
- [RK3288][Android6.0] Audio中的放音重采样小结
- [RK3288][Android6.0] Audio中的混音过程小结
- [RK3288][Android6.0] 开发者选项中的Strict mode功能
- [RK3288][Android6.0] Skia中的编解码小结
- RK3288][Android6.0] ALSA dapm框架中的widget/path/route
- [RK3288][Android6.0] DRAM中的Channel/RANK/BANK
- [RK3288][Android6.0] 使用SD卡升级固件到eMMC
- [RK3288][Android6.0] Camera HAL ION 使用小结
- [RK3288][Android6.0] 一个例子看MediaCodec使用流程
- for、while、do..while的使用方法
- anjularjs知识点二作用域
- JS实现页面跳转并传值
- TensorFlow代码实现(二)[实现异或门(XOR)]
- android反编译
- [RK3288][Android6.0] DeviceTree中的status属性使用规则
- CSDN-markdown编辑器语法——字体、字号与颜色
- 对《关于神经认知学习与控制的文献综述》的翻译
- 时间问题
- boost::ASIO的同步方式和异步方式
- Openwrt下安装Lighttpd+PHP+Mysql总结(一)
- jenkins学习
- 让PowerShell方便的查看项目git仓库的状态
- MyBatis在Oracle数据库下用concat函数模糊查询之参数个数无效错误