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_ctlpkts; 37 u32 tx_ctlerrs; 38 u32 rx_ctlpkts; 39 u32 rx_ctlerrs; 40 }; 41 42 struct brcmf_usbdev { 43 struct brcmf_bus *bus; 44 struct brcmf_usbdev_info *devinfo; 45 enum brcmf_usb_state state; 46 struct brcmf_stats stats; 47 int ntxq, nrxq, rxsize; 48 u32 bus_mtu; 49 int devid; 50 int chiprev; /* chip revsion number */ 51 }; 52 53 /* IO Request Block (IRB) */ 54 struct brcmf_usbreq { 55 struct list_head list; 56 struct brcmf_usbdev_info *devinfo; 57 struct urb *urb; 58 struct sk_buff *skb; 59 }; 60 61 #endif /* BRCMFMAC_USB_H */ 62