Skip to content

Commit

Permalink
USB: fsl_qe_udc: Fix disconnects reporting during bus reset
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Anton Vorontsov authored and Greg Kroah-Hartman committed Feb 9, 2009
1 parent 2247818 commit ef84e40
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/usb/gadget/fsl_qe_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2161,6 +2161,9 @@ static int reset_irq(struct qe_udc *udc)
{
unsigned char i;

if (udc->usb_state == USB_STATE_DEFAULT)
return 0;

qe_usb_disable();
out_8(&udc->usb_regs->usb_usadr, 0);

Expand Down

0 comments on commit ef84e40

Please sign in to comment.