usb.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. enum brcmf_usb_state {
  19. BCMFMAC_USB_STATE_DL_PENDING,
  20. BCMFMAC_USB_STATE_DL_DONE,
  21. BCMFMAC_USB_STATE_UP,
  22. BCMFMAC_USB_STATE_DOWN,
  23. BCMFMAC_USB_STATE_PNP_FWDL,
  24. BCMFMAC_USB_STATE_DISCONNECT,
  25. BCMFMAC_USB_STATE_SLEEP
  26. };
  27. enum brcmf_usb_pnp_state {
  28. BCMFMAC_USB_PNP_DISCONNECT,
  29. BCMFMAC_USB_PNP_SLEEP,
  30. BCMFMAC_USB_PNP_RESUME,
  31. };
  32. struct brcmf_stats {
  33. u32 tx_ctlpkts;
  34. u32 tx_ctlerrs;
  35. u32 rx_ctlpkts;
  36. u32 rx_ctlerrs;
  37. };
  38. struct brcmf_usbdev {
  39. struct brcmf_bus *bus;
  40. struct brcmf_usbdev_info *devinfo;
  41. enum brcmf_usb_state state;
  42. struct brcmf_stats stats;
  43. int ntxq, nrxq, rxsize;
  44. u32 bus_mtu;
  45. int devid;
  46. int chiprev; /* chip revsion number */
  47. };
  48. /* IO Request Block (IRB) */
  49. struct brcmf_usbreq {
  50. struct list_head list;
  51. struct brcmf_usbdev_info *devinfo;
  52. struct urb *urb;
  53. struct sk_buff *skb;
  54. };
  55. #endif /* BRCMFMAC_USB_H */