summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/uhcivar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/uhcivar.h')
-rw-r--r--sys/dev/usb/uhcivar.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/sys/dev/usb/uhcivar.h b/sys/dev/usb/uhcivar.h
index 8169526..9af98b7 100644
--- a/sys/dev/usb/uhcivar.h
+++ b/sys/dev/usb/uhcivar.h
@@ -39,17 +39,21 @@
*/
/*
+ * The framelist:
+ *
* To avoid having 1024 TDs for each isochronous transfer we introduce
- * a virtual frame list. Every UHCI_VFRAMELIST_COUNT entries in the real
- * frame list points to a non-active TD. These, in turn, which form the
- * starts of the virtual frame list. This also has the advantage that it
- * simplifies linking in/out TD/QH in the schedule.
- * Furthermore, initially each of the inactive TDs point to an inactive
- * QH that forms the start of the interrupt traffic for that slot.
- * Each of these QHs point to the same QH that is the start of control
- * traffic.
+ * a virtual frame list. Every UHCI_VFRAMELIST_COUNT'th entry in the real
+ * frame list points to a non-active TD. This TD is
+ * UHCI_FRAMELIST_COUNT/UHCI_VFRAMELIST_COUNT times the start of the
+ * virtual frame list for a queue of isochroneous transfers.
+ *
+ * The last isochroneous transfer in the list points to a QH for the
+ * interrupt transfer in that timeslot. The QHs for interrupt transfers
+ * all point to the single QH for control transfers, which in turn
+ * points at the QH for control transfers.
*
- * UHCI_VFRAMELIST_COUNT should be a power of 2 and <= UHCI_FRAMELIST_COUNT.
+ * UHCI_VFRAMELIST_COUNT should be a power of 2 and UHCI_FRAMELIST_COUNT
+ * should be a multiple of UHCI_VFRAMELIST_COUNT.
*/
#define UHCI_VFRAMELIST_COUNT 128
OpenPOWER on IntegriCloud