On Thu, 15 Jan 2009, Stefan Lippers-Hollmann wrote: > Please consider adding the following patch, referring to > http://bugzilla.kernel.org/show_bug.cgi?id=12301 > > commit 2caf7fcdb8532045680f06b67b9e63f0c9613aaa > Author: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Date: Wed Dec 31 11:31:33 2008 -0500 > > USB: re-enable interface after driver unbinds > > This patch (as1197) fixes an error introduced recently. Since a > significant number of devices can't handle Set-Interface requests, we > no longer call usb_set_interface() when a driver unbinds from an > interface, provided the interface is already in altsetting 0. However > the interface still does get disabled, and the call to > usb_set_interface() was the only thing re-enabling it. Since the > interface doesn't get re-enabled, further attempts to use it fail. > > So the patch adds a call to usb_enable_interface() when a driver > unbinds and the interface is in altsetting 0. For this to work > right, the interface's endpoints have to be re-enabled but their > toggles have to be left alone. Therefore an additional argument is > added to usb_enable_endpoint() and usb_enable_interface(), a flag > indicating whether or not the endpoint toggles should be reset. > > This is a forward-ported version of a patch which fixes Bugzilla > #12301. > > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Reported-by: David Roka <roka@xxxxxxxx> > Reported-by: Erik Ekman <erik@xxxxxxx> > Tested-by: Erik Ekman <erik@xxxxxxx> > Tested-by: Alon Bar-Lev <alon.barlev@xxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx> > > This patch seems to fix other USB related issues in 2.6.28 as well, for > example: > - random failures to boot from usb-storage (sometimes it works, sometimes > it's slower to detect the rootfs, sometimes it fails alltogether) > - problems to detect USB scanners (Epson snapscan (3490), invoking xsane > the first time fails to detect the scanner, the second time the scanner > warms up, but fails to get detected by xsane, the third time it finally > works - sometimes it works directly). > - issues to connect a ZyDAS zd1211rw based USB wlan stick through wpa2psk > with wpasupplicant. > > Adding this patch (slightly backported to 2.6.28) seems to fix these issues > reliably. Rediff/ backport below, tested under the circumstances above and > hopefully correct. It turns out that this patch isn't sufficient. Additional changes are needed, as posted here: http://marc.info/?l=linux-usb&m=123196296431175&w=2 In principle these two patches should be combined into a single one. Unfortunately the new patch has not yet even been submitted for mainline, let alone accepted, so it can't go into a stable kernel. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html