经硬件排查发现led灯的电源域在休眠的过程中没有掉电,而是控制led灯的IO口掉电,接着排查驱动。

查看led驱动的suspend和resume发现:

static int led_suspend(struct device *dev, pm_message_t state)
{struct led_classdev *led_cdev = dev_get_drvdata(dev); if (led_cdev->flags & LED_CORE_SUSPENDRESUME)led_classdev_suspend(led_cdev);return 0;
}static int led_resume(struct device *dev)
{struct led_classdev *led_cdev = dev_get_drvdata(dev); if (led_cdev->flags & LED_CORE_SUSPENDRESUME)led_classdev_resume(led_cdev);return 0;
}

在suspend和resume中都会对led_cdev->flags这个标志位进行判断,而这种情况就是由于led_cdev->flags & LED_CORE_SUSPENDRESUME判断一直true。导致会调用led_classdev_suspend和led_classdev_resume

/*** led_classdev_suspend - suspend an led_classdev.* @led_cdev: the led_classdev to suspend.*/
void led_classdev_suspend(struct led_classdev *led_cdev)
{led_dbg();led_cdev->flags |= LED_SUSPENDED;led_cdev->brightness_set(led_cdev, 0);
}
EXPORT_SYMBOL_GPL(led_classdev_suspend);/*** led_classdev_resume - resume an led_classdev.* @led_cdev: the led_classdev to resume.*/
void led_classdev_resume(struct led_classdev *led_cdev)
{led_dbg(); led_cdev->brightness_set(led_cdev, led_cdev->brightness);led_cdev->flags &= ~LED_SUSPENDED;}

led_classdev_suspend的led_cdev->brightness_set(led_cdev, 0)把指示灯关掉了。

根本原因是 led_cdev->flags的设置,在drivers/leds/leds-gpios.c的create_gpio_led中

if (!template->retain_state_suspended)led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; 

将此处改为:

if (!template->retain_state_suspended)led_dat->cdev.flags &= ~LED_CORE_SUSPENDRESUME; //dingzhihua for charging keep on

这应该能使用在RK3288上面(不过我并没有在RK3288平台上面测试过)

px5 连接充电器是充电指示灯熄灭相关推荐

  1. win10笔记本已连接充电器却不显示连接怎么解决?

    具体方法如下: 1.首先,我们右击电脑右下角的电池符号: 2.弹出的界面,我们点击电源选项: 3.弹出的界面,我们点击更改计划设置: 4.然后我们再点击更改高级电源设置: 5.弹出的界面,我们找到电池 ...

  2. 小米max2装鸿蒙,小米max2全新玩法,连接电视大屏玩游戏看电影!

    2017 年 5 月 25 日,小米在北京东亿天弘演播中心举行了一次形式较为特别的新品发布会,发布会史无前例的采用了综艺节目的形式对新产品进行了发布,会上小米官方正式推出了旗下新品--小米Max2. ...

  3. android 小米手机打不开摄像头,小米手机相机故障无法连接到相机怎么办【故障解决】...

    小米 手机是市面上口碑和销量表现都十分不错的产品,它作为极具有性价比竞争优势的国民手机,在系统的设计和外观.性能参数的表现方面都结合国人实际的使用习惯,因此比较适合大家购买使用.但是随着小米手机更新换 ...

  4. 充电器快充取电芯片XSP06Q+锂电池5A电流快速充电

    今天介绍一种新的使用充电器给锂电池快速充电的方式.特点是直接取充电器的9V/12V电压3-5A的电流给电池充电,不需要使用传统的5V升压到12V然后再降压充电.这样大功率充电,充电时间短,效率高. 使 ...

  5. 节点类型与功能_WKD3874多功能振动测试系统

    一.概述 WKD3874多功能振动测试系统是一套建筑桥梁动载.模态测试分析系统,利用无线传输数据,广泛应用于桥梁.大型建筑及大型机械设备等不易实现人工激励的结构的实验模态分析.可应用于用于桥梁.大型建 ...

  6. 疯壳AI开源无人机开机测试及硬件资源介绍

    一.开机测试 1.1 前期准备 疯壳cocofly无人机到手后是一个高耐压防碰撞内置优质海绵泡沫防护的手提铝合金箱子,打开铝合金手提箱子就可以看到包含的物品:无人机一架.遥控手柄一个.无人机电池一个. ...

  7. 硬核,这个充电宝居然烧煤气!

    在户外旅行时,你们有没有遇到手机或其他电子设备没电,无法充电的情况呢?怎么办呢? 下面这位哥们就想到了一个办法--热能发电. 虽然效率会很低,但结果真的可以充电. 项目来源:instructables ...

  8. android 系统(34)--关机充电图标修改

    关机充电图标修改 关机充电图标修改 关机充电main函数 函数set_draw_anim_mode 函数pthread_mutex_init 函数bootlogo_init 函数alarm_contr ...

  9. 计算机分享硬盘,共享磁盘是什么怎么设置

    硬盘共享是指多人(一般是同一网段.局域网.网上邻居用户)共同读写(使用或访问)一个硬盘或者硬盘组,方便传输文件,具体怎么设置呢?下面由学习啦小编为你整理了电脑共享磁盘怎么设置的相关方法,希望对你有帮助 ...

最新文章

  1. (四) prometheus + grafana + alertmanager 配置Kafka监控
  2. when to book didi?
  3. Scala 类和对象详解
  4. JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
  5. vsco怎么两个滤镜叠加_PS插件 VSCO滤镜137款预设安装使用教程
  6. GridView强制不换行
  7. java node websocket_nodejs怎么实现webSocket接口即时通讯服务?
  8. 【codeforces 798B】Mike and strings
  9. [Web Chart系列之一(续)]Web端图形绘制SVG,VML, HTML5 Canvas 简单实例
  10. java rails orm_php 模拟 rails 中的 ActionRecord 的 ORM (一)
  11. mysql密码修改无效后,修改方法
  12. 汉字Unicode编码表
  13. 娜璋初识(一)你的酒窝没有酒,我却醉得像条狗,看程序员如何表白
  14. 云安全技术——PGP加密技术
  15. 如果批评《说好不哭》不自由,则赞美周杰伦无意义
  16. 安卓中发短信的几种方式总结和实现
  17. 工业机器人入门z50的含义_ABB工业机器人期中考试试题(中职)
  18. java基础学习之JSP动态web开发技术
  19. 字节小程序交易组件使用指南
  20. 【ESP32DEVKITV1学习笔记】点亮一盏LED灯

热门文章

  1. (解决)org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题的办法
  2. freeipa 客户端 Kerberos认证 SSSD关系
  3. @CacheEvict-缓存
  4. 03Java常用API-19. Jdk8新增的日期Date API(LocalDateTime,LocalDate,LocalTime,Instant,Period,Duration)
  5. TP5之微信小程序推送模板消息
  6. ionic 应用在iOS上打开相机拍照闪退、百度地图/高德地图定位失败(解决方案)
  7. 怎么恢复苹果内置的计算机,苹果自带软件删了怎么恢复原状
  8. latex 两个表格并排放置
  9. Java_笛卡尔积计算
  10. 极兔崛起,顺丰受伤,低端快递市场不好玩