rtl8187: Add termination packet to prevent stall
[safe/jmp/linux-2.6] / drivers / net / wireless / iwlwifi / iwl-commands.h
index 528bcab..ba99720 100644 (file)
@@ -25,7 +25,7 @@
  * in the file called LICENSE.GPL.
  *
  * Contact Information:
- * James P. Ketrenos <ipw2100-admin@linux.intel.com>
+ *  Intel Linux Wireless <ilw@linux.intel.com>
  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  *
  * BSD LICENSE
@@ -94,6 +94,7 @@ enum {
        REPLY_WEPKEY = 0x20,
 
        /* RX, TX, LEDs */
+       REPLY_3945_RX = 0x1b,           /* 3945 only */
        REPLY_TX = 0x1c,
        REPLY_RATE_SCALE = 0x47,        /* 3945 only */
        REPLY_LEDS_CMD = 0x48,
@@ -254,7 +255,7 @@ struct iwl_cmd_header {
  *        0x3)  54 Mbps
  *
  * Legacy CCK rate format for bits 7:0 (bit 8 must be "0", bit 9 "1"):
- *  3-0:   10)  1 Mbps
+ *  6-0:   10)  1 Mbps
  *         20)  2 Mbps
  *         55)  5.5 Mbps
  *        110)  11 Mbps
@@ -701,7 +702,7 @@ struct iwl_rxon_time_cmd {
 /*
  * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response)
  */
-struct iwl4965_channel_switch_cmd {
+struct iwl_channel_switch_cmd {
        u8 band;
        u8 expect_beacon;
        __le16 channel;
@@ -714,7 +715,7 @@ struct iwl4965_channel_switch_cmd {
 /*
  * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command)
  */
-struct iwl4965_csa_notification {
+struct iwl_csa_notification {
        __le16 band;
        __le16 channel;
        __le32 status;          /* 0 - OK, 1 - fail */
@@ -1023,25 +1024,6 @@ struct iwl_wep_cmd {
  *
  *****************************************************************************/
 
-struct iwl4965_rx_frame_stats {
-       u8 phy_count;
-       u8 id;
-       u8 rssi;
-       u8 agc;
-       __le16 sig_avg;
-       __le16 noise_diff;
-       u8 payload[0];
-} __attribute__ ((packed));
-
-struct iwl4965_rx_frame_hdr {
-       __le16 channel;
-       __le16 phy_flags;
-       u8 reserved1;
-       u8 rate;
-       __le16 len;
-       u8 payload[0];
-} __attribute__ ((packed));
-
 #define RX_RES_STATUS_NO_CRC32_ERROR   cpu_to_le32(1 << 0)
 #define RX_RES_STATUS_NO_RXE_OVERFLOW  cpu_to_le32(1 << 1)
 
@@ -1072,26 +1054,6 @@ struct iwl4965_rx_frame_hdr {
 #define RX_MPDU_RES_STATUS_TTAK_OK     (1 << 7)
 #define RX_MPDU_RES_STATUS_DEC_DONE_MSK        (0x800)
 
-struct iwl4965_rx_frame_end {
-       __le32 status;
-       __le64 timestamp;
-       __le32 beacon_timestamp;
-} __attribute__ ((packed));
-
-/*
- * REPLY_3945_RX = 0x1b (response only, not a command)
- *
- * NOTE:  DO NOT dereference from casts to this structure
- * It is provided only for calculating minimum data set size.
- * The actual offsets of the hdr and end are dynamic based on
- * stats.phy_count
- */
-struct iwl4965_rx_frame {
-       struct iwl4965_rx_frame_stats stats;
-       struct iwl4965_rx_frame_hdr hdr;
-       struct iwl4965_rx_frame_end end;
-} __attribute__ ((packed));
-
 /* Fixed (non-configurable) rx data from phy */
 
 #define IWL49_RX_RES_PHY_CNT 14
@@ -1276,7 +1238,7 @@ struct iwl4965_rx_mpdu_res_start {
  * Used for managing Tx retries when expecting block-acks.
  * Driver should set these fields to 0.
  */
-struct iwl4965_dram_scratch {
+struct iwl_dram_scratch {
        u8 try_cnt;             /* Tx attempts */
        u8 bt_kill_cnt;         /* Tx attempts blocked by Bluetooth device */
        __le16 reserved;
@@ -1307,9 +1269,9 @@ struct iwl_tx_cmd {
 
        __le32 tx_flags;        /* TX_CMD_FLG_* */
 
-       /* 4965's uCode may modify this field of the Tx command (in host DRAM!).
+       /* uCode may modify this field of the Tx command (in host DRAM!).
         * Driver must also set dram_lsb_ptr and dram_msb_ptr in this cmd. */
-       struct iwl4965_dram_scratch scratch;
+       struct iwl_dram_scratch scratch;
 
        /* Rate for *all* Tx attempts, if TX_CMD_FLG_STA_RATE_MSK is cleared. */
        __le32 rate_n_flags;    /* RATE_MCS_* */
@@ -1917,7 +1879,7 @@ struct iwl_link_quality_cmd {
  * same platform.  Bluetooth device alerts wireless device when it will Tx;
  * wireless device can delay or kill its own Tx to accommodate.
  */
-struct iwl4965_bt_cmd {
+struct iwl_bt_cmd {
        u8 flags;
        u8 lead_time;
        u8 max_kill;
@@ -1943,18 +1905,18 @@ struct iwl4965_bt_cmd {
                                 RXON_FILTER_ASSOC_MSK           | \
                                 RXON_FILTER_BCON_AWARE_MSK)
 
-struct iwl4965_measure_channel {
+struct iwl_measure_channel {
        __le32 duration;        /* measurement duration in extended beacon
                                 * format */
        u8 channel;             /* channel to measure */
-       u8 type;                /* see enum iwl4965_measure_type */
+       u8 type;                /* see enum iwl_measure_type */
        __le16 reserved;
 } __attribute__ ((packed));
 
 /*
  * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (command)
  */
-struct iwl4965_spectrum_cmd {
+struct iwl_spectrum_cmd {
        __le16 len;             /* number of bytes starting from token */
        u8 token;               /* token id */
        u8 id;                  /* measurement id -- 0 or 1 */
@@ -1967,13 +1929,13 @@ struct iwl4965_spectrum_cmd {
        __le32 filter_flags;    /* rxon filter flags */
        __le16 channel_count;   /* minimum 1, maximum 10 */
        __le16 reserved3;
-       struct iwl4965_measure_channel channels[10];
+       struct iwl_measure_channel channels[10];
 } __attribute__ ((packed));
 
 /*
  * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (response)
  */
-struct iwl4965_spectrum_resp {
+struct iwl_spectrum_resp {
        u8 token;
        u8 id;                  /* id of the prior command replaced, or 0xff */
        __le16 status;          /* 0 - command will be handled
@@ -1981,12 +1943,12 @@ struct iwl4965_spectrum_resp {
                                 *     measurement) */
 } __attribute__ ((packed));
 
-enum iwl4965_measurement_state {
+enum iwl_measurement_state {
        IWL_MEASUREMENT_START = 0,
        IWL_MEASUREMENT_STOP = 1,
 };
 
-enum iwl4965_measurement_status {
+enum iwl_measurement_status {
        IWL_MEASUREMENT_OK = 0,
        IWL_MEASUREMENT_CONCURRENT = 1,
        IWL_MEASUREMENT_CSA_CONFLICT = 2,
@@ -1999,18 +1961,18 @@ enum iwl4965_measurement_status {
 
 #define NUM_ELEMENTS_IN_HISTOGRAM 8
 
-struct iwl4965_measurement_histogram {
+struct iwl_measurement_histogram {
        __le32 ofdm[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 0.8usec counts */
        __le32 cck[NUM_ELEMENTS_IN_HISTOGRAM];  /* in 1usec counts */
 } __attribute__ ((packed));
 
 /* clear channel availability counters */
-struct iwl4965_measurement_cca_counters {
+struct iwl_measurement_cca_counters {
        __le32 ofdm;
        __le32 cck;
 } __attribute__ ((packed));
 
-enum iwl4965_measure_type {
+enum iwl_measure_type {
        IWL_MEASURE_BASIC = (1 << 0),
        IWL_MEASURE_CHANNEL_LOAD = (1 << 1),
        IWL_MEASURE_HISTOGRAM_RPI = (1 << 2),
@@ -2023,7 +1985,7 @@ enum iwl4965_measure_type {
 /*
  * SPECTRUM_MEASURE_NOTIFICATION = 0x75 (notification only, not a command)
  */
-struct iwl4965_spectrum_notification {
+struct iwl_spectrum_notification {
        u8 id;                  /* measurement id -- 0 or 1 */
        u8 token;
        u8 channel_index;       /* index in measurement channel list */
@@ -2031,7 +1993,7 @@ struct iwl4965_spectrum_notification {
        __le32 start_time;      /* lower 32-bits of TSF */
        u8 band;                /* 0 - 5.2GHz, 1 - 2.4GHz */
        u8 channel;
-       u8 type;                /* see enum iwl4965_measurement_type */
+       u8 type;                /* see enum iwl_measurement_type */
        u8 reserved1;
        /* NOTE:  cca_ofdm, cca_cck, basic_type, and histogram are only only
         * valid if applicable for measurement type requested. */
@@ -2041,9 +2003,9 @@ struct iwl4965_spectrum_notification {
        u8 basic_type;          /* 0 - bss, 1 - ofdm preamble, 2 -
                                 * unidentified */
        u8 reserved2[3];
-       struct iwl4965_measurement_histogram histogram;
+       struct iwl_measurement_histogram histogram;
        __le32 stop_time;       /* lower 32-bits of TSF */
-       __le32 status;          /* see iwl4965_measurement_status */
+       __le32 status;          /* see iwl_measurement_status */
 } __attribute__ ((packed));
 
 /******************************************************************************
@@ -2101,7 +2063,7 @@ struct iwl_powertable_cmd {
  * PM_SLEEP_NOTIFICATION = 0x7A (notification only, not a command)
  * 3945 and 4965 identical.
  */
-struct iwl4965_sleep_notification {
+struct iwl_sleep_notification {
        u8 pm_sleep_mode;
        u8 pm_wakeup_src;
        __le16 reserved;
@@ -2131,14 +2093,14 @@ enum {
 #define CARD_STATE_CMD_DISABLE 0x00    /* Put card to sleep */
 #define CARD_STATE_CMD_ENABLE  0x01    /* Wake up card */
 #define CARD_STATE_CMD_HALT    0x02    /* Power down permanently */
-struct iwl4965_card_state_cmd {
+struct iwl_card_state_cmd {
        __le32 status;          /* CARD_STATE_CMD_* request new power state */
 } __attribute__ ((packed));
 
 /*
  * CARD_STATE_NOTIFICATION = 0xa1 (notification only, not a command)
  */
-struct iwl4965_card_state_notif {
+struct iwl_card_state_notif {
        __le32 flags;
 } __attribute__ ((packed));
 
@@ -2201,7 +2163,7 @@ struct iwl_scan_channel {
  * struct iwl_ssid_ie - directed scan network information element
  *
  * Up to 4 of these may appear in REPLY_SCAN_CMD, selected by "type" field
- * in struct iwl4965_scan_channel; each channel may select different ssids from
+ * in struct iwl_scan_channel; each channel may select different ssids from
  * among the 4 entries.  SSID IEs get transmitted in reverse order of entry.
  */
 struct iwl_ssid_ie {
@@ -2301,7 +2263,7 @@ struct iwl_scan_cmd {
         * Number of channels in list is specified by channel_count.
         * Each channel in list is of type:
         *
-        * struct iwl4965_scan_channel channels[0];
+        * struct iwl_scan_channel channels[0];
         *
         * NOTE:  Only one band of channels can be scanned per pass.  You
         * must not mix 2.4GHz channels and 5.2GHz channels, and you must wait
@@ -2456,6 +2418,8 @@ struct statistics_rx_ht_phy {
        __le32 reserved2;
 } __attribute__ ((packed));
 
+#define INTERFERENCE_DATA_AVAILABLE      __constant_cpu_to_le32(1)
+
 struct statistics_rx_non_phy {
        __le32 bogus_cts;       /* CTS received when not expecting CTS */
        __le32 bogus_ack;       /* ACK received when not expecting ACK */
@@ -2612,7 +2576,7 @@ struct iwl_notif_statistics {
  * then this notification will be sent. */
 #define CONSECUTIVE_MISSED_BCONS_TH 20
 
-struct iwl4965_missed_beacon_notif {
+struct iwl_missed_beacon_notif {
        __le32 consequtive_missed_beacons;
        __le32 total_missed_becons;
        __le32 num_expected_beacons;
@@ -3049,27 +3013,22 @@ struct iwl_rx_packet {
        struct iwl_cmd_header hdr;
        union {
                struct iwl_alive_resp alive_frame;
-               struct iwl4965_rx_frame rx_frame;
-               struct iwl4965_tx_resp tx_resp;
-               struct iwl4965_spectrum_notification spectrum_notif;
-               struct iwl4965_csa_notification csa_notif;
+               struct iwl_spectrum_notification spectrum_notif;
+               struct iwl_csa_notification csa_notif;
                struct iwl_error_resp err_resp;
-               struct iwl4965_card_state_notif card_state_notif;
-               struct iwl4965_beacon_notif beacon_status;
+               struct iwl_card_state_notif card_state_notif;
                struct iwl_add_sta_resp add_sta;
                struct iwl_rem_sta_resp rem_sta;
-               struct iwl4965_sleep_notification sleep_notif;
-               struct iwl4965_spectrum_resp spectrum;
+               struct iwl_sleep_notification sleep_notif;
+               struct iwl_spectrum_resp spectrum;
                struct iwl_notif_statistics stats;
                struct iwl_compressed_ba_resp compressed_ba;
-               struct iwl4965_missed_beacon_notif missed_beacon;
+               struct iwl_missed_beacon_notif missed_beacon;
                __le32 status;
                u8 raw[0];
        } u;
 } __attribute__ ((packed));
 
-#define IWL_RX_FRAME_SIZE        (4 + sizeof(struct iwl4965_rx_frame))
-
 int iwl_agn_check_rxon_cmd(struct iwl_rxon_cmd *rxon);
 
 #endif                         /* __iwl_commands_h__ */