On Fri, 2 Jan 2009, Mark Lord wrote:..
..This patch, below, FIXES it for me, by undoing a change from 2.6.28.
Signed-off-by: Mark Lord <mlord@xxxxxxxxx>
--- old/drivers/usb/core/driver.c 2008-12-24 18:26:37.000000000 -0500
+++ linux/drivers/usb/core/driver.c 2009-01-02 04:34:11.000000000 -0500
@@ -279,9 +279,7 @@
* altsetting means creating new endpoint device entries).
* When either of these happens, defer the Set-Interface.
*/
- if (intf->cur_altsetting->desc.bAlternateSetting == 0)
- ; /* Already in altsetting 0 so skip Set-Interface */
- else if (!error && intf->dev.power.status == DPM_ON)
+ if (!error && intf->dev.power.status == DPM_ON)
usb_set_interface(udev, intf->altsetting[0].
desc.bInterfaceNumber, 0);
else
For a proper fix, see
http://bugzilla.kernel.org/show_bug.cgi?id=12301#c13
A corresponding patch has been posted to linux-usb here:
http://marc.info/?l=linux-usb&m=123074111001861&w=2
I have no idea what's going on with the 64-bit vs. 32-bit stuff, though...