From: Alan S. <st...@ro...> - 2011-07-14 15:58:02
|
On Thu, 14 Jul 2011, Xiaofan Chen wrote: > On Tue, Jul 12, 2011 at 11:39 PM, Alan Stern <st...@ro...> wrote: > > On Tue, 12 Jul 2011, Xiaofan Chen wrote: > > > >> On Mon, May 21, 2007 at 5:36 PM, Gaopeng Chen - Sun China > >> <Gao...@su...> wrote: > >> > Hi all, > >> > > >> > Is it possible to export two new events for libusb_event_t? > >> > > >> > USB_SUSPEND > >> > USB_RESUME > >> > > >> > I'm working on a fingerprint device, which supports advanced power > >> > management. Users can send a control msg to suspend the device. Once a > >> > finger is pressed, the device will wake up and resume. Thus the resume > >> > event is required to be issued. I think this is very useful for USB > >> > devices that's required to be power saved and remote wake-up. > >> > >> This is an old thread. > >> http://libusb.6.n5.nabble.com/A-new-request-for-libusb-event-t-td2992.html > >> > >> The thread seems to suggest that the above is possible under > >> Linux and Solaris. > >> > >> How to support this under Linux? Is it possible to do similar > >> things for Windows and Mac OS X? > > > > It's currently not possible under Linux. No event notifications are > > sent to userspace when a device is suspended or resumed. Reference > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/usb/core/devio.c > > lines 506-517; the usbfs suspend and resume routines don't do anything. > > Of course it is theoretically possible to add such notifications, but > > they don't exist now. > > > > The message in that earlier thread (which seemed to suggest this was > > possible) was wrong. The person who wrote the message misunderstood > > the code. > > Thanks for the clarification. > > Interestingly it can be done under FreeBSD 8.x. > http://www.unix.com/man-page/FreeBSD/3/libusb20/ > libusb20_dev_set_power_mode() sets the power mode of the USB device. > Valid power modes: > LIBUSB20_POWER_OFF > LIBUSB20_POWER_ON > LIBUSB20_POWER_SAVE > LIBUSB20_POWER_SUSPEND > LIBUSB20_POWER_RESUME > > Under Windows, winusb has some power policy as well. > http://msdn.microsoft.com/en-us/library/ff540309%28v=vs.85%29.aspx > http://msdn.microsoft.com/en-us/library/ff728834%28v=vs.85%29.aspx > > I do not know about Mac OS X but it seems to be possible as well. > http://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/IOKitFundamentals/PowerMgmt/PowerMgmt.html#//apple_ref/doc/uid/TP0000020-BABCCBIJ > > So it might be good for Linux to have similar things as well. They could be added as well. But changing a device's power state is different from getting notifications about power-state changes. Alan Stern |