Commit | Line | Data |
---|---|---|
4daffe35 AK |
1 | /* |
2 | * This file contains definitions for mwifiex USB interface driver. | |
3 | * | |
65da33f5 | 4 | * Copyright (C) 2012-2014, Marvell International Ltd. |
4daffe35 AK |
5 | * |
6 | * This software file (the "File") is distributed by Marvell International | |
7 | * Ltd. under the terms of the GNU General Public License Version 2, June 1991 | |
8 | * (the "License"). You may use, redistribute and/or modify this File in | |
9 | * accordance with the terms and conditions of the License, a copy of which | |
10 | * is available by writing to the Free Software Foundation, Inc., | |
11 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the | |
12 | * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. | |
13 | * | |
14 | * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE | |
15 | * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE | |
16 | * ARE EXPRESSLY DISCLAIMED. The License provides additional details about | |
17 | * this warranty disclaimer. | |
18 | */ | |
19 | ||
20 | #ifndef _MWIFIEX_USB_H | |
21 | #define _MWIFIEX_USB_H | |
22 | ||
23 | #include <linux/usb.h> | |
24 | ||
68458ded YAP |
25 | #define USB8XXX_VID 0x1286 |
26 | ||
9e6f3f47 KE |
27 | #define USB8766_PID_1 0x2041 |
28 | #define USB8766_PID_2 0x2042 | |
4daffe35 AK |
29 | #define USB8797_PID_1 0x2043 |
30 | #define USB8797_PID_2 0x2044 | |
eaa3d9fa YAP |
31 | #define USB8801_PID_1 0x2049 |
32 | #define USB8801_PID_2 0x204a | |
ce03966a | 33 | #define USB8997_PID_1 0x2052 |
6d85ef00 | 34 | #define USB8997_PID_2 0x204e |
eaa3d9fa | 35 | |
4daffe35 | 36 | |
68458ded YAP |
37 | #define USB8XXX_FW_DNLD 1 |
38 | #define USB8XXX_FW_READY 2 | |
39 | #define USB8XXX_FW_MAX_RETRY 3 | |
4daffe35 | 40 | |
308fe29e | 41 | #define MWIFIEX_TX_DATA_PORT 2 |
4daffe35 AK |
42 | #define MWIFIEX_TX_DATA_URB 6 |
43 | #define MWIFIEX_RX_DATA_URB 6 | |
44 | #define MWIFIEX_USB_TIMEOUT 100 | |
45 | ||
9e6f3f47 | 46 | #define USB8766_DEFAULT_FW_NAME "mrvl/usb8766_uapsta.bin" |
4daffe35 | 47 | #define USB8797_DEFAULT_FW_NAME "mrvl/usb8797_uapsta.bin" |
eaa3d9fa | 48 | #define USB8801_DEFAULT_FW_NAME "mrvl/usb8801_uapsta.bin" |
6d85ef00 | 49 | #define USB8997_DEFAULT_FW_NAME "mrvl/usb8997_uapsta.bin" |
4daffe35 AK |
50 | |
51 | #define FW_DNLD_TX_BUF_SIZE 620 | |
52 | #define FW_DNLD_RX_BUF_SIZE 2048 | |
53 | #define FW_HAS_LAST_BLOCK 0x00000004 | |
54 | ||
55 | #define FW_DATA_XMIT_SIZE \ | |
56 | (sizeof(struct fw_header) + dlen + sizeof(u32)) | |
57 | ||
58 | struct urb_context { | |
59 | struct mwifiex_adapter *adapter; | |
60 | struct sk_buff *skb; | |
61 | struct urb *urb; | |
62 | u8 ep; | |
63 | }; | |
64 | ||
308fe29e ZL |
65 | struct usb_tx_data_port { |
66 | u8 tx_data_ep; | |
7e4e5d2c | 67 | u8 block_status; |
308fe29e ZL |
68 | atomic_t tx_data_urb_pending; |
69 | int tx_data_ix; | |
70 | struct urb_context tx_data_list[MWIFIEX_TX_DATA_URB]; | |
71 | }; | |
72 | ||
4daffe35 AK |
73 | struct usb_card_rec { |
74 | struct mwifiex_adapter *adapter; | |
75 | struct usb_device *udev; | |
76 | struct usb_interface *intf; | |
77 | u8 rx_cmd_ep; | |
78 | struct urb_context rx_cmd; | |
79 | atomic_t rx_cmd_urb_pending; | |
80 | struct urb_context rx_data_list[MWIFIEX_RX_DATA_URB]; | |
81 | u8 usb_boot_state; | |
82 | u8 rx_data_ep; | |
83 | atomic_t rx_data_urb_pending; | |
4daffe35 | 84 | u8 tx_cmd_ep; |
4daffe35 AK |
85 | atomic_t tx_cmd_urb_pending; |
86 | int bulk_out_maxpktsize; | |
87 | struct urb_context tx_cmd; | |
7e4e5d2c | 88 | u8 mc_resync_flag; |
308fe29e | 89 | struct usb_tx_data_port port[MWIFIEX_TX_DATA_PORT]; |
4daffe35 AK |
90 | }; |
91 | ||
92 | struct fw_header { | |
93 | __le32 dnld_cmd; | |
94 | __le32 base_addr; | |
95 | __le32 data_len; | |
96 | __le32 crc; | |
97 | }; | |
98 | ||
99 | struct fw_sync_header { | |
100 | __le32 cmd; | |
101 | __le32 seq_num; | |
102 | }; | |
103 | ||
104 | struct fw_data { | |
105 | struct fw_header fw_hdr; | |
106 | __le32 seq_num; | |
107 | u8 data[1]; | |
108 | }; | |
109 | ||
4daffe35 | 110 | #endif /*_MWIFIEX_USB_H */ |