]> err.no Git - linux-2.6/blobdiff - drivers/net/wireless/rt2x00/rt2x00.h
rt2x00: Release rt2x00 2.1.5
[linux-2.6] / drivers / net / wireless / rt2x00 / rt2x00.h
index 8718ad3dcc00f67847323632c59f01cb1f2ecf19..48a9af47921efe889a0354fa1640ebf0906973ed 100644 (file)
@@ -44,7 +44,7 @@
 /*
  * Module information.
  */
-#define DRV_VERSION    "2.1.3"
+#define DRV_VERSION    "2.1.5"
 #define DRV_PROJECT    "http://rt2x00.serialmonkey.com"
 
 /*
@@ -384,7 +384,8 @@ struct rt2x00_intf {
         */
        unsigned int delayed_flags;
 #define DELAYED_UPDATE_BEACON          0x00000001
-#define DELAYED_CONFIG_PREAMBLE                0x00000002
+#define DELAYED_CONFIG_ERP             0x00000002
+#define DELAYED_LED_ASSOC              0x00000004
 };
 
 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
@@ -403,7 +404,7 @@ static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
  * @supported_rates: Rate types which are supported (CCK, OFDM).
  * @num_channels: Number of supported channels. This is used as array size
  *     for @tx_power_a, @tx_power_bg and @channels.
- * channels: Device/chipset specific channel values (See &struct rf_channel).
+ * @channels: Device/chipset specific channel values (See &struct rf_channel).
  * @tx_power_a: TX power values for all 5.2GHz channels (may be NULL).
  * @tx_power_bg: TX power values for all 2.4GHz channels (may be NULL).
  * @tx_power_default: Default TX power value to use when either
@@ -441,8 +442,8 @@ struct rt2x00lib_conf {
 
        enum ieee80211_band band;
 
-       int basic_rates;
-       int slot_time;
+       u32 basic_rates;
+       u32 slot_time;
 
        short sifs;
        short pifs;
@@ -450,6 +451,16 @@ struct rt2x00lib_conf {
        short eifs;
 };
 
+/*
+ * Configuration structure for erp settings.
+ */
+struct rt2x00lib_erp {
+       int short_preamble;
+
+       int ack_timeout;
+       int ack_consume_time;
+};
+
 /*
  * Configuration structure wrapper around the
  * rt2x00 interface configuration handler.
@@ -523,8 +534,6 @@ struct rt2x00lib_ops {
                            struct link_qual *qual);
        void (*reset_tuner) (struct rt2x00_dev *rt2x00dev);
        void (*link_tuner) (struct rt2x00_dev *rt2x00dev);
-       void (*led_brightness) (struct led_classdev *led_cdev,
-                               enum led_brightness brightness);
 
        /*
         * TX control handlers
@@ -539,7 +548,7 @@ struct rt2x00lib_ops {
        int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev,
                                struct sk_buff *skb);
        void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev,
-                              const unsigned int queue);
+                              const enum data_queue_qid queue);
 
        /*
         * RX control handlers
@@ -550,6 +559,8 @@ struct rt2x00lib_ops {
        /*
         * Configuration handlers.
         */
+       void (*config_filter) (struct rt2x00_dev *rt2x00dev,
+                              const unsigned int filter_flags);
        void (*config_intf) (struct rt2x00_dev *rt2x00dev,
                             struct rt2x00_intf *intf,
                             struct rt2x00intf_conf *conf,
@@ -558,10 +569,8 @@ struct rt2x00lib_ops {
 #define CONFIG_UPDATE_MAC              ( 1 << 2 )
 #define CONFIG_UPDATE_BSSID            ( 1 << 3 )
 
-       int (*config_preamble) (struct rt2x00_dev *rt2x00dev,
-                               const int short_preamble,
-                               const int ack_timeout,
-                               const int ack_consume_time);
+       void (*config_erp) (struct rt2x00_dev *rt2x00dev,
+                           struct rt2x00lib_erp *erp);
        void (*config) (struct rt2x00_dev *rt2x00dev,
                        struct rt2x00lib_conf *libconf,
                        const unsigned int flags);
@@ -612,10 +621,10 @@ enum rt2x00_flags {
        /*
         * Driver features
         */
-       DRIVER_SUPPORT_MIXED_INTERFACES,
        DRIVER_REQUIRE_FIRMWARE,
        DRIVER_REQUIRE_BEACON_GUARD,
        DRIVER_REQUIRE_ATIM_QUEUE,
+       DRIVER_REQUIRE_SCHEDULED,
 
        /*
         * Driver configuration
@@ -663,6 +672,9 @@ struct rt2x00_dev {
         * This will only be compiled in when required.
         */
 #ifdef CONFIG_RT2X00_LIB_RFKILL
+       unsigned long rfkill_state;
+#define RFKILL_STATE_ALLOCATED         1
+#define RFKILL_STATE_REGISTERED                2
        struct rfkill *rfkill;
        struct input_polled_dev *poll_dev;
 #endif /* CONFIG_RT2X00_LIB_RFKILL */
@@ -680,8 +692,6 @@ struct rt2x00_dev {
         * by mac8011 or the kernel.
         */
 #ifdef CONFIG_RT2X00_LIB_LEDS
-       unsigned int led_flags;
-       struct rt2x00_trigger trigger_qual;
        struct rt2x00_led led_radio;
        struct rt2x00_led led_assoc;
        struct rt2x00_led led_qual;
@@ -917,17 +927,16 @@ static inline u16 get_duration_res(const unsigned int size, const u8 rate)
 }
 
 /**
- * rt2x00queue_get_queue - Convert mac80211 queue index to rt2x00 queue
+ * rt2x00queue_get_queue - Convert queue index to queue pointer
  * @rt2x00dev: Pointer to &struct rt2x00_dev.
- * @queue: mac80211/rt2x00 queue index
- *     (see &enum ieee80211_tx_queue and &enum rt2x00_bcn_queue).
+ * @queue: rt2x00 queue index (see &enum data_queue_qid).
  */
 struct data_queue *rt2x00queue_get_queue(struct rt2x00_dev *rt2x00dev,
-                                        const unsigned int queue);
+                                        const enum data_queue_qid queue);
 
 /**
  * rt2x00queue_get_entry - Get queue entry where the given index points to.
- * @rt2x00dev: Pointer to &struct rt2x00_dev.
+ * @queue: Pointer to &struct data_queue from where we obtain the entry.
  * @index: Index identifier for obtaining the correct index.
  */
 struct queue_entry *rt2x00queue_get_entry(struct data_queue *queue,
@@ -936,7 +945,7 @@ struct queue_entry *rt2x00queue_get_entry(struct data_queue *queue,
 /**
  * rt2x00queue_index_inc - Index incrementation function
  * @queue: Queue (&struct data_queue) to perform the action on.
- * @action: Index type (&enum queue_index) to perform the action on.
+ * @index: Index type (&enum queue_index) to perform the action on.
  *
  * This function will increase the requested index on the queue,
  * it will grab the appropriate locks and handle queue overflow events by
@@ -976,6 +985,10 @@ int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf);
 int rt2x00mac_config_interface(struct ieee80211_hw *hw,
                               struct ieee80211_vif *vif,
                               struct ieee80211_if_conf *conf);
+void rt2x00mac_configure_filter(struct ieee80211_hw *hw,
+                               unsigned int changed_flags,
+                               unsigned int *total_flags,
+                               int mc_count, struct dev_addr_list *mc_list);
 int rt2x00mac_get_stats(struct ieee80211_hw *hw,
                        struct ieee80211_low_level_stats *stats);
 int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,