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 | |
68458ded YAP |
31 | #define USB8897_PID_1 0x2045 |
32 | #define USB8897_PID_2 0x2046 | |
eaa3d9fa YAP |
33 | #define USB8801_PID_1 0x2049 |
34 | #define USB8801_PID_2 0x204a | |
6d85ef00 ZL |
35 | #define USB8997_PID_1 0x204d |
36 | #define USB8997_PID_2 0x204e | |
eaa3d9fa | 37 | |
4daffe35 | 38 | |
68458ded YAP |
39 | #define USB8XXX_FW_DNLD 1 |
40 | #define USB8XXX_FW_READY 2 | |
41 | #define USB8XXX_FW_MAX_RETRY 3 | |
4daffe35 AK |
42 | |
43 | #define MWIFIEX_TX_DATA_URB 6 | |
44 | #define MWIFIEX_RX_DATA_URB 6 | |
45 | #define MWIFIEX_USB_TIMEOUT 100 | |
46 | ||
9e6f3f47 | 47 | #define USB8766_DEFAULT_FW_NAME "mrvl/usb8766_uapsta.bin" |
4daffe35 | 48 | #define USB8797_DEFAULT_FW_NAME "mrvl/usb8797_uapsta.bin" |
eaa3d9fa | 49 | #define USB8801_DEFAULT_FW_NAME "mrvl/usb8801_uapsta.bin" |
68458ded | 50 | #define USB8897_DEFAULT_FW_NAME "mrvl/usb8897_uapsta.bin" |
6d85ef00 | 51 | #define USB8997_DEFAULT_FW_NAME "mrvl/usb8997_uapsta.bin" |
4daffe35 AK |
52 | |
53 | #define FW_DNLD_TX_BUF_SIZE 620 | |
54 | #define FW_DNLD_RX_BUF_SIZE 2048 | |
55 | #define FW_HAS_LAST_BLOCK 0x00000004 | |
56 | ||
57 | #define FW_DATA_XMIT_SIZE \ | |
58 | (sizeof(struct fw_header) + dlen + sizeof(u32)) | |
59 | ||
60 | struct urb_context { | |
61 | struct mwifiex_adapter *adapter; | |
62 | struct sk_buff *skb; | |
63 | struct urb *urb; | |
64 | u8 ep; | |
65 | }; | |
66 | ||
67 | struct usb_card_rec { | |
68 | struct mwifiex_adapter *adapter; | |
69 | struct usb_device *udev; | |
70 | struct usb_interface *intf; | |
71 | u8 rx_cmd_ep; | |
72 | struct urb_context rx_cmd; | |
73 | atomic_t rx_cmd_urb_pending; | |
74 | struct urb_context rx_data_list[MWIFIEX_RX_DATA_URB]; | |
75 | u8 usb_boot_state; | |
76 | u8 rx_data_ep; | |
77 | atomic_t rx_data_urb_pending; | |
78 | u8 tx_data_ep; | |
79 | u8 tx_cmd_ep; | |
80 | atomic_t tx_data_urb_pending; | |
81 | atomic_t tx_cmd_urb_pending; | |
82 | int bulk_out_maxpktsize; | |
83 | struct urb_context tx_cmd; | |
84 | int tx_data_ix; | |
85 | struct urb_context tx_data_list[MWIFIEX_TX_DATA_URB]; | |
86 | }; | |
87 | ||
88 | struct fw_header { | |
89 | __le32 dnld_cmd; | |
90 | __le32 base_addr; | |
91 | __le32 data_len; | |
92 | __le32 crc; | |
93 | }; | |
94 | ||
95 | struct fw_sync_header { | |
96 | __le32 cmd; | |
97 | __le32 seq_num; | |
98 | }; | |
99 | ||
100 | struct fw_data { | |
101 | struct fw_header fw_hdr; | |
102 | __le32 seq_num; | |
103 | u8 data[1]; | |
104 | }; | |
105 | ||
4daffe35 | 106 | #endif /*_MWIFIEX_USB_H */ |