diff options
Diffstat (limited to 'drivers/staging/bcm/InterfaceAdapter.h')
| -rw-r--r-- | drivers/staging/bcm/InterfaceAdapter.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/drivers/staging/bcm/InterfaceAdapter.h b/drivers/staging/bcm/InterfaceAdapter.h new file mode 100644 index 00000000000..06a6b18bca4 --- /dev/null +++ b/drivers/staging/bcm/InterfaceAdapter.h @@ -0,0 +1,79 @@ +#ifndef _INTERFACE_ADAPTER_H +#define _INTERFACE_ADAPTER_H + +struct bcm_bulk_endpoint_in { + char *bulk_in_buffer; + size_t bulk_in_size; + unsigned char bulk_in_endpointAddr; + unsigned int bulk_in_pipe; +}; + +struct bcm_bulk_endpoint_out { + unsigned char bulk_out_buffer; + size_t bulk_out_size; + unsigned char bulk_out_endpointAddr; + unsigned int bulk_out_pipe; + /* this is used when int out endpoint is used as bulk out end point */ + unsigned char int_out_interval; +}; + +struct bcm_intr_endpoint_in { + char *int_in_buffer; + size_t int_in_size; + unsigned char int_in_endpointAddr; + unsigned char int_in_interval; + unsigned int int_in_pipe; +}; + +struct bcm_intr_endpoint_out { + char *int_out_buffer; + size_t int_out_size; + unsigned char int_out_endpointAddr; + unsigned char int_out_interval; + unsigned int int_out_pipe; +}; + +struct bcm_usb_tcb { + struct urb *urb; + void *psIntfAdapter; + bool bUsed; +}; + +struct bcm_usb_rcb { + struct urb *urb; + void *psIntfAdapter; + bool bUsed; +}; + +/* + * This is the interface specific Sub-Adapter + * Structure. + */ +struct bcm_interface_adapter { + struct usb_device *udev; + struct usb_interface *interface; + /* Bulk endpoint in info */ + struct bcm_bulk_endpoint_in sBulkIn; + /* Bulk endpoint out info */ + struct bcm_bulk_endpoint_out sBulkOut; + /* Interrupt endpoint in info */ + struct bcm_intr_endpoint_in sIntrIn; + /* Interrupt endpoint out info */ + struct bcm_intr_endpoint_out sIntrOut; + unsigned long ulInterruptData[2]; + struct urb *psInterruptUrb; + struct bcm_usb_tcb asUsbTcb[MAXIMUM_USB_TCB]; + struct bcm_usb_rcb asUsbRcb[MAXIMUM_USB_RCB]; + atomic_t uNumTcbUsed; + atomic_t uCurrTcb; + atomic_t uNumRcbUsed; + atomic_t uCurrRcb; + struct bcm_mini_adapter *psAdapter; + bool bFlashBoot; + bool bHighSpeedDevice; + bool bSuspended; + bool bPreparingForBusSuspend; + struct work_struct usbSuspendWork; +}; + +#endif |
