On Wed, 31 Jan 2007, Oliver Neukum wrote: > In fact it should do this to all devices which are HID, claimed by the > input layer and support remote wakeup.
>From a quick look, in addition to Alan's comments, it seems to me that you don't handle a case in which the hid driver decides to send an output report to the suspended device. A first example that comes to mind - suppose that you have two keyboards, at least one of them being HID. Now when the timer expires, the HID keyboard will be suspended. Then when you hit a capslock/numlock/... (basically anything corresponding to the EV_LED event) on the second (non-suspended) one, you will get errors from hid_submit_ctrl(), as it will try to deliver a report to the suspended device and it will of course fail to do so. > +static ssize_t set_idle_time(struct device *dev, struct device_attribute > *attr, const char *buf, size_t count) > +{ > + struct usb_interface *intf = to_usb_interface(dev); \ > + struct hid_device *hh = usb_get_intfdata(intf); > + struct usbhid_device *uh = hh->driver_data; > + int old = uh->idle_time; > + int temp = simple_strtoul(buf, NULL, 10); > + > + spin_lock_irq(&idle_guard); > + uh->idle_time = temp; > + spin_unlock_irq(&idle_guard); > + > + return count; > +} You declare and initialize local old variable here, but never use it. Thanks, -- Jiri Kosina ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel