Am Donnerstag, 3. April 2008 10:53:53 schrieb Stefan Schweizer: > > On second thought, this should be fixed by usb persist if the appletouch > > driver supported reset_resume. Would you be willing to test a kernel patch > > that implements reset_resume in the appletouch driver? > > Sure, I would love to have this fixed :-) Hi, here I have another test request. This patch on top of the earlier patch implements autosuspend for the appletouch driver. Can you try it? You also need to activate it as described in Documentation/usb/power-management.txt Regards Oliver --- --- linux-2.6.25-rc7-work/drivers/input/mouse/appletouch.c.alt 2008-04-03 12:46:06.000000000 +0200 +++ linux-2.6.25-rc7-work/drivers/input/mouse/appletouch.c 2008-04-03 12:46:24.000000000 +0200 @@ -572,16 +572,26 @@ exit: static int atp_open(struct input_dev *input) { struct atp *dev = input_get_drvdata(input); + int rv; mutex_lock(&dev->lock); - if (usb_submit_urb(dev->urb, GFP_KERNEL)) { - mutex_unlock(&dev->lock); - return -EIO; - } + + rv = usb_autopm_get_interface(dev->intf); + if ( rv < 0) + goto err_out; + + rv = usb_submit_urb(dev->urb, GFP_KERNEL); + if (rv < 0) + goto err_put; dev->open = 1; + dev->intf->needs_remote_wakeup = 1; + +err_put: + usb_autopm_put_interface(dev->intf); +err_out: mutex_unlock(&dev->lock); - return 0; + return rv; } static void atp_close(struct input_dev *input) @@ -592,6 +602,7 @@ static void atp_close(struct input_dev * usb_kill_urb(dev->urb); cancel_work_sync(&dev->work); dev->open = 0; + dev->intf->needs_remote_wakeup = 0; mutex_unlock(&dev->lock); } -- 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