aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2008-12-25 09:15:09 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2009-02-09 14:19:47 -0500
commitef84e4055f3561495c4c0e0dfb0b9f4a6e20479d (patch)
tree7cc78d2b6d7367f7dd7ec6bcf15863d79e9aa772 /drivers/usb/gadget
parent2247818a329687f30d1e5c3a62efc33d07c47522 (diff)
USB: fsl_qe_udc: Fix disconnects reporting during bus reset
Freescale QE UDC controllers can't report the "port change" states, so the only way to handle disconnects is to process bus reset interrupts. The bus reset can take some time, that is, few irqs. Gadgets may print the disconnection events, and this causes few repetitive messages in the kernel log. This patch fixes the issue by using the usb_state machine, if the usb controller has been already reset, just quit the reset irq early. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 1319f8f7acba..7a820a3b4acd 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2161,6 +2161,9 @@ static int reset_irq(struct qe_udc *udc)
2161{ 2161{
2162 unsigned char i; 2162 unsigned char i;
2163 2163
2164 if (udc->usb_state == USB_STATE_DEFAULT)
2165 return 0;
2166
2164 qe_usb_disable(); 2167 qe_usb_disable();
2165 out_8(&udc->usb_regs->usb_usadr, 0); 2168 out_8(&udc->usb_regs->usb_usadr, 0);
2166 2169