Explorar o código

usb/fsl_qe_udc: clear data toggle on clear halt request

Fix to comply with USB spec.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Li Yang %!s(int64=16) %!d(string=hai) anos
pai
achega
15d5a9acb1
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      drivers/usb/gadget/fsl_qe_udc.c

+ 4 - 0
drivers/usb/gadget/fsl_qe_udc.c

@@ -1815,6 +1815,10 @@ static int qe_ep_set_halt(struct usb_ep *_ep, int value)
 		udc->ep0_state = WAIT_FOR_SETUP;
 		udc->ep0_state = WAIT_FOR_SETUP;
 		udc->ep0_dir = 0;
 		udc->ep0_dir = 0;
 	}
 	}
+
+	/* set data toggle to DATA0 on clear halt */
+	if (value == 0)
+		ep->data01 = 0;
 out:
 out:
 	dev_vdbg(udc->dev, "%s %s halt stat %d\n", ep->ep.name,
 	dev_vdbg(udc->dev, "%s %s halt stat %d\n", ep->ep.name,
 			value ?  "set" : "clear", status);
 			value ?  "set" : "clear", status);