aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/bcm/InterfaceAdapter.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/bcm/InterfaceAdapter.h')
-rw-r--r--drivers/staging/bcm/InterfaceAdapter.h79
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