led驱动中未实现brightness_get函数所引起的问题。
来源:互联网 发布:php study 编辑:程序博客网 时间:2024/05/16 13:52
测试发现:
/sys/devices/platform/keyboard-backlight/leds/keyboard-backlight
/sys/class/leds/keyboard-backlight
每次开机cat brightness 总是0 ,而无论此时该LED是否点亮。
每次开机 keyboard LED的状态取决与上次关机时的状态。
驱动路径kernel/drivers/leds/leds-sprd-kb.c
该驱动没有实现brightness_get回调函数:led->cdev.brightness_get = NULL;
这导致在没有进行led->cdev.brightness_set调用之前,cat brightness出来的值总是0 ,只有调用了一次led->cdev.brightness_set 之后,再cat brightness时才能得到刚才设置的值。
为什么会第一次得不到值,而后面都能得到呢?这要看看这些sys文件的实现,以及对应的show和store函数,参见:kernel/drivers/leds/leds-class.c
static ssize_t led_brightness_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct led_classdev *led_cdev = dev_get_drvdata(dev);
/* no lock needed for this */
led_update_brightness(led_cdev);
return sprintf(buf, "%u\n", led_cdev->brightness);
}
led_update_brightness函数会基于驱动实现的get函数更新brightness,而我们的驱动却没有实现这个函数。所以这个update函数就没有作用。所以brightness在第一次读取时总是0
- led驱动中未实现brightness_get函数所引起的问题。
- 有无线网卡驱动未装有线网卡驱动所引起的BOS问题。
- java split函数中由于正则表达式所引起的问题
- c++中类对象直接作为函数参数所引起的问题。
- lambda 函数所引起的闭包问题
- Spring MVC中jsessionid所引起的问题 和解决
- LED驱动中s3c2410_gpio_setpin s3c2410_gpio_cfgpin函数的定义
- Ubuntu服务器的NVIDIA驱动自动更新所引起的问题及解决方法m
- 流驱动XXX_Init中分配内存引起的问题
- VC5.0未打补丁引起的问题
- 未初始化的变量引起运行问题
- Oracle未正确关闭引起的问题
- thrift connection 未关闭引起的问题
- 简单led驱动(未使用led子系统)
- 线程的并发所引起的问题
- 野指针所引起的问题
- 野指针所引起的问题
- jsessionid所引起的问题和解决
- android选项卡
- SQL2008 相关函数
- java通过生日得到星座
- vs上面不显示项目里的自定义的控件
- Linux中如何新建用户
- led驱动中未实现brightness_get函数所引起的问题。
- [gpu pro2]LargeScaleTerrainRenderingForOutdoorGames
- X window manager
- android 4.0.4系统下实现apk的静默安装和启动
- INNO Setup 使用笔记
- ibatis命名空间(namespace)使用
- 一个从UIImageView中获得Image位置的函数
- CListCtrl使用技巧小全
- ubuntu 包管理