summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjoe <joe@FreeBSD.org>2002-04-07 11:56:19 +0000
committerjoe <joe@FreeBSD.org>2002-04-07 11:56:19 +0000
commit862c145a2f4022581d0f48d585fc6f2f2af3cdbe (patch)
treea6a1e0419e1240583456a51d68d01bca294738a5 /sys
parent2432878dc36b156296fe6bdc9cc48b169b3055e9 (diff)
downloadFreeBSD-src-862c145a2f4022581d0f48d585fc6f2f2af3cdbe.zip
FreeBSD-src-862c145a2f4022581d0f48d585fc6f2f2af3cdbe.tar.gz
MFNetBSD: usbdi.c (1.63), usbdi.h (1.41)
date: 2000/03/02 12:37:51; author: augustss; Use ratecheck() to limit error messages on disconnect. Break out some common functionality. We don't have ratecheck() in our kernel yet, so I've hardcoded usb_ratecheck() to return true always.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/usb/usbdi.c17
-rw-r--r--sys/dev/usb/usbdi.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index 966b8ce..fd65b30 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -1119,6 +1119,23 @@ usb_match_device(const struct usb_devno *tbl, u_int nentries, u_int sz,
return (NULL);
}
+/*
+ * usbd_ratecheck() can limit the number of error messages that occurs.
+ * When a device is unplugged it may take up to 0.25s for the hub driver
+ * to notice it. If the driver continuosly tries to do I/O operations
+ * this can generate a large number of messages.
+ */
+int
+usbd_ratecheck(struct timeval *last)
+{
+#if 0
+ static struct timeval errinterval = { 0, 2500000 }; /* 0.25 s*/
+
+ return (ratecheck(last, &errinterval));
+#endif
+ return (1);
+}
+
#if defined(__FreeBSD__)
int
usbd_driver_load(module_t mod, int what, void *arg)
diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h
index a0593d5..81198c9 100644
--- a/sys/dev/usb/usbdi.h
+++ b/sys/dev/usb/usbdi.h
@@ -177,6 +177,8 @@ usb_endpoint_descriptor_t *usbd_get_endpoint_descriptor
usbd_status usbd_reload_device_desc(usbd_device_handle);
+int usbd_ratecheck(struct timeval *last);
+
/*
* The usb_task structs form a queue of things to run in the USB event
* thread. Normally this is just device discovery when a connect/disconnect
OpenPOWER on IntegriCloud