patch-2.3.14 linux/drivers/usb/README.ohci_hcd
Next file: linux/drivers/usb/audio.c
Previous file: linux/drivers/usb/Makefile
Back to the patch index
Back to the overall index
- Lines: 84
- Date:
Wed Aug 18 16:22:23 1999
- Orig file:
v2.3.13/linux/drivers/usb/README.ohci_hcd
- Orig date:
Mon May 10 10:18:34 1999
diff -u --recursive --new-file v2.3.13/linux/drivers/usb/README.ohci_hcd linux/drivers/usb/README.ohci_hcd
@@ -1,13 +1,13 @@
The OHCI HCD layer is a simple but nearly complete implementation of what the
USB people would call a HCD for the OHCI.
- (ISO comming soon, Bulk disabled, INT u. CTRL transfers enabled)
+ (ISO comming soon, Bulk, INT u. CTRL transfers enabled)
It is based on Linus Torvalds UHCI code and Gregory Smith OHCI fragments (0.03 source tree).
The layer (functions) on top of it, is for interfacing to the alternate-usb device-drivers.
- Roman Weissgaerber <weissg@vienna.at>
-
+ * v4.0 1999/08/18 removed all dummy eds, unlink unused eds, code cleanup, bulk transfers
* v2.1 1999/05/09 ep_addr correction, code cleanup
* v0.2.0 1999/05/04
* everything has been moved into 2 files (ohci-hcd.c, ohci-hub-root.c and headers)
@@ -21,16 +21,14 @@
* v0.1.0 1999/04/27 initial release
to remove the module try:
-killall root-hub
-:
rmmod usb-ohci-hcd
Features:
- virtual root hub, all basic hub descriptors and commands (state: complete)
this is an option now (v0.2.0)
#define CONFIG_USB_OHCI_VROOTHUB includes the virtual hub code, (VROOTHUB)
- default is without.
- (at the moment: the Virtual Root Hub option is not recommended)
+ default is with.
+ (at the moment: the Virtual Root Hub is included automatically)
files: ohci-root-hub.c, ohci-root-hub.h
@@ -41,6 +39,7 @@
In the HCD layer the EDs has to be allocated manually either by calling a subroutine
or by sending a USB root hub vendor specific command to the virtual root hub.
At the alternate linux usb stack EDs will be added (allocated) at their first use.
+ ED will be unlinked from the HC chains if they are not bussy.
files: ohci-hcd.c ohci-hcd.h
routines: (do not use for drivers, use the top layer alternate usb commands instead)
@@ -49,10 +48,10 @@
int interval, int load, f_handler handler, int ep_size, int speed)
adds an endpoint, (if the endpoint already exists some parameters will be updated)
- int usb_ohci_rm_ep(struct usb_ohci_ed *ed, struct ohci * ohci)
+ int usb_ohci_rm_ep( )
removes an endpoint and all pending TDs of that EP
- usb_ohci_rm_function( struct ohci * ohci, union ep_addr_ ep_addr)
+ usb_ohci_rm_function( )
removes all Endpoints of a function (device)
- Transfer Descriptors (TD): handling and allocation of TDs is transparent to the upper layers
@@ -62,7 +61,7 @@
There is one basic command for all types of bus transfers (INT, BULK, ISO, CTRL):
- int ohci_trans_req(struct ohci * ohci, int ep_addr, int ctrl_len, void *ctrl, void * data, int data_len, __OHCI_BAG lw0, __OHCI_BAG lw1)
+ int ohci_trans_req(struct ohci * ohci, hcd_ed, int ctrl_len, void *ctrl, void * data, int data_len, __OHCI_BAG lw0, __OHCI_BAG lw1)
CTRL: ctrl, ctrl_len ... cmd buffer
data, data_len ... data buffer (in or out)
@@ -95,18 +94,5 @@
- Done list handling: returns the requests (callback f_handler in ED) and does
some error handling, root-hub request dequeuing
(files: ohci-done-list.c in ohci-hcd.c now(v0.2.0))
-
-ep_addr union or int is for addressing devices&endpoints:
-__u8 ep_addr.bep.ep ... bit 3..0 endpoint address
- bit 4 0
- bit 6,5 type: eg. 10 CTRL, 11 BULK, 01 INT, 00 ISO
- bit 7 direction 1 IN, 0 OUT
-
-__u8 ep_addr.bep.fa ... bit 6..0 function address
- bit 7 0
-
-(__u8 ep_addr.bep.hc ... host controller nr) not used
-(__u8 ep_addr.bep.host ... host nr) not used
-
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)