diff options
author | n_hibma <n_hibma@FreeBSD.org> | 1999-11-17 22:33:51 +0000 |
---|---|---|
committer | n_hibma <n_hibma@FreeBSD.org> | 1999-11-17 22:33:51 +0000 |
commit | aeb2d2626b24c89dbb68adb9caebd10bbe02dd43 (patch) | |
tree | 4ffabed555c86f3e004db50f4d745f46d25b77c9 /sys/dev/usb/umass.c | |
parent | a586d3a066b64caa068a9a83440201f39e4d6677 (diff) | |
download | FreeBSD-src-aeb2d2626b24c89dbb68adb9caebd10bbe02dd43.zip FreeBSD-src-aeb2d2626b24c89dbb68adb9caebd10bbe02dd43.tar.gz |
Synchronisation with NetBSD as of 1999/11/16:
Cleaning up the code:
- Declare many functions static
- Change variable names to make them more self explanatory
- Change usbd_request_handle -> usbd_xfer_handle
- Syntactical changes
- Remove some unused code
- Other KNF changes
Interrupt context handling
- Change delay to usbd_delay_ms were possible (takes polling mode into
account)
- Change detection mechanism for interrupt context
Add support for pre-allocation DMA-able memory by device driver
Add preliminary support for isochronous to the UHCI driver (not for OHCI
yet).
usb.c, uhci.c, ohci.c
- Initial attempt at detachable USB host controllers
- Handle the use_polling flag with a lttle more care and only set it if
we are cold booting.
usb.c, uhci.c ohci.c, usbdi.c usbdi_util.c usb_subr.c
- Make sure an aborted pipe is marked as not running.
- Start queued request in the right order.
- Insert some more DIAGNOSTIC sanity checks.
- Remove (almost) unused definitions USBD_XFER_OUT and USBD_XFER_IN.
usb.c, usb_subr.c
- Add an event mechanism so that a userland process can watch devices
come and go.
ohci.c
- Handle the case when a USB transfer is so long that it crosses two
page (4K) boundaries. OHCI cannot do that with a single TD so we make
a chain.
ulpt.c
- Use a bigger buffer when transferring data.
- Pre-allocate the DMA buffer. This makes the driver slightly more
efficient.
- Comment out the GET_DEVICE_ID code, because for some unknown reason it
causes printing to fail sometimes.
usb.h
- Add a macro to extract the isoc type.
- Add a macro to check whether the routine has been entered after splusb
and if not, complain.
usbdi.c
- Fix a glitch in dequeueing and aborting requests on interrupt pipes.
- Add a flag in the request to determine if the data copying is done by
the driver or the usbdi layer.
Diffstat (limited to 'sys/dev/usb/umass.c')
-rw-r--r-- | sys/dev/usb/umass.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/dev/usb/umass.c b/sys/dev/usb/umass.c index 42fb25b..867d049 100644 --- a/sys/dev/usb/umass.c +++ b/sys/dev/usb/umass.c @@ -288,7 +288,7 @@ umass_usb_transfer(usbd_interface_handle iface, usbd_pipe_handle pipe, void *buf, int buflen, int flags, int *xfer_size) { usbd_device_handle dev; - usbd_request_handle reqh; + usbd_xfer_handle xfer; usbd_private_handle priv; void *buffer; int size; @@ -300,28 +300,28 @@ umass_usb_transfer(usbd_interface_handle iface, usbd_pipe_handle pipe, usbd_interface2device_handle(iface, &dev); - reqh = usbd_alloc_request(dev); - if (!reqh) { + xfer = usbd_alloc_request(dev); + if (!xfer) { DPRINTF(UDMASS_USB, ("Not enough memory\n")); return USBD_NOMEM; } - (void) usbd_setup_request(reqh, pipe, 0, buf, buflen, + (void) usbd_setup_request(xfer, pipe, 0, buf, buflen, flags, 3000 /*ms*/, NULL); - err = usbd_sync_transfer(reqh); + err = usbd_sync_transfer(xfer); if (err) { DPRINTF(UDMASS_USB, ("transfer failed, %s\n", usbd_errstr(err))); - usbd_free_request(reqh); + usbd_free_request(xfer); return(err); } - usbd_get_request_status(reqh, &priv, &buffer, &size, &err); + usbd_get_request_status(xfer, &priv, &buffer, &size, &err); if (xfer_size) *xfer_size = size; - usbd_free_request(reqh); + usbd_free_request(xfer); return(USBD_NORMAL_COMPLETION); } |