iwl4965: set power mode early
authorStanislaw Gruszka <sgruszka@redhat.com>
Thu, 1 Aug 2013 10:07:13 +0000 (12:07 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 10 Sep 2013 00:57:19 +0000 (01:57 +0100)
commit eca396d7a5bdcc1fd67b1b12f737c213ac78a6f4 upstream.

If device was put into a sleep and system was restarted or module
reloaded, we have to wake device up before sending other commands.
Otherwise it will fail to start with Microcode error.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
[bwh: Backported to 3.2: adjust filename, context, naming]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/wireless/iwlegacy/iwl4965-base.c

index d2fba9e..dd9846c 100644 (file)
@@ -1764,6 +1764,9 @@ static void iwl4965_alive_start(struct iwl_priv *priv)
 
        priv->active_rate = IWL_RATES_MASK;
 
+       iwl_legacy_power_update_mode(priv, true);
+       IWL_DEBUG_INFO(priv, "Updated power mode\n");
+
        if (iwl_legacy_is_associated_ctx(ctx)) {
                struct iwl_legacy_rxon_cmd *active_rxon =
                                (struct iwl_legacy_rxon_cmd *)&ctx->active;
@@ -1796,9 +1799,6 @@ static void iwl4965_alive_start(struct iwl_priv *priv)
        IWL_DEBUG_INFO(priv, "ALIVE processing complete.\n");
        wake_up(&priv->wait_command_queue);
 
-       iwl_legacy_power_update_mode(priv, true);
-       IWL_DEBUG_INFO(priv, "Updated power mode\n");
-
        return;
 
  restart: