brcm80211: fmac: add USB support for bcm43235/6/8 chipsets
[deliverable/linux.git] / drivers / net / wireless / brcm80211 / brcmfmac / usb.h
1 /*
2 * Copyright (c) 2011 Broadcom Corporation
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16 #ifndef BRCMFMAC_USB_H
17 #define BRCMFMAC_USB_H
18
19 enum brcmf_usb_state {
20 BCMFMAC_USB_STATE_DL_PENDING,
21 BCMFMAC_USB_STATE_DL_DONE,
22 BCMFMAC_USB_STATE_UP,
23 BCMFMAC_USB_STATE_DOWN,
24 BCMFMAC_USB_STATE_PNP_FWDL,
25 BCMFMAC_USB_STATE_DISCONNECT,
26 BCMFMAC_USB_STATE_SLEEP
27 };
28
29 enum brcmf_usb_pnp_state {
30 BCMFMAC_USB_PNP_DISCONNECT,
31 BCMFMAC_USB_PNP_SLEEP,
32 BCMFMAC_USB_PNP_RESUME,
33 };
34
35 struct brcmf_stats {
36 u32 tx_errors;
37 u32 tx_packets;
38 u32 tx_multicast;
39 u32 tx_ctlpkts;
40 u32 tx_ctlerrs;
41 u32 tx_dropped;
42 u32 tx_flushed;
43 u32 rx_errors;
44 u32 rx_packets;
45 u32 rx_multicast;
46 u32 rx_ctlpkts;
47 u32 rx_ctlerrs;
48 u32 rx_dropped;
49 u32 rx_flushed;
50
51 };
52
53 struct brcmf_usb_attrib {
54 int bustype;
55 int vid;
56 int pid;
57 int devid;
58 int chiprev; /* chip revsion number */
59 int mtu;
60 int nchan; /* Data Channels */
61 int has_2nd_bulk_in_ep;
62 };
63
64 struct brcmf_usbdev_info;
65
66 struct brcmf_usbdev {
67 struct brcmf_bus *bus;
68 struct brcmf_usbdev_info *devinfo;
69 enum brcmf_usb_state state;
70 struct brcmf_stats stats;
71 int ntxq, nrxq, rxsize;
72 u32 bus_mtu;
73 struct brcmf_usb_attrib attrib;
74 };
75
76 /* IO Request Block (IRB) */
77 struct brcmf_usbreq {
78 struct list_head list;
79 struct brcmf_usbdev_info *devinfo;
80 struct urb *urb;
81 struct sk_buff *skb;
82 };
83
84 #endif /* BRCMFMAC_USB_H */
This page took 0.039043 seconds and 5 git commands to generate.