- Update to 2.6.25-rc3.
[linux-flexiantxendom0-3.2.10.git] / drivers / net / wireless / libertas / if_usb.h
index e07a10e..e4829a3 100644 (file)
@@ -1,79 +1,76 @@
-#ifndef _LIBERTAS_IF_USB_H
-#define _LIBERTAS_IF_USB_H
+#ifndef _LBS_IF_USB_H
+#define _LBS_IF_USB_H
 
-#include <linux/list.h>
+#include <linux/wait.h>
+#include <linux/timer.h>
+
+struct lbs_private;
 
 /**
   * This file contains definition for USB interface.
   */
-#define CMD_TYPE_REQUEST                0xF00DFACE
-#define CMD_TYPE_DATA                   0xBEADC0DE
-#define CMD_TYPE_INDICATION             0xBEEFFACE
+#define CMD_TYPE_REQUEST               0xF00DFACE
+#define CMD_TYPE_DATA                  0xBEADC0DE
+#define CMD_TYPE_INDICATION            0xBEEFFACE
 
-#define IPFIELD_ALIGN_OFFSET   2
+#define IPFIELD_ALIGN_OFFSET           2
 
-#define BOOT_CMD_FW_BY_USB     0x01
-#define BOOT_CMD_FW_IN_EEPROM  0x02
-#define BOOT_CMD_UPDATE_BOOT2  0x03
-#define BOOT_CMD_UPDATE_FW     0x04
-#define BOOT_CMD_MAGIC_NUMBER  0x4C56524D   /* M=>0x4D,R=>0x52,V=>0x56,L=>0x4C */
+#define BOOT_CMD_FW_BY_USB             0x01
+#define BOOT_CMD_FW_IN_EEPROM          0x02
+#define BOOT_CMD_UPDATE_BOOT2          0x03
+#define BOOT_CMD_UPDATE_FW             0x04
+#define BOOT_CMD_MAGIC_NUMBER          0x4C56524D   /* LVRM */
 
-struct bootcmdstr
+struct bootcmd
 {
-       __le32 u32magicnumber;
-       u8  u8cmd_tag;
-       u8  au8dumy[11];
+       __le32  magic;
+       uint8_t cmd;
+       uint8_t pad[11];
 };
 
-#define BOOT_CMD_RESP_OK     0x0001
-#define BOOT_CMD_RESP_FAIL   0x0000
+#define BOOT_CMD_RESP_OK               0x0001
+#define BOOT_CMD_RESP_FAIL             0x0000
 
-struct bootcmdrespStr
+struct bootcmdresp
 {
-       __le32 u32magicnumber;
-       u8  u8cmd_tag;
-       u8  u8result;
-       u8  au8dumy[2];
-};
-
-/* read callback private data */
-struct read_cb_info {
-        struct usb_card_rec *cardp;
-        struct sk_buff *skb;
+       __le32  magic;
+       uint8_t cmd;
+       uint8_t result;
+       uint8_t pad[2];
 };
 
 /** USB card description structure*/
-struct usb_card_rec {
-       struct list_head list;
-       struct net_device *eth_dev;
+struct if_usb_card {
        struct usb_device *udev;
        struct urb *rx_urb, *tx_urb;
-       void *priv;
-       struct read_cb_info rinfo;
+       struct lbs_private *priv;
 
-       int bulk_in_size;
-       u8 bulk_in_endpointAddr;
+       struct sk_buff *rx_skb;
+       uint32_t usb_event_cause;
+       uint8_t usb_int_cause;
 
-       u8 *bulk_out_buffer;
-       int bulk_out_size;
-       u8 bulk_out_endpointAddr;
+       uint8_t ep_in;
+       uint8_t ep_out;
 
-       const struct firmware *fw;
-       u8 CRC_OK;
-       u32 fwseqnum;
-       u32 lastseqnum;
-       u32 totalbytes;
-       u32 fwlastblksent;
-       u8 fwdnldover;
-       u8 fwfinalblk;
-       u8 surprise_removed;
+       int8_t bootcmdresp;
 
-       u32 usb_event_cause;
-       u8 usb_int_cause;
+       int ep_in_size;
 
-       u8 rx_urb_recall;
+       void *ep_out_buf;
+       int ep_out_size;
 
-       u8 bootcmdresp;
+       const struct firmware *fw;
+       struct timer_list fw_timeout;
+       wait_queue_head_t fw_wq;
+       uint32_t fwseqnum;
+       uint32_t totalbytes;
+       uint32_t fwlastblksent;
+       uint8_t CRC_OK;
+       uint8_t fwdnldover;
+       uint8_t fwfinalblk;
+       uint8_t surprise_removed;
+
+       __le16 boot2_version;
 };
 
 /** fwheader */
@@ -86,10 +83,10 @@ struct fwheader {
 
 #define FW_MAX_DATA_BLK_SIZE   600
 /** FWData */
-struct FWData {
-       struct fwheader fwheader;
+struct fwdata {
+       struct fwheader hdr;
        __le32 seqnum;
-       u8 data[FW_MAX_DATA_BLK_SIZE];
+       uint8_t data[0];
 };
 
 /** fwsyncheader */
@@ -101,7 +98,5 @@ struct fwsyncheader {
 #define FW_HAS_DATA_TO_RECV            0x00000001
 #define FW_HAS_LAST_BLOCK              0x00000004
 
-#define FW_DATA_XMIT_SIZE \
-       sizeof(struct fwheader) + le32_to_cpu(fwdata->fwheader.datalength) + sizeof(u32)
 
 #endif