* [Query] USB device autosuspend and its runtime usage count. @ 2018-08-13 6:45 Anshuman Gupta 2018-08-13 7:49 ` Oliver Neukum 0 siblings, 1 reply; 5+ messages in thread From: Anshuman Gupta @ 2018-08-13 6:45 UTC (permalink / raw) To: linux-usb; +Cc: linux-kernel, anshuman.gupta Hi , I need to test a functionality with USB autosuspend with latest kernel Linux 4.18-rc8. I am trying to autosuspend a USB key board, i enabled its autosuspend by doing echo "auto" to its "control" attributes. I am expecting USB keyboard to go to autosuspend after autosuspend_delay_ms. But USB key board is not going to autosuspend because its runtime usage count is not equal to zero. Below are the log snippets: root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_enabled enabled root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/control auto root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/autosuspend_delay_ms 2000 root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_status active root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_usage 1 root@intel-Kabylake-Client-platform:# sleep 60; cat /sys/bus/usb/devices/1-5/power/runtime_usage 1 My USB keyboard runtime usage reference count is not decreasing to zero. Here am i missing something regarding runtime usage count or is it some issue with my kernel or OS? Thanks, Anshuman Gupta. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Query] USB device autosuspend and its runtime usage count. 2018-08-13 6:45 [Query] USB device autosuspend and its runtime usage count Anshuman Gupta @ 2018-08-13 7:49 ` Oliver Neukum 2018-08-13 10:45 ` Anshuman Gupta 0 siblings, 1 reply; 5+ messages in thread From: Oliver Neukum @ 2018-08-13 7:49 UTC (permalink / raw) To: Anshuman Gupta, linux-usb; +Cc: linux-kernel On Mo, 2018-08-13 at 12:15 +0530, Anshuman Gupta wrote: > Hi , > I need to test a functionality with USB autosuspend with latest kernel > Linux 4.18-rc8. I am trying to autosuspend a USB key board, i enabled > its autosuspend by doing echo "auto" to its "control" attributes. > I am expecting USB keyboard to go to autosuspend after autosuspend_delay_ms. > But USB key board is not going to autosuspend because its runtime usage > count is not equal to zero. > > Below are the log snippets: > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_enabled > enabled > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/control > auto > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/autosuspend_delay_ms > 2000 > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_status > active > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_usage > 1 > root@intel-Kabylake-Client-platform:# sleep 60; cat /sys/bus/usb/devices/1-5/power/runtime_usage > 1 > > My USB keyboard runtime usage reference count is not decreasing to zero. > Here am i missing something regarding runtime usage count or is it some issue with > my kernel or OS? Very hard to say without further information. Is the HID device the only interface of the whole device? Does the device support remote wakeup? Is an LED on? Usbhid does support autosuspend, but its criteria must be met. And all interface drivers must call the device idle. Or you have discovered a kernel bug. Regards Oliver ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Query] USB device autosuspend and its runtime usage count. 2018-08-13 7:49 ` Oliver Neukum @ 2018-08-13 10:45 ` Anshuman Gupta 2018-08-13 12:49 ` Oliver Neukum 2018-08-13 14:04 ` Alan Stern 0 siblings, 2 replies; 5+ messages in thread From: Anshuman Gupta @ 2018-08-13 10:45 UTC (permalink / raw) To: oneukum, linux-usb; +Cc: linux-kernel, anshuman.gupta On Mon, Aug 13, 2018 at 01:19:26PM +0530, Oliver Neukum wrote: > On Mo, 2018-08-13 at 12:15 +0530, Anshuman Gupta wrote: > > Hi , > > I need to test a functionality with USB autosuspend with latest kernel > > Linux 4.18-rc8. I am trying to autosuspend a USB key board, i enabled > > its autosuspend by doing echo "auto" to its "control" attributes. > > I am expecting USB keyboard to go to autosuspend after autosuspend_delay_ms. > > But USB key board is not going to autosuspend because its runtime usage > > count is not equal to zero. > > > > Below are the log snippets: > > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_enabled > > enabled > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/control > > auto > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/autosuspend_delay_ms > > 2000 > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_status > > active > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_usage > > 1 > > root@intel-Kabylake-Client-platform:# sleep 60; cat /sys/bus/usb/devices/1-5/power/runtime_usage > > 1 > > > > My USB keyboard runtime usage reference count is not decreasing to zero. > > Here am i missing something regarding runtime usage count or is it some issue with > > my kernel or OS? > > Very hard to say without further information. Is the HID device the > only interface of the whole device? yes, HID device is only the interface for given device, below here lsusb -t log for usb dev 1-5. root@intel-Kabylake-Client-platform:# lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 5: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M > Does the device support remote wakeup? yes, from lsusb logs it seems, it is supporting remote wakeup. root@intel-Kabylake-Client-platform:# lsusb Bus 001 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc. Keyboard LKS02 root@intel-Kabylake-Client-platform:# lsusb -v -d 04d9:1702 | grep Remote Remote Wakeup > Is an LED on? Num lock led was on, but switching it off also does not help. > > Usbhid does support autosuspend, but its criteria must be met. > And all interface drivers must call the device idle. All of its interfaces are in runtime suspend root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.0/power/runtime_status suspended root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.1/power/runtime_status suspended root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_active_kids 0 > Or you have discovered a kernel bug. > > Regards > Oliver > -- Thanks, Anshuman ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Query] USB device autosuspend and its runtime usage count. 2018-08-13 10:45 ` Anshuman Gupta @ 2018-08-13 12:49 ` Oliver Neukum 2018-08-13 14:04 ` Alan Stern 1 sibling, 0 replies; 5+ messages in thread From: Oliver Neukum @ 2018-08-13 12:49 UTC (permalink / raw) To: Anshuman Gupta, linux-usb; +Cc: linux-kernel On Mo, 2018-08-13 at 16:15 +0530, Anshuman Gupta wrote: > > All of its interfaces are in runtime suspend > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.0/power/runtime_status > suspended > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.1/power/runtime_status > suspended > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_active_kids > 0 Is the RESET_RESUME quirk set for this device? All children idle but the parent active is odd. Regards Oliver ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Query] USB device autosuspend and its runtime usage count. 2018-08-13 10:45 ` Anshuman Gupta 2018-08-13 12:49 ` Oliver Neukum @ 2018-08-13 14:04 ` Alan Stern 1 sibling, 0 replies; 5+ messages in thread From: Alan Stern @ 2018-08-13 14:04 UTC (permalink / raw) To: Anshuman Gupta; +Cc: oneukum, linux-usb, linux-kernel On Mon, 13 Aug 2018, Anshuman Gupta wrote: > On Mon, Aug 13, 2018 at 01:19:26PM +0530, Oliver Neukum wrote: > > On Mo, 2018-08-13 at 12:15 +0530, Anshuman Gupta wrote: > > > Hi , > > > I need to test a functionality with USB autosuspend with latest kernel > > > Linux 4.18-rc8. I am trying to autosuspend a USB key board, i enabled > > > its autosuspend by doing echo "auto" to its "control" attributes. > > > I am expecting USB keyboard to go to autosuspend after autosuspend_delay_ms. > > > But USB key board is not going to autosuspend because its runtime usage > > > count is not equal to zero. > > > > > > Below are the log snippets: > > > > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_enabled > > > enabled > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/control > > > auto > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/autosuspend_delay_ms > > > 2000 > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_status > > > active > > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_usage > > > 1 > > > root@intel-Kabylake-Client-platform:# sleep 60; cat /sys/bus/usb/devices/1-5/power/runtime_usage > > > 1 > > > > > > My USB keyboard runtime usage reference count is not decreasing to zero. > > > Here am i missing something regarding runtime usage count or is it some issue with > > > my kernel or OS? > > > > Very hard to say without further information. Is the HID device the > > only interface of the whole device? > yes, HID device is only the interface for given device, below here lsusb -t log for usb dev 1-5. > > root@intel-Kabylake-Client-platform:# lsusb -t > /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M > |__ Port 5: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M > |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M > > > Does the device support remote wakeup? > yes, from lsusb logs it seems, it is supporting remote wakeup. > > root@intel-Kabylake-Client-platform:# lsusb > Bus 001 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc. Keyboard LKS02 > > root@intel-Kabylake-Client-platform:# lsusb -v -d 04d9:1702 | grep Remote > Remote Wakeup > > > Is an LED on? > Num lock led was on, but switching it off also does not help. > > > > Usbhid does support autosuspend, but its criteria must be met. > > And all interface drivers must call the device idle. > All of its interfaces are in runtime suspend > > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.0/power/runtime_status > suspended > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5\:1.1/power/runtime_status > suspended > root@intel-Kabylake-Client-platform:# cat /sys/bus/usb/devices/1-5/power/runtime_active_kids > 0 What matters is not the power/* settings for the interfaces themselves, but rather the power/* settings for the interfaces' children. Alan Stern ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-08-13 14:05 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-08-13 6:45 [Query] USB device autosuspend and its runtime usage count Anshuman Gupta 2018-08-13 7:49 ` Oliver Neukum 2018-08-13 10:45 ` Anshuman Gupta 2018-08-13 12:49 ` Oliver Neukum 2018-08-13 14:04 ` Alan Stern
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox