summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorLi Yang <leoli@freescale.com>2008-09-24 09:50:27 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-17 23:41:08 +0200
commit15d5a9acb1df1e22a7ba60aaaad758d9d71e5ea7 (patch)
tree1a52edecdcb5a0a540cb94eb7a792f9ba73d5df8 /drivers/usb
parentusb/fsl_qe_udc: fix response to get status request (diff)
downloadlinux-15d5a9acb1df1e22a7ba60aaaad758d9d71e5ea7.tar.xz
linux-15d5a9acb1df1e22a7ba60aaaad758d9d71e5ea7.zip
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>
Diffstat (limited to 'drivers/usb')
-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);