iwlwifi: move hw_rev to transport layer
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 9 Jan 2012 14:23:00 +0000 (16:23 +0200)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 2 Feb 2012 22:37:45 +0000 (14:37 -0800)
The HW revision is now read by the transport layer in its allocation.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
drivers/net/wireless/iwlwifi/iwl-trans.h

index 14f8b750c7c5395a0be0a7e53561a796bfe39398..36f7adeb1768bd7465a87f2130451a532529525e 100644 (file)
@@ -1691,13 +1691,6 @@ static void iwl_uninit_drv(struct iwl_priv *priv)
 #endif
 }
 
-
-
-static u32 iwl_hw_detect(struct iwl_priv *priv)
-{
-       return iwl_read32(trans(priv), CSR_HW_REV);
-}
-
 /* Size of one Rx buffer in host DRAM */
 #define IWL_RX_BUF_SIZE_4K (4 * 1024)
 #define IWL_RX_BUF_SIZE_8K (8 * 1024)
@@ -1769,7 +1762,6 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
        struct iwl_priv *priv;
        struct ieee80211_hw *hw;
        u16 num_mac;
-       u32 hw_rev;
 
        /************************
         * 1. Allocating HW data
@@ -1818,9 +1810,8 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
        /***********************
         * 3. Read REV register
         ***********************/
-       hw_rev = iwl_hw_detect(priv);
        IWL_INFO(priv, "Detected %s, REV=0x%X\n",
-               cfg(priv)->name, hw_rev);
+               cfg(priv)->name, trans(priv)->hw_rev);
 
        err = iwl_trans_start_hw(trans(priv));
        if (err)
@@ -1830,7 +1821,7 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
         * 4. Read EEPROM
         *****************/
        /* Read the EEPROM */
-       err = iwl_eeprom_init(priv, hw_rev);
+       err = iwl_eeprom_init(priv, trans(priv)->hw_rev);
        /* Reset chip to save power until we load uCode during "up". */
        iwl_trans_stop_hw(trans(priv));
        if (err) {
index 4b711b790a9030892a0c5a8d94caf44910d44f47..ed2a9216d80784376a4ba72c1d871b2a72dc150a 100644 (file)
@@ -2317,6 +2317,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct iwl_shared *shrd,
        trans->dev = &pdev->dev;
        trans->irq = pdev->irq;
        trans_pcie->pci_dev = pdev;
+       trans->hw_rev = iwl_read32(trans, CSR_HW_REV);
        trans->hw_id = (pdev->device << 16) + pdev->subsystem_device;
        snprintf(trans->hw_id_str, sizeof(trans->hw_id_str),
                 "PCI ID: 0x%04X:0x%04X", pdev->device, pdev->subsystem_device);
index 0359d71e554f9ad011c6aa8e6830c0809fed2b8a..a305e96d82a0910b6ac0d438fe4e4dcb184a4b66 100644 (file)
@@ -253,6 +253,7 @@ struct iwl_trans {
 
        struct device *dev;
        unsigned int irq;
+       u32 hw_rev;
        u32 hw_id;
        char hw_id_str[52];