问题描述:拔出usb线后usb没有进入lpm模式,导致系统无法休眠
/ # cat /proc/cmdline
cat /proc/cmdline
noinitrd ro console=NULL androidboot.hardware=qcom ehci-hcd.park=3 msm_rtb.filter=0x37 lpm_levels.sleep_disabled=1 early
con=msm_hsl_uart,0x78b1000 androidboot.serialno=3b9980 androidboot.authorized_kernel=true androidboot.baseband=msm rootf
stype=ubifs rootflags=bulk_read root=ubi0:rootfs ubi.mtd=14 custapp=/dev/ubi2_0
此时执行休眠提示
sh: write error: Device or resource busy
************************************************************
去掉lpm_levels.sleep_disabled=1后,设置 # echo off > /sys/power/autosleep (或者去掉CONFIG_PM_AUTOSLEEP)
执行休眠结果
/sys/devices/virtual/android_usb/android0 # echo mem > /sys/power/state 
[  471.726138] PM: suspend entry 1980-01-06 00:07:54.413190146 UTC
[  471.731040] PM: Syncing filesystems ... done.
[  471.761237] Freezing user space processes ... 
[  471.777456] Error: returning -512 value
[  471.783461] mbim_read: Waiting failed
[  471.791890] (elapsed 0.016 seconds) done.
[  471.794883] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[  471.804475] Suspending console(s) (use no_console_suspend to debug)
[  471.824526] msm_otg 78d9000.usb: Abort PM suspend!! (USB is outside LPM)
[  471.824574] dpm_run_callback(): platform_pm_suspend+0x0/0x54 returns -16
[  471.824600] PM: Device 78d9000.usb failed to suspend: error -16
[  471.824621] PM: Some devices failed to suspend, or early wake event detected
[  471.837781] PM: resume of devices complete after 13.111 msecs
[  471.870450] Restarting tasks ... done.
[  471.896264] cpufreq: Frequency violation fixed for CPU0
[  471.900527] Abort: Some devices failed to suspend, or early wake event detected
[  471.914510] PM: suspend exit 1980-01-06 00:07:54.601557125 UTC
sh: write error: Device or resource busy
/sys/devices/virtual/android_usb/android0 # 

********************************************************************************************
去掉dts里hsic相关的配置,去掉vbus_otg-supply = <&smb358_otg_vreg>及smb的配置
/sys/power # echo off > autosleep 
/sys/power # echo mem > state 
[  123.758308] PM: suspend entry 1980-01-06 01:37:37.417375487 UTC
[  123.763212] PM: Syncing filesystems ... done.
[  123.790947] Freezing user space processes ... 
[  123.810440] mbim_read: Waiting failed
[  123.818858] (elapsed 0.013 seconds) done.
[  123.821852] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[  123.831426] Suspending console(s) (use no_console_suspend to debug)
[  123.852721] msm_otg 78d9000.usb: Abort PM suspend!! (USB is outside LPM)
[  123.852770] dpm_run_callback(): platform_pm_suspend+0x0/0x54 returns -16
[  123.852796] PM: Device 78d9000.usb failed to suspend: error -16
[  123.852818] PM: Some devices failed to suspend, or early wake event detected
[  123.865932] PM: resume of devices complete after 13.065 msecs
[  123.898676] Restarting tasks ... 
[  123.905102] msm_otg 78d9000.usb: ep_set_halt: Unable to halt EP while suspended
[  123.911576] msm_otg 78d9000.usb: ep_set_halt: Unable to halt EP while suspended
[  123.934291] done.
[  123.946347] cpufreq: Frequency violation fixed for CPU0
[  123.950615] Abort: Some devices failed to suspend, or early wake event detected
[  123.965856] PM: suspend exit 1980-01-06 01:37:37.624923612 UTC
sh: write error: Device or resource busy

***********************************************************************************************************
可以使用这个指令打印usb状态机的log:echo file phy-msm-usb.c +p > /sys/kernel/debug/dynamic_debug/control
考虑LPM对usb的控制,特别是vbus部分,由于没有采用smb芯片,应配置成pmic引脚监测vbus的方式
参考文档 MDM9x07\BSP\PMIC\80_NH740_69_VBUS_DETECTION_USING_PMIC.pdf
主要有3点修改:
1. deconfig文件增加CONFIG_GPIO_USB_DETECT=y
2. dts增加pmic的mpp引脚监测
/* MPP pin 2 config for VBUS_DETECT interrupt line */
&pm8019_mpps {

mpp@a100 {
qcom,mode = <0>;     /* Digital input */
qcom,vin-sel = <3>;  /* 1.8V (L11) */
qcom,src-sel = <0>;  /*  QPNP_PIN_SEL_FUNC_CONSTANT */
qcom,pull = <1>;              /* No Pull */
qcom,master-en = <1>; /*Enable GPIO*/
status = "ok";
};
};
3.dts禁掉smb358-charger,启用usb_detect
smb358_otg_vreg: smb358-charger@57 {
status = "disabled";

};
usb_detect { 
compatible = "qcom,gpio-usbdetect"; 
interrupt-parent = <&spmi_bus>; 
interrupts = <0x0 0xA1 0x0>; /* PMD9607 MPP 2 */ 
interrupt-names = "vbus_det_irq"; 
}; 

 
执行结果
/sys/power # [  940.576199] msm_otg 78d9000.usb: phy_reset: success
[  940.686731] msm_otg 78d9000.usb: USB exited from low power mode
[  940.698794] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESET_EVENT received
[  940.704699] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_CONNECT_EVENT received
[  940.918915] udc_irq: USB reset interrupt is delayed
[  940.922874] msm_otg 78d9000.usb: Avail curr from USB = 100
[  940.929077] android_work: android_work: did not send uevent (0 0 00000000)
[  941.008406] android_work: android_work: sent uevent USB_STATE=CONNECTED
[  941.024581] android_work: android_work: sent uevent USB_STATE=DISCONNECTED
[  941.122982] android_work: android_work: sent uevent USB_STATE=CONNECTED
[  941.164584] android_usb gadget: high-speed config #1: 86000c8.android_usb
[  941.170432] diag: USB channel diag connected
[  941.175045] msm_otg 78d9000.usb: Avail curr from USB = 500
[  941.182885] gbam_connect_work: gbam_connect_work: Bam channel is not ready
[  941.234697] android_work: android_work: sent uevent USB_STATE=CONFIGURED
/sys/power # 
/sys/power # [  945.770367] gser_suspend: Un-supported transport: TTY
[  945.774456] msm_otg 78d9000.usb: Avail curr from USB = 2
[  945.779715] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_SUSPEND_EVENT received
[  945.786985] diag: USB channel diag disconnected
[  945.792630] gbam_disconnect_work: gbam_disconnect_work: Bam channel is not opened
[  945.802721] android_work: android_work: sent uevent USB_STATE=DISCONNECTED
[  945.844687] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_DISCONNECT_EVENT received
[  945.858531] msm_otg 78d9000.usb: Avail curr from USB = 0
[  947.019999] msm_otg 78d9000.usb: USB in low power mode

usb拔掉后可以正常转入DISCONNECTED态
null

转载于:https://www.cnblogs.com/chenyidong/p/6774428.html

9x07-usb state拔出usb线后状态仍为CONFIGURED,影响休眠(已解决)相关推荐

  1. 断电的方法关闭计算机,win7设置usb关机断电|win7设置usb关机拔出断电的解决方法...

    win7设置usb关机断电,win7设置usb关机拔出断电的解决方法?小伙伴们可能会经常性的遇到一个问题,就是win7电脑已经关闭了,但是插在计算机usb接口上的硬盘依然会被计算机供电,发出闪亮的光, ...

  2. linux udev 检测u盘的插入和拔出,在Linux中C检测插入/拔出USB串行设备

    我需要检测何时在我的嵌入式系统上插入或拔出USB串行设备,并知道与之相关的tty是什么. 我的系统运行在2.6 Linux内核上. 由于我没有对udev规则的写访问权限,现在我正在尝试从文件系统获取此 ...

  3. TS:解决Linux无法登录,输入密码后显示module is unknown报错(已解决)-2021.1.5

    TS:解决Linux无法登录,输入密码后显示module is unknown报错(已解决)-2021.1.5 1.报错现象 解决Linux无法登录,输入密码后显示module is unknown报 ...

  4. Android P检测USB插入拔出消息并基于libaums实现读取USB文件

    Android设备中检测USB插入消息,并且从USB中读取文件. 一.导入libaums包 libaums开源项目地址:https://github.com/magnusja/libaums buil ...

  5. 重启服务器后磁盘显示空余变大,(已解决)开机后发现服务中Superfetch服务项会导致磁盘利用率在85%以上,重启后依旧...

    在开机后发现磁盘利用率90%~100%之间(家庭组已经停用),后来发现服务项中Superfetch服务项在停用后,磁盘利用率恢复正常,请问该项目应该如何处理,如果禁用后对系统有什么影响? 使用的系统为 ...

  6. [RK3399][Android7.1.1]Tethering:修复使用USB共享网络,拔出USB后 USB共享没有自动关闭的问题

    测试平台 Platform: RK3399 OS: Android 7.1.1 现象 热点:使用USB共享网络时,当USB拔出后,共享没有自动关闭的问题 解决方案 From 166712b80a4ef ...

  7. 笔记本 禁用触摸屏 USB鼠标自动禁用触摸板,拔出USB鼠标自动启用触摸板

    1. 安装触摸板驱动 http://drivers.mydrivers.com/drivers/436-174709-Synaptics-15.3.17-For-WinXP-32-WinXP-64-/ ...

  8. cubase怎么添加midi设备_教你解决Cubase拔出USB-MIDI设备后不能再识别的问题。

    打开Cubase前,忘了先插上USB-MIDI设备:打开Cubase后,不小心拔掉USB-MIDI设备.这两种情况下USB-MIDI设备都可能不能被Cubase识别. 这个现象的原因是,Cubase只 ...

  9. Layui 重载后表格内容重复 更换提交方式已解决

    Layui 2.5.4 版本 重载内容展示重复问题 直接上代码: HTML <div class="layui-form-item layui-col-space10"> ...

最新文章

  1. Netty 高性能之道 - Recycler 对象池的复用
  2. 撕掉伪善——用人话解释马云的996两次发言
  3. Cloudera Enterprise 试用版 6.3.1查看cloudrea的许可证---可用期限
  4. 解决MyBatis的报错 There is no getter for property named ‘*‘ in ‘class java.lang.String‘
  5. JavaScript ES 5 语法 重构 new
  6. 随想录(vc仿真下的嵌入式开发)
  7. hashchange
  8. 一分钟了解阿里云产品:绿网
  9. discuz开启url伪静态
  10. LiveGBS国标GB/T28181|GB35114流媒体服务(LiveSMS)如何配置节点集群
  11. btsync 文件同步工具 私有云盘
  12. Python 万能代码模版:数据可视化篇
  13. 教你用Python 做PPT之制作动态图~做出来的效果高级又好看
  14. APP开发流程都有哪些?
  15. 小白怎么入门网络安全?
  16. 计算机考研需要分数线,计算机考研分数线是多少?
  17. 2021年最新独立版橙色去水印微信小程序-更新2021.8.31
  18. thinkphp 分页样式
  19. 【一生一芯】Chap.0 IC常用网站论坛门户 如何提出一个技术问题 并尝试解决 | 提问的智慧
  20. 【MM系列】SAP MM物料账在制品承担差异功能及配置

热门文章

  1. 【数据结构】图1——图的基本概念和术语、类型定义
  2. 第六周组会摘要工作计划与分工
  3. PhotoShop cc合并多张静态图片为gif动画
  4. 拷机测试需要多久_软件测试培训多久能学会?这六个阶段是要有的
  5. /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  6. C++ 题解 (排序) 身高排队
  7. CSS中常用选择器总结
  8. 二叉树的镜像(递归非递归)
  9. 文件类型关联的文件图标
  10. 2356 - 成绩排序