--- a/drivers/usb/host/ehci-q.c	2007-06-11 11:37:06.000000000 -0700
+++ b/drivers/usb/host/ehci-q.c	2008-02-05 19:46:08.000000000 -0800
@@ -751,7 +751,7 @@
 			info2 |= (EHCI_TUNE_MULT_HS << 30);
 		} else if (type == PIPE_BULK) {
 			info1 |= (EHCI_TUNE_RL_HS << 28);
-			info1 |= 512 << 16;	/* usb2 fixed maxpacket */
+			info1 |= ((maxp == 1024) ? 1024 : 512) << 16;	/* usb2 fixed maxpacket */
 			info2 |= (EHCI_TUNE_MULT_HS << 30);
 		} else {		/* PIPE_INTERRUPT */
 			info1 |= max_packet (maxp) << 16;

