USB: mxc: gadget: Fix bitfield for calculating maximum packet size
authorDinh Nguyen <Dinh.Nguyen@freescale.com>
Tue, 4 May 2010 15:03:01 +0000 (10:03 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 May 2010 20:21:40 +0000 (13:21 -0700)
The max packet length bit mask used for isochronous endpoints
should be 0x7FF instead of 0x8FF. 0x8FF will actually clear
higher-order bits in the max packet length field.

This patch applies to 2.6.34-rc6.

Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/fsl_udc_core.c

index fa3d142ba64d966aa4bf454a4f2a55480970bc4f..08a9a62a39e34910ecbcb3fdb8381c044fa851e4 100644 (file)
@@ -489,7 +489,7 @@ static int fsl_ep_enable(struct usb_ep *_ep,
        case USB_ENDPOINT_XFER_ISOC:
                /* Calculate transactions needed for high bandwidth iso */
                mult = (unsigned char)(1 + ((max >> 11) & 0x03));
-               max = max & 0x8ff;      /* bit 0~10 */
+               max = max & 0x7ff;      /* bit 0~10 */
                /* 3 transactions at most */
                if (mult > 3)
                        goto en_done;