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