On Mon, 24 Nov 2014, Benson Leung wrote: > Hi Alan, > > > On Sat, Nov 22, 2014 at 7:55 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > There is no USB wrapper for pm_runtime_idle calls, but one could be > > added. Still, in the meantime can you check to see what happens if you > > add > > > > pm_runtime_idle(&usbhid->intf->dev); > > > > in usbhid_close() just after needs_remote_wakeup is set to 0? You can > > do the same thing in usbhid_stop() if you want. > > I tried using this in lieu of usb_autopm_get/put_interface: > > usbhid->intf->needs_remote_wakeup = 0; > pm_runtime_idle(&usbhid->intf->dev); > pm_runtime_idle(usbhid->intf->dev.parent); > > It did not work. I see the autosuspend_check() that was kicked off as > a result of hid_hw_power, which falls into the "remote wakeup needed > for autosuspend" branch, but I don't see another autosuspend_check() > that picks up the updated value of needs_remote_wakeup. Well, why not? In order to work on the kernel effectively, you need the right mind-set. Don't just tell people when something goes wrong -- figure out why the problem occurred and propose a way to fix it. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html