Re: [PATCH 0/2] usb: override hub device bInterval with device node

From: Ikjoon Jang
Date: Tue Nov 19 2019 - 00:18:53 EST

On Sun, Nov 17, 2019 at 11:46 PM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Sun, 17 Nov 2019, Ikjoon Jang wrote:
> > This patchset enables hard wired hub device to use different bInterval
> > from its descriptor when the hub has a combined device node.
> >
> > When we know the specific hard wired hub supports changing its polling
> > interval, we can adjust hub's interval to reduce the time of waking up
> > from autosuspend or connect detection of HIDs.
> In fact, _all_ hubs support changing the polling interval. The value
> given in the USB spec is just an upper limit; any smaller value is
> equally acceptable.
> So why are you doing this only for hard-wired hubs? Why not for all
> hubs?

Because we only want to apply it to a specific device instance under
our control.
We apply autosuspend to built-in touchpad device for power savings,

Users can attach external hub devices with same VID:PID that we don't want to
change the behavior. Maybe disabling autosuspend for external HIDs
can be more reasonable for that case?

> And is 250 ms really too long to wait for remote wakeup or connect
> detection? What's the real motivation behind this change?

When a user starts to move the cursor while touchpad is in autosuspend state,
It takes more than >250ms (worst case can be >500ms) to wake up and response.
That makes the cursor stuck for a while and warp to another location suddenly.

> Alan Stern