iwlwifi: Temperature sensor voltage reading for 5150
[pandora-kernel.git] / drivers / net / wireless / iwlwifi / iwl-core.h
index 92a42c8..a0ed415 100644 (file)
@@ -112,6 +112,19 @@ struct iwl_hcmd_utils_ops {
                          struct iwl_rx_phy_res *rx_resp);
 };
 
+struct iwl_apm_ops {
+       int (*init)(struct iwl_priv *priv);
+       int (*reset)(struct iwl_priv *priv);
+       void (*stop)(struct iwl_priv *priv);
+       void (*config)(struct iwl_priv *priv);
+       int (*set_pwr_src)(struct iwl_priv *priv, enum iwl_pwr_src src);
+};
+
+struct iwl_temp_ops {
+       void (*temperature)(struct iwl_priv *priv);
+       void (*set_ct_kill)(struct iwl_priv *priv);
+};
+
 struct iwl_lib_ops {
        /* set hw dependent parameters */
        int (*set_hw_params)(struct iwl_priv *priv);
@@ -149,23 +162,20 @@ struct iwl_lib_ops {
        int (*is_valid_rtc_data_addr)(u32 addr);
        /* 1st ucode load */
        int (*load_ucode)(struct iwl_priv *priv);
-        /* power management */
-       struct {
-               int (*init)(struct iwl_priv *priv);
-               int (*reset)(struct iwl_priv *priv);
-               void (*stop)(struct iwl_priv *priv);
-               void (*config)(struct iwl_priv *priv);
-               int (*set_pwr_src)(struct iwl_priv *priv, enum iwl_pwr_src src);
-       } apm_ops;
+       /* power management */
+       struct iwl_apm_ops apm_ops;
+
        /* power */
        int (*send_tx_power) (struct iwl_priv *priv);
        void (*update_chain_flags)(struct iwl_priv *priv);
-       void (*temperature) (struct iwl_priv *priv);
        void (*post_associate) (struct iwl_priv *priv);
        void (*config_ap) (struct iwl_priv *priv);
 
        /* eeprom operations (as defined in iwl-eeprom.h) */
        struct iwl_eeprom_ops eeprom_ops;
+
+       /* temperature */
+       struct iwl_temp_ops temp_ops;
 };
 
 struct iwl_ops {
@@ -176,7 +186,6 @@ struct iwl_ops {
 };
 
 struct iwl_mod_params {
-       int disable;            /* def: 0 = enable radio */
        int sw_crypto;          /* def: 0 = using hardware encryption */
        u32 debug;              /* def: 0 = minimal debug log messages */
        int disable_hw_scan;    /* def: 0 = use h/w scan */
@@ -267,6 +276,7 @@ int iwl_setup_mac(struct iwl_priv *priv);
 int iwl_set_hw_params(struct iwl_priv *priv);
 int iwl_init_drv(struct iwl_priv *priv);
 void iwl_uninit_drv(struct iwl_priv *priv);
+bool iwl_is_monitor_mode(struct iwl_priv *priv);
 void iwl_post_associate(struct iwl_priv *priv);
 void iwl_bss_info_changed(struct ieee80211_hw *hw,
                                     struct ieee80211_vif *vif,
@@ -281,9 +291,9 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw,
                                 struct ieee80211_if_init_conf *conf);
 int iwl_mac_config(struct ieee80211_hw *hw, u32 changed);
 void iwl_config_ap(struct iwl_priv *priv);
-int iwl_mac_config_interface(struct ieee80211_hw *hw,
-                               struct ieee80211_vif *vif,
-                               struct ieee80211_if_conf *conf);
+int iwl_mac_get_tx_stats(struct ieee80211_hw *hw,
+                        struct ieee80211_tx_queue_stats *stats);
+void iwl_mac_reset_tsf(struct ieee80211_hw *hw);
 
 /*****************************************************
  * RX handlers.
@@ -363,8 +373,6 @@ int iwl_hwrate_to_plcp_idx(u32 rate_n_flags);
 
 u8 iwl_rate_get_lowest_plcp(struct iwl_priv *priv);
 
-void iwl_set_rate(struct iwl_priv *priv);
-
 u8 iwl_toggle_tx_ant(struct iwl_priv *priv, u8 ant_idx);
 
 static inline u32 iwl_ant_idx_to_flags(u8 ant_idx)
@@ -393,8 +401,8 @@ int iwl_scan_cancel(struct iwl_priv *priv);
 int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms);
 int iwl_scan_initiate(struct iwl_priv *priv);
 int iwl_mac_hw_scan(struct ieee80211_hw *hw, struct cfg80211_scan_request *req);
-u16 iwl_fill_probe_req(struct iwl_priv *priv, enum ieee80211_band band,
-                      struct ieee80211_mgmt *frame, int left);
+u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame,
+                      const u8 *ie, int ie_len, int left);
 void iwl_setup_rx_scan_handlers(struct iwl_priv *priv);
 u16 iwl_get_active_dwell_time(struct iwl_priv *priv,
                              enum ieee80211_band band,
@@ -477,6 +485,7 @@ int iwl_pci_resume(struct pci_dev *pdev);
 ******************************************************/
 void iwl_dump_nic_error_log(struct iwl_priv *priv);
 void iwl_dump_nic_event_log(struct iwl_priv *priv);
+void iwl_clear_isr_stats(struct iwl_priv *priv);
 
 /*****************************************************
 *  GEOS