linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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;
as well as URLs for NNTP newsgroup(s).