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