]> git.karo-electronics.de Git - linux-beck.git/commitdiff
iwlwifi: move iwlagn_fw_error to iwl-agn.c
authorMeenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Wed, 14 Mar 2012 01:00:15 +0000 (18:00 -0700)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 12 Apr 2012 21:22:26 +0000 (14:22 -0700)
Move this as part of iwl-core.c cleanup.

Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@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-agn.h
drivers/net/wireless/iwlwifi/iwl-core.c

index b0cadcc30b608ac8e76253abb068e8b022c389a8..5773cbe35dd7da879445538003e7bf627b0d0587 100644 (file)
@@ -2119,6 +2119,65 @@ int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
        return pos;
 }
 
+static void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)
+{
+       unsigned int reload_msec;
+       unsigned long reload_jiffies;
+
+#ifdef CONFIG_IWLWIFI_DEBUG
+       if (iwl_have_debug_level(IWL_DL_FW_ERRORS))
+               iwl_print_rx_config_cmd(priv, IWL_RXON_CTX_BSS);
+#endif
+
+       /* uCode is no longer loaded. */
+       priv->ucode_loaded = false;
+
+       /* Set the FW error flag -- cleared on iwl_down */
+       set_bit(STATUS_FW_ERROR, &priv->status);
+
+       /* Cancel currently queued command. */
+       clear_bit(STATUS_HCMD_ACTIVE, &priv->shrd->status);
+
+       iwl_abort_notification_waits(&priv->notif_wait);
+
+       /* Keep the restart process from trying to send host
+        * commands by clearing the ready bit */
+       clear_bit(STATUS_READY, &priv->status);
+
+       wake_up(&trans(priv)->wait_command_queue);
+
+       if (!ondemand) {
+               /*
+                * If firmware keep reloading, then it indicate something
+                * serious wrong and firmware having problem to recover
+                * from it. Instead of keep trying which will fill the syslog
+                * and hang the system, let's just stop it
+                */
+               reload_jiffies = jiffies;
+               reload_msec = jiffies_to_msecs((long) reload_jiffies -
+                                       (long) priv->reload_jiffies);
+               priv->reload_jiffies = reload_jiffies;
+               if (reload_msec <= IWL_MIN_RELOAD_DURATION) {
+                       priv->reload_count++;
+                       if (priv->reload_count >= IWL_MAX_CONTINUE_RELOAD_CNT) {
+                               IWL_ERR(priv, "BUG_ON, Stop restarting\n");
+                               return;
+                       }
+               } else
+                       priv->reload_count = 0;
+       }
+
+       if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) {
+               if (iwlagn_mod_params.restart_fw) {
+                       IWL_DEBUG_FW_ERRORS(priv,
+                                 "Restarting adapter due to uCode error.\n");
+                       queue_work(priv->workqueue, &priv->restart);
+               } else
+                       IWL_DEBUG_FW_ERRORS(priv,
+                                 "Detected FW error, but not restarting\n");
+       }
+}
+
 static void iwl_nic_error(struct iwl_op_mode *op_mode)
 {
        struct iwl_priv *priv = IWL_OP_MODE_GET_DVM(op_mode);
index ac0e8ba98a1dcd7087992d11abb3f7782f65ddaa..455231988d2464b3534c57a4a98c5fe2b87d6154 100644 (file)
@@ -149,7 +149,6 @@ int iwl_send_calib_results(struct iwl_priv *priv);
 int iwl_calib_set(struct iwl_priv *priv,
                  const struct iwl_calib_hdr *cmd, int len);
 void iwl_calib_free_results(struct iwl_priv *priv);
-void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand);
 int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
                            char **buf, bool display);
 int iwlagn_hw_valid_rtc_data_addr(u32 addr);
index f43a1e57e6c1152c4da077f03a5d9a7e9d83eba3..42789ed6e49f084105030ca40906f665e764d5db 100644 (file)
@@ -66,65 +66,6 @@ void iwl_print_rx_config_cmd(struct iwl_priv *priv,
 }
 #endif
 
-void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)
-{
-       unsigned int reload_msec;
-       unsigned long reload_jiffies;
-
-#ifdef CONFIG_IWLWIFI_DEBUG
-       if (iwl_have_debug_level(IWL_DL_FW_ERRORS))
-               iwl_print_rx_config_cmd(priv, IWL_RXON_CTX_BSS);
-#endif
-
-       /* uCode is no longer loaded. */
-       priv->ucode_loaded = false;
-
-       /* Set the FW error flag -- cleared on iwl_down */
-       set_bit(STATUS_FW_ERROR, &priv->status);
-
-       /* Cancel currently queued command. */
-       clear_bit(STATUS_HCMD_ACTIVE, &priv->shrd->status);
-
-       iwl_abort_notification_waits(&priv->notif_wait);
-
-       /* Keep the restart process from trying to send host
-        * commands by clearing the ready bit */
-       clear_bit(STATUS_READY, &priv->status);
-
-       wake_up(&trans(priv)->wait_command_queue);
-
-       if (!ondemand) {
-               /*
-                * If firmware keep reloading, then it indicate something
-                * serious wrong and firmware having problem to recover
-                * from it. Instead of keep trying which will fill the syslog
-                * and hang the system, let's just stop it
-                */
-               reload_jiffies = jiffies;
-               reload_msec = jiffies_to_msecs((long) reload_jiffies -
-                                       (long) priv->reload_jiffies);
-               priv->reload_jiffies = reload_jiffies;
-               if (reload_msec <= IWL_MIN_RELOAD_DURATION) {
-                       priv->reload_count++;
-                       if (priv->reload_count >= IWL_MAX_CONTINUE_RELOAD_CNT) {
-                               IWL_ERR(priv, "BUG_ON, Stop restarting\n");
-                               return;
-                       }
-               } else
-                       priv->reload_count = 0;
-       }
-
-       if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) {
-               if (iwlagn_mod_params.restart_fw) {
-                       IWL_DEBUG_FW_ERRORS(priv,
-                                 "Restarting adapter due to uCode error.\n");
-                       queue_work(priv->workqueue, &priv->restart);
-               } else
-                       IWL_DEBUG_FW_ERRORS(priv,
-                                 "Detected FW error, but not restarting\n");
-       }
-}
-
 int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
 {
        int ret;