libertas: remove casts from lbs_cmd() and lbs_cmd_with_response() macros
[wrt350n-kernel.git] / drivers / net / wireless / libertas / if_usb.h
blobf028df1d018c6969f3107a5999a3d32dae387e30
1 #ifndef _LBS_IF_USB_H
2 #define _LBS_IF_USB_H
4 #include <linux/wait.h>
5 #include <linux/timer.h>
7 struct lbs_private;
9 /**
10 * This file contains definition for USB interface.
12 #define CMD_TYPE_REQUEST 0xF00DFACE
13 #define CMD_TYPE_DATA 0xBEADC0DE
14 #define CMD_TYPE_INDICATION 0xBEEFFACE
16 #define IPFIELD_ALIGN_OFFSET 2
18 #define BOOT_CMD_FW_BY_USB 0x01
19 #define BOOT_CMD_FW_IN_EEPROM 0x02
20 #define BOOT_CMD_UPDATE_BOOT2 0x03
21 #define BOOT_CMD_UPDATE_FW 0x04
22 #define BOOT_CMD_MAGIC_NUMBER 0x4C56524D /* M=>0x4D,R=>0x52,V=>0x56,L=>0x4C */
24 struct bootcmdstr
26 __le32 u32magicnumber;
27 u8 u8cmd_tag;
28 u8 au8dumy[11];
31 #define BOOT_CMD_RESP_OK 0x0001
32 #define BOOT_CMD_RESP_FAIL 0x0000
34 struct bootcmdrespStr
36 __le32 u32magicnumber;
37 u8 u8cmd_tag;
38 u8 u8result;
39 u8 au8dumy[2];
42 /* read callback private data */
43 struct read_cb_info {
44 struct usb_card_rec *cardp;
45 struct sk_buff *skb;
48 /** USB card description structure*/
49 struct usb_card_rec {
50 struct net_device *eth_dev;
51 struct usb_device *udev;
52 struct urb *rx_urb, *tx_urb;
53 struct lbs_private *priv;
54 struct read_cb_info rinfo;
56 int bulk_in_size;
57 u8 bulk_in_endpointAddr;
59 u8 *bulk_out_buffer;
60 int bulk_out_size;
61 u8 bulk_out_endpointAddr;
63 const struct firmware *fw;
64 struct timer_list fw_timeout;
65 wait_queue_head_t fw_wq;
66 u8 CRC_OK;
67 u32 fwseqnum;
68 u32 lastseqnum;
69 u32 totalbytes;
70 u32 fwlastblksent;
71 u8 fwdnldover;
72 u8 fwfinalblk;
73 u8 surprise_removed;
75 u32 usb_event_cause;
76 u8 usb_int_cause;
78 u8 rx_urb_recall;
80 s8 bootcmdresp;
83 /** fwheader */
84 struct fwheader {
85 __le32 dnldcmd;
86 __le32 baseaddr;
87 __le32 datalength;
88 __le32 CRC;
91 #define FW_MAX_DATA_BLK_SIZE 600
92 /** FWData */
93 struct FWData {
94 struct fwheader fwheader;
95 __le32 seqnum;
96 u8 data[FW_MAX_DATA_BLK_SIZE];
99 /** fwsyncheader */
100 struct fwsyncheader {
101 __le32 cmd;
102 __le32 seqnum;
105 #define FW_HAS_DATA_TO_RECV 0x00000001
106 #define FW_HAS_LAST_BLOCK 0x00000004
108 #define FW_DATA_XMIT_SIZE \
109 sizeof(struct fwheader) + le32_to_cpu(fwdata->fwheader.datalength) + sizeof(u32)
111 #endif