]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/wireless/iwlwifi/iwl-dev.h
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / net / wireless / iwlwifi / iwl-dev.h
index 70e07fa48405b5558a4cb95a6535178cb7265f1f..8dda67850af45174ed371b820934ccadd5dba1b4 100644 (file)
@@ -129,9 +129,6 @@ struct iwl_queue {
        int write_ptr;       /* 1-st empty entry (index) host_w*/
        int read_ptr;         /* last used entry (index) host_r*/
        /* use for monitoring and recovering the stuck queue */
-       int last_read_ptr;      /* storing the last read_ptr */
-       /* number of time read_ptr and last_read_ptr are the same */
-       u8 repeat_same_read_ptr;
        dma_addr_t dma_addr;   /* physical addr for BD's */
        int n_window;          /* safe queue window */
        u32 id;
@@ -155,6 +152,7 @@ struct iwl_tx_info {
  * @meta: array of meta data for each command/tx buffer
  * @dma_addr_cmd: physical address of cmd/tx buffer array
  * @txb: array of per-TFD driver data
+ * @time_stamp: time (in jiffies) of last read_ptr change
  * @need_update: indicates need to update read/write index
  * @sched_retry: indicates queue is high-throughput aggregation (HT AGG) enabled
  *
@@ -170,6 +168,7 @@ struct iwl_tx_queue {
        struct iwl_device_cmd **cmd;
        struct iwl_cmd_meta *meta;
        struct iwl_tx_info *txb;
+       unsigned long time_stamp;
        u8 need_update;
        u8 sched_retry;
        u8 active;
@@ -1104,11 +1103,10 @@ struct iwl_event_log {
 #define IWL_DELAY_NEXT_FORCE_RF_RESET  (HZ*3)
 #define IWL_DELAY_NEXT_FORCE_FW_RELOAD (HZ*5)
 
-/* timer constants use to monitor and recover stuck tx queues in mSecs */
-#define IWL_DEF_MONITORING_PERIOD      (1000)
-#define IWL_LONG_MONITORING_PERIOD     (5000)
-#define IWL_ONE_HUNDRED_MSECS   (100)
-#define IWL_MAX_MONITORING_PERIOD      (60000)
+/* TX queue watchdog timeouts in mSecs */
+#define IWL_DEF_WD_TIMEOUT     (2000)
+#define IWL_LONG_WD_TIMEOUT    (10000)
+#define IWL_MAX_WD_TIMEOUT     (120000)
 
 /* BT Antenna Coupling Threshold (dB) */
 #define IWL_BT_ANTENNA_COUPLING_THRESHOLD      (35)
@@ -1162,6 +1160,8 @@ struct iwl_rxon_context {
         */
        bool always_active, is_active;
 
+       bool ht_need_multiple_chains;
+
        enum iwl_rxon_context_id ctxid;
 
        u32 interface_modes, exclusive_interface_modes;
@@ -1468,8 +1468,9 @@ struct iwl_priv {
        };
 
        /* bt coex */
+       u8 bt_enable_flag;
        u8 bt_status;
-       u8 bt_traffic_load, notif_bt_traffic_load;
+       u8 bt_traffic_load, last_bt_traffic_load;
        bool bt_ch_announce;
        bool bt_sco_active;
        bool bt_full_concurrent;
@@ -1480,7 +1481,6 @@ struct iwl_priv {
        u16 bt_on_thresh;
        u16 bt_duration;
        u16 dynamic_frag_thresh;
-       u16 dynamic_agg_thresh;
        u8 bt_ci_compliance;
        struct work_struct bt_traffic_change_work;
 
@@ -1517,6 +1517,7 @@ struct iwl_priv {
        s8 tx_power_user_lmt;
        s8 tx_power_device_lmt;
        s8 tx_power_lmt_in_half_dbm; /* max tx power in half-dBm format */
+       s8 tx_power_next;
 
 
 #ifdef CONFIG_IWLWIFI_DEBUG
@@ -1542,7 +1543,7 @@ struct iwl_priv {
        struct work_struct run_time_calib_work;
        struct timer_list statistics_periodic;
        struct timer_list ucode_trace;
-       struct timer_list monitor_recover;
+       struct timer_list watchdog;
        bool hw_ready;
 
        struct iwl_event_log event_log;