diff options
author | hselasky <hselasky@FreeBSD.org> | 2010-10-04 23:18:05 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2010-10-04 23:18:05 +0000 |
commit | f58df490d49462ae839658025d0adc79cf5848ad (patch) | |
tree | c082c15f2b4af936b99eda2cd4c67777fdf391ee /sys/dev/usb/usb_transfer.h | |
parent | cacc63611c920df4de9b0e17b85172a00c979e75 (diff) | |
download | FreeBSD-src-f58df490d49462ae839658025d0adc79cf5848ad.zip FreeBSD-src-f58df490d49462ae839658025d0adc79cf5848ad.tar.gz |
This commit adds full support for USB 3.0 devices in host and device
mode in the USB core. The patch mostly consists of updating the USB
HUB code to support USB 3.0 HUBs. This patch also add some more USB
controller methods to support more active-alike USB controllers like
the XHCI which needs to be informed about various device state events.
USB 3.0 HUBs are not tested yet, due to lack of hardware, but are
believed to work.
After this update the initial device descriptor is only read twice
when we know that the bMaxPacketSize is too small for a single packet
transfer of this descriptor.
Approved by: thompsa (mentor)
Diffstat (limited to 'sys/dev/usb/usb_transfer.h')
-rw-r--r-- | sys/dev/usb/usb_transfer.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_transfer.h b/sys/dev/usb/usb_transfer.h index 2c5fe6f..71157ca 100644 --- a/sys/dev/usb/usb_transfer.h +++ b/sys/dev/usb/usb_transfer.h @@ -101,7 +101,7 @@ struct usb_setup_params { usb_frlength_t bufsize; usb_frlength_t bufsize_max; - uint16_t hc_max_frame_size; + uint32_t hc_max_frame_size; uint16_t hc_max_packet_size; uint8_t hc_max_packet_count; enum usb_dev_speed speed; @@ -114,6 +114,7 @@ struct usb_setup_params { uint8_t usbd_transfer_setup_sub_malloc(struct usb_setup_params *parm, struct usb_page_cache **ppc, usb_size_t size, usb_size_t align, usb_size_t count); +void usb_dma_delay_done_cb(struct usb_xfer *); void usb_command_wrapper(struct usb_xfer_queue *pq, struct usb_xfer *xfer); void usbd_pipe_enter(struct usb_xfer *xfer); @@ -124,6 +125,8 @@ void usbd_transfer_enqueue(struct usb_xfer_queue *pq, struct usb_xfer *xfer); void usbd_transfer_setup_sub(struct usb_setup_params *parm); void usbd_ctrl_transfer_setup(struct usb_device *udev); +void usbd_clear_stall_locked(struct usb_device *udev, + struct usb_endpoint *ep); void usbd_clear_data_toggle(struct usb_device *udev, struct usb_endpoint *ep); usb_callback_t usbd_do_request_callback; |