Re: [PATCH v2] Input: bcm5974 - Fix USB autosuspend

From: Henrik Rydberg
Date: Mon Dec 19 2011 - 15:15:46 EST


On Mon, Dec 19, 2011 at 06:42:08PM +0100, Oliver Neukum wrote:
> Am Montag, 19. Dezember 2011, 18:02:03 schrieb Henrik Rydberg:
> > static int bcm5974_suspend(struct usb_interface *iface, pm_message_t message)
> > @@ -870,6 +884,9 @@ static int bcm5974_probe(struct usb_interface *iface,
> > dev->tp_data, dev->cfg.tp_datalen,
> > bcm5974_irq_trackpad, dev, 1);
> >
> > + /* Required for autosuspend */
> > + iface->needs_remote_wakeup = 1;
> > +
> > /* create bcm5974 device */
> > usb_make_path(udev, dev->phys, sizeof(dev->phys));
> > strlcat(dev->phys, "/input0", sizeof(dev->phys));
>
> It is not nice to set needs_remote_wakeup on suspend() because
> it influences the decision of usbcore to suspend at all, in particular
> manually set quirks will not be fully honored if you do it this way.
> In addition it will never be reset, even as the device is closed.
>
> Please set it in open() and clear it in close()

Oliver: thanks for the advice, and thanks for the review.

Matthew: There seems to be a problem with the hardware wake-up in
response to short taps on the trackpad. Too much of a regression to be
acceptable, I am afraid. Unless this laptop (MBA 3.1) turns out to be
a special case, I think we will have to let this patch rest.

Thanks,
Henrik
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/