]> err.no Git - linux-2.6/blobdiff - drivers/net/wireless/iwlwifi/iwl-core.c
mac80211: use hardware flags for signal/noise units
[linux-2.6] / drivers / net / wireless / iwlwifi / iwl-core.c
index 4ba860741f81cd1e33aeb6c36ed650121b2f8150..d3cbad2bf8770c0b58a45773f9fd268ee2c92d5e 100644 (file)
@@ -46,11 +46,6 @@ MODULE_VERSION(IWLWIFI_VERSION);
 MODULE_AUTHOR(DRV_COPYRIGHT);
 MODULE_LICENSE("GPL");
 
-#ifdef CONFIG_IWLWIFI_DEBUG
-u32 iwl_debug_level;
-EXPORT_SYMBOL(iwl_debug_level);
-#endif
-
 #define IWL_DECLARE_RATE_INFO(r, s, ip, in, rp, rn, pp, np)    \
        [IWL_RATE_##r##M_INDEX] = { IWL_RATE_##r##M_PLCP,      \
                                    IWL_RATE_SISO_##s##M_PLCP, \
@@ -143,9 +138,9 @@ out:
 int iwl_kw_alloc(struct iwl_priv *priv)
 {
        struct pci_dev *dev = priv->pci_dev;
-       struct iwl4965_kw *kw = &priv->kw;
+       struct iwl_kw *kw = &priv->kw;
 
-       kw->size = IWL4965_KW_SIZE;     /* TBW need set somewhere else */
+       kw->size = IWL_KW_SIZE;
        kw->v_addr = pci_alloc_consistent(dev, kw->size, &kw->dma_addr);
        if (!kw->v_addr)
                return -ENOMEM;
@@ -159,7 +154,7 @@ int iwl_kw_alloc(struct iwl_priv *priv)
 void iwl_kw_free(struct iwl_priv *priv)
 {
        struct pci_dev *dev = priv->pci_dev;
-       struct iwl4965_kw *kw = &priv->kw;
+       struct iwl_kw *kw = &priv->kw;
 
        if (kw->v_addr) {
                pci_free_consistent(dev, kw->size, kw->v_addr, kw->dma_addr);
@@ -174,9 +169,8 @@ int iwl_hw_nic_init(struct iwl_priv *priv)
        int ret;
 
        /* nic_init */
-       priv->cfg->ops->lib->apm_ops.init(priv);
-
        spin_lock_irqsave(&priv->lock, flags);
+       priv->cfg->ops->lib->apm_ops.init(priv);
        iwl_write32(priv, CSR_INT_COALESCING, 512 / 32);
        spin_unlock_irqrestore(&priv->lock, flags);
 
@@ -752,18 +746,10 @@ static void iwlcore_init_hw(struct iwl_priv *priv)
        struct ieee80211_hw *hw = priv->hw;
        hw->rate_control_algorithm = "iwl-4965-rs";
 
-       /* Tell mac80211 and its clients (e.g. Wireless Extensions)
-        *       the range of signal quality values that we'll provide.
-        * Negative values for level/noise indicate that we'll provide dBm.
-        * For WE, at least, non-0 values here *enable* display of values
-        *       in app (iwconfig). */
-       hw->max_rssi = -20; /* signal level, negative indicates dBm */
-       hw->max_noise = -20;    /* noise level, negative indicates dBm */
-       hw->max_signal = 100;   /* link quality indication (%) */
-
-       /* Tell mac80211 our Tx characteristics */
-       hw->flags = IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE;
-
+       /* Tell mac80211 our characteristics */
+       hw->flags = IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
+                   IEEE80211_HW_SIGNAL_DBM |
+                   IEEE80211_HW_NOISE_DBM;
        /* Default value; 4 EDCA QOS priorities */
        hw->queues = 4;
 #ifdef CONFIG_IWL4965_HT