summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/atmegadci.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2009-04-05 18:18:25 +0000
committerthompsa <thompsa@FreeBSD.org>2009-04-05 18:18:25 +0000
commit34883831ec3d5073196c6ee0d5211a3cdc65fa99 (patch)
tree9a4a63c3a542ded2bab376dec545c7efa036909c /sys/dev/usb/controller/atmegadci.c
parentda86d5814edc3c040ec8b32c0433bc58f79a0d02 (diff)
downloadFreeBSD-src-34883831ec3d5073196c6ee0d5211a3cdc65fa99.zip
FreeBSD-src-34883831ec3d5073196c6ee0d5211a3cdc65fa99.tar.gz
MFp4 //depot/projects/usb@159674
Fix more corner cases around reception of SETUP packets. Submitted by: Hans Petter Selasky
Diffstat (limited to 'sys/dev/usb/controller/atmegadci.c')
-rw-r--r--sys/dev/usb/controller/atmegadci.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/usb/controller/atmegadci.c b/sys/dev/usb/controller/atmegadci.c
index 1106712..f9261e7 100644
--- a/sys/dev/usb/controller/atmegadci.c
+++ b/sys/dev/usb/controller/atmegadci.c
@@ -306,7 +306,10 @@ not_complete:
ATMEGA_UECONX_STALLRQ);
td->did_stall = 1;
}
-
+ if (temp & ATMEGA_UEINTX_RXSTPI) {
+ /* clear SETUP packet interrupt */
+ ATMEGA_WRITE_1(sc, ATMEGA_UEINTX, ~ATMEGA_UEINTX_RXSTPI);
+ }
/* we only want to know if there is a SETUP packet */
ATMEGA_WRITE_1(sc, ATMEGA_UEIENX, ATMEGA_UEIENX_RXSTPE);
return (1); /* not complete */
OpenPOWER on IntegriCloud