Am Montag, 10. Oktober 2011, 16:16:35 schrieb Matthew Garrett: > On Mon, Oct 10, 2011 at 04:06:37PM +0200, Oliver Neukum wrote: > > > This is odd, because the hardware shouldn't generate remote wakeups unless you > > request them, like this (usbhid) > > I thought needs_remote_wakeup was a hint to the kernel that remote > wakeup ability was required for the hardware to autosuspend? In theory I It fulfills that role, but it is not its sole function. > guess it should be set, but in practice all the hardware supported by > this driver generates them so it'd be a noop. No objection to adding it > in the name of correctness (or if some future version is broken, I > guess...), though. It is used in usb_port_suspend in form of do_remote_wakeup which is computed from it. And we send a real control message. Regards Oliver int usb_port_suspend(struct usb_device *udev, pm_message_t msg) { struct usb_hub *hub = hdev_to_hub(udev->parent); int port1 = udev->portnum; int status; // dev_dbg(hub->intfdev, "suspend port %d\n", port1); /* enable remote wakeup when appropriate; this lets the device * wake up the upstream hub (including maybe the root hub). * * NOTE: OTG devices may issue remote wakeup (or SRP) even when * we don't explicitly enable it here. */ if (udev->do_remote_wakeup) { status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), USB_REQ_SET_FEATURE, USB_RECIP_DEVICE, USB_DEVICE_REMOTE_WAKEUP, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); if (status) { dev_dbg(&udev->dev, "won't remote wakeup, status %d\n", status); /* bail if autosuspend is requested */ if (msg.event & PM_EVENT_AUTO) return status; } } > -- > Matthew Garrett | mjg59@xxxxxxxxxxxxx > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- - - - SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) Maxfeldstraße 5 90409 Nürnberg Germany - - - -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html