2
* Copyright (c) 2010 Atheros Communications Inc.
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.
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
11
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20
#define IS_AR7010_DEVICE(_v) (((_v) == AR9280_USB) || ((_v) == AR9287_USB))
22
#define AR9271_FIRMWARE 0x501000
23
#define AR9271_FIRMWARE_TEXT 0x903000
24
#define AR7010_FIRMWARE_TEXT 0x906000
26
#define FIRMWARE_DOWNLOAD 0x30
27
#define FIRMWARE_DOWNLOAD_COMP 0x31
29
#define ATH_USB_RX_STREAM_MODE_TAG 0x4e00
30
#define ATH_USB_TX_STREAM_MODE_TAG 0x697e
32
/* FIXME: Verify these numbers (with Windows) */
33
#define MAX_TX_URB_NUM 8
34
#define MAX_TX_BUF_NUM 1024
35
#define MAX_TX_BUF_SIZE 32768
36
#define MAX_TX_AGGR_NUM 20
38
#define MAX_RX_URB_NUM 8
39
#define MAX_RX_BUF_SIZE 16384
40
#define MAX_PKT_NUM_IN_TRANSFER 10
42
#define MAX_REG_OUT_URB_NUM 1
43
#define MAX_REG_OUT_BUF_NUM 8
45
#define MAX_REG_IN_BUF_SIZE 64
47
/* USB Endpoint definition */
48
#define USB_WLAN_TX_PIPE 1
49
#define USB_WLAN_RX_PIPE 2
50
#define USB_REG_IN_PIPE 3
51
#define USB_REG_OUT_PIPE 4
53
#define HIF_USB_MAX_RXPIPES 2
54
#define HIF_USB_MAX_TXPIPES 4
61
struct sk_buff_head skb_queue;
62
struct hif_device_usb *hif_dev;
63
struct list_head list;
66
#define HIF_USB_TX_STOP BIT(0)
67
#define HIF_USB_TX_FLUSH BIT(1)
73
struct sk_buff_head tx_skb_queue;
74
struct list_head tx_buf;
75
struct list_head tx_pending;
81
struct hif_device_usb *hif_dev;
84
#define HIF_USB_START BIT(0)
86
struct hif_device_usb {
88
struct usb_device *udev;
89
struct usb_interface *interface;
90
const struct firmware *firmware;
91
struct htc_target *htc_handle;
93
struct urb *reg_in_urb;
94
struct usb_anchor regout_submitted;
95
struct usb_anchor rx_submitted;
96
struct sk_buff *remain_skb;
103
u8 flags; /* HIF_USB_* */
106
int ath9k_hif_usb_init(void);
107
void ath9k_hif_usb_exit(void);
109
#endif /* HTC_USB_H */