summary refs log tree commit diff
diff options
context:
space:
mode:
authorLi Yang <leoli@freescale.com>2008-09-24 15:50:27 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-17 14:41:08 -0700
commit15d5a9acb1df1e22a7ba60aaaad758d9d71e5ea7 (patch)
tree1a52edecdcb5a0a540cb94eb7a792f9ba73d5df8
parent928dfa6c625c17d810ae3ee6c73dc37fc4b91bcd (diff)
downloadlinux-15d5a9acb1df1e22a7ba60aaaad758d9d71e5ea7.tar.gz
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>

-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index d9aad6894b3e..1fe8b44787b3 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/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_dir = 0;
 	}
+
+	/* set data toggle to DATA0 on clear halt */
+	if (value == 0)
+		ep->data01 = 0;
 out:
 	dev_vdbg(udc->dev, "%s %s halt stat %d\n", ep->ep.name,
 			value ?  "set" : "clear", status);