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

From: Oliver Neukum
Date: Mon Dec 19 2011 - 12:40:35 EST


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()

Regards
Oliver
--
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/