Hi Manu,
An intern working with us here (thanks Peter!) found a bug.
On Mon, Sep 16, 2013 at 03:10:14PM +0530, Manu Gautam wrote:
> @@ -1569,7 +1573,20 @@ static int ffs_func_eps_enable(struct ffs_function
> *func)
> spin_lock_irqsave(&func->ffs->eps_lock, flags);
> do {
> struct usb_endpoint_descriptor *ds;
> - ds = ep->descs[ep->descs[1] ? 1 : 0];
> + int desc_idx;
> +
> + if (ffs->gadget->speed == USB_SPEED_SUPER)
> + desc_idx = 2;
> + if (ffs->gadget->speed == USB_SPEED_HIGH)
This should be "else if", otherwise if the gadget is superspeed, it will
fall through to the full speed case below and desc_idx will be set to 0,
resulting in FS descriptors being used instead.
> + desc_idx = 1;
> + else
> + desc_idx = 0;
> +
> + ds = ep->descs[desc_idx];
Thanks,
Jack
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html