]> Pileus Git - ~andy/linux/commitdiff
iwlwifi: move the RF kill logic from iwl_probe to transport
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 8 Jan 2012 11:48:21 +0000 (13:48 +0200)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 2 Feb 2012 22:36:51 +0000 (14:36 -0800)
This is another clean up of the proble flow.

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

index 88462467a95417e18ce9084a25bb39369d143f80..14f8b750c7c5395a0be0a7e53561a796bfe39398 100644 (file)
@@ -1815,13 +1815,6 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
        spin_lock_init(&trans(priv)->reg_lock);
        spin_lock_init(&priv->shrd->lock);
 
-       /*
-        * stop and reset the on-board processor just in case it is in a
-        * strange state ... like being left stranded by a primary kernel
-        * and this is now the kdump kernel trying to start up
-        */
-       iwl_write32(trans(priv), CSR_RESET, CSR_RESET_REG_FLAG_NEVO_RESET);
-
        /***********************
         * 3. Read REV register
         ***********************/
@@ -1890,22 +1883,6 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
        iwl_setup_rx_handlers(priv);
        iwl_testmode_init(priv);
 
-       /*********************************************
-        * 8. Enable interrupts
-        *********************************************/
-
-       iwl_enable_rfkill_int(priv);
-
-       /* If platform's RF_KILL switch is NOT set to KILL */
-       if (iwl_read32(trans(priv),
-                       CSR_GP_CNTRL) & CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)
-               clear_bit(STATUS_RF_KILL_HW, &priv->shrd->status);
-       else
-               set_bit(STATUS_RF_KILL_HW, &priv->shrd->status);
-
-       wiphy_rfkill_set_hw_state(priv->hw->wiphy,
-               test_bit(STATUS_RF_KILL_HW, &priv->shrd->status));
-
        iwl_power_initialize(priv);
        iwl_tt_initialize(priv);
 
index 43e894f6737dbca3d181dec6e497e8cb587ca567..362444a7ed57f61fe646621d8258155bb07e5a7e 100644 (file)
@@ -1393,6 +1393,17 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
 
        iwl_apm_init(trans);
 
+       /* If platform's RF_KILL switch is NOT set to KILL */
+       if (iwl_read32(trans,
+                       CSR_GP_CNTRL) & CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)
+               clear_bit(STATUS_RF_KILL_HW, &trans->shrd->status);
+       else
+               set_bit(STATUS_RF_KILL_HW, &trans->shrd->status);
+
+       iwl_set_hw_rfkill_state(priv(trans),
+                               test_bit(STATUS_RF_KILL_HW,
+                                        &trans->shrd->status));
+
        return err;
 
 error: