On Wednesday 28 December 2005 20:49, Alan Stern wrote: > On Wed, 28 Dec 2005, Dmitry Torokhov wrote: > > > Hi, > > > > I have a question regarding PM and USB input devices. Most if them do > > usb_submit_urb() from their ->open() routine and usb_kill_urb() from > > their ->suspend(). This all works quite well for system-wide PM event > > when userspace is frozen and there is noone to call ->open(). So what > > about run-time power management. What kind of locking would USB need? > > Will ->open() routine need to resume device somehow? Fail if device > > suspended? > > I don't think there is any precedent for this sort of policy decision in > Linux. So now's your chance to affect the future course of kernel > development! :-) > > There are three obvious possible choices: > > 1. open() of a suspended device fails; > > 2. open() of a suspended device succeeds but actual input operations > fail or block; > > 3. open() of a suspended device automatically resumes the device. > > 1 doesn't sound right. If the device is already open, you don't fail a > suspend call. So why should you fail an open call just because the device > is suspended? If you really do want the effect of 1, the correct way to > do it is to unbind the driver from the device. > > Both 2 and 3 are workable. At the moment I don't have any strong feelings > as to which is better. It's possible that the locking needed to implement > 3 will be difficult, but I haven't thought over the matter so I'm not > sure. >
My preference would be 3, especially if USB core itself would resume any suspeded device for which an URB is submitted. In this case I won't have to change anything in input drivers ;) -- Dmitry ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
