4 #include <linux/wait.h>
 
   5 #include <linux/timer.h>
 
  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   /* LVRM */
 
  31 #define BOOT_CMD_RESP_OK                0x0001
 
  32 #define BOOT_CMD_RESP_FAIL              0x0000
 
  33 #define BOOT_CMD_RESP_NOT_SUPPORTED     0x0002
 
  43 /** USB card description structure*/
 
  45         struct usb_device *udev;
 
  46         struct urb *rx_urb, *tx_urb;
 
  47         struct lbs_private *priv;
 
  49         struct sk_buff *rx_skb;
 
  54         /* bootcmdresp == 0 means command is pending
 
  55          * bootcmdresp < 0 means error
 
  56          * bootcmdresp > 0 is a BOOT_CMD_RESP_* from firmware
 
  65         const struct firmware *fw;
 
  66         struct timer_list fw_timeout;
 
  67         wait_queue_head_t fw_wq;
 
  70         uint32_t fwlastblksent;
 
  74         uint8_t surprise_removed;
 
  87 #define FW_MAX_DATA_BLK_SIZE    600
 
 101 #define FW_HAS_DATA_TO_RECV             0x00000001
 
 102 #define FW_HAS_LAST_BLOCK               0x00000004