Loading...
Note: File does not exist in v6.8.
1#ifndef _INTERFACE_ADAPTER_H
2#define _INTERFACE_ADAPTER_H
3
4struct bcm_bulk_endpoint_in {
5 char *bulk_in_buffer;
6 size_t bulk_in_size;
7 unsigned char bulk_in_endpointAddr;
8 unsigned int bulk_in_pipe;
9};
10
11struct bcm_bulk_endpoint_out {
12 unsigned char bulk_out_buffer;
13 size_t bulk_out_size;
14 unsigned char bulk_out_endpointAddr;
15 unsigned int bulk_out_pipe;
16 /* this is used when int out endpoint is used as bulk out end point */
17 unsigned char int_out_interval;
18};
19
20struct bcm_intr_endpoint_in {
21 char *int_in_buffer;
22 size_t int_in_size;
23 unsigned char int_in_endpointAddr;
24 unsigned char int_in_interval;
25 unsigned int int_in_pipe;
26};
27
28struct bcm_intr_endpoint_out {
29 char *int_out_buffer;
30 size_t int_out_size;
31 unsigned char int_out_endpointAddr;
32 unsigned char int_out_interval;
33 unsigned int int_out_pipe;
34};
35
36struct bcm_usb_tcb {
37 struct urb *urb;
38 void *psIntfAdapter;
39 bool bUsed;
40};
41
42struct bcm_usb_rcb {
43 struct urb *urb;
44 void *psIntfAdapter;
45 bool bUsed;
46};
47
48/*
49 * This is the interface specific Sub-Adapter
50 * Structure.
51 */
52struct bcm_interface_adapter {
53 struct usb_device *udev;
54 struct usb_interface *interface;
55 /* Bulk endpoint in info */
56 struct bcm_bulk_endpoint_in sBulkIn;
57 /* Bulk endpoint out info */
58 struct bcm_bulk_endpoint_out sBulkOut;
59 /* Interrupt endpoint in info */
60 struct bcm_intr_endpoint_in sIntrIn;
61 /* Interrupt endpoint out info */
62 struct bcm_intr_endpoint_out sIntrOut;
63 unsigned long ulInterruptData[2];
64 struct urb *psInterruptUrb;
65 struct bcm_usb_tcb asUsbTcb[MAXIMUM_USB_TCB];
66 struct bcm_usb_rcb asUsbRcb[MAXIMUM_USB_RCB];
67 atomic_t uNumTcbUsed;
68 atomic_t uCurrTcb;
69 atomic_t uNumRcbUsed;
70 atomic_t uCurrRcb;
71 struct bcm_mini_adapter *psAdapter;
72 bool bFlashBoot;
73 bool bHighSpeedDevice;
74 bool bSuspended;
75 bool bPreparingForBusSuspend;
76 struct work_struct usbSuspendWork;
77};
78
79#endif