summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Thoumie <flz@FreeBSD.org>2005-12-11 20:14:38 +0000
committerFlorent Thoumie <flz@FreeBSD.org>2005-12-11 20:14:38 +0000
commit17e41731b79f6a2652a6f3946a0c97a7eced6cf7 (patch)
tree51a05017bde7f81346d304628c14f01ec40122f8
parentaf7f99131d2452e4c4e538668f4c361cf0cf7820 (diff)
Notes
-rw-r--r--sys/dev/usb/usb_quirks.c4
-rw-r--r--sys/dev/usb/usb_quirks.h4
-rw-r--r--sys/dev/usb/usb_subr.c2
3 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/usb/usb_quirks.c b/sys/dev/usb/usb_quirks.c
index fd05cfffa0e2..131185c721c8 100644
--- a/sys/dev/usb/usb_quirks.c
+++ b/sys/dev/usb/usb_quirks.c
@@ -79,8 +79,8 @@ Static const struct usbd_quirk_entry {
{ USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, 0x009, { UQ_AU_NO_FRAC }},
{ USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE,
0x100, { UQ_AU_INP_ASYNC }},
- { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD3G, ANY, { UQ_BROKEN_IPOD }},
- { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPODVIDEO, ANY, { UQ_BROKEN_IPOD }},
+ { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD3G, ANY, { UQ_NO_OPEN_CLEARSTALL }},
+ { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPODVIDEO, ANY, { UQ_NO_OPEN_CLEARSTALL }},
/* XXX These should have a revision number, but I don't know what they are. */
{ USB_VENDOR_HP, USB_PRODUCT_HP_895C, ANY, { UQ_BROKEN_BIDIR }},
{ USB_VENDOR_HP, USB_PRODUCT_HP_880C, ANY, { UQ_BROKEN_BIDIR }},
diff --git a/sys/dev/usb/usb_quirks.h b/sys/dev/usb/usb_quirks.h
index 6588ec0155ba..04ba3979d51b 100644
--- a/sys/dev/usb/usb_quirks.h
+++ b/sys/dev/usb/usb_quirks.h
@@ -54,7 +54,9 @@ struct usbd_quirks {
#define UQ_AU_INP_ASYNC 0x0800 /* input is async despite claim of adaptive */
#define UQ_ASSUME_CM_OVER_DATA 0x1000 /* modem device breaks on cm over data */
#define UQ_BROKEN_BIDIR 0x2000 /* printer has broken bidir mode */
-#define UQ_BROKEN_IPOD 0x4000 /* iPod has something broken */
+#define UQ_NO_OPEN_CLEARSTALL 0x4000 /* don't usbd_clear_endpoint_stall() */
+ /* in usbd_setup_pipe() */
+
};
extern const struct usbd_quirks usbd_no_quirk;
diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c
index d77ebc0c1ce3..ca573b622293 100644
--- a/sys/dev/usb/usb_subr.c
+++ b/sys/dev/usb/usb_subr.c
@@ -779,7 +779,7 @@ usbd_setup_pipe(usbd_device_handle dev, usbd_interface_handle iface,
return (err);
}
- if (!(dev->quirks->uq_flags & UQ_BROKEN_IPOD)) {
+ if (!(dev->quirks->uq_flags & UQ_NO_OPEN_CLEARSTALL)) {
/* Clear any stall and make sure DATA0 toggle will be used next. */
if (UE_GET_ADDR(ep->edesc->bEndpointAddress) != USB_CONTROL_ENDPOINT) {
err = usbd_clear_endpoint_stall(p);