]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iwlwifi: dvm: run INIT firmware again upon .start()
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 16 Mar 2015 07:08:07 +0000 (09:08 +0200)
committerJiri Slaby <jslaby@suse.cz>
Wed, 22 Apr 2015 06:58:33 +0000 (08:58 +0200)
commit 9c8928f5176766bec79f272bd47b7124e11cccbd upstream.

The assumption before this patch was that we don't need to
run again the INIT firmware after the system booted. The
INIT firmware runs calibrations which impact the physical
layer's behavior.
Users reported that it may be helpful to run these
calibrations again every time the interface is brought up.
The penatly is minimal, since the calibrations run fast.
This fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=94341

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/net/wireless/iwlwifi/dvm/dev.h
drivers/net/wireless/iwlwifi/dvm/ucode.c

index a79fdd137f956ce5cb4de2ef7e1c0f239e76895a..3b19335f9c50db4cbe9bbd10a03ed3b820cd8c91 100644 (file)
@@ -708,7 +708,6 @@ struct iwl_priv {
        unsigned long reload_jiffies;
        int reload_count;
        bool ucode_loaded;
-       bool init_ucode_run;            /* Don't run init uCode again */
 
        u8 plcp_delta_threshold;
 
index 86270b69cd024c3e9fe88f6361b15acc1f77eb39..72801849adf548253dd2ce18107162f8ca767741 100644 (file)
@@ -425,9 +425,6 @@ int iwl_run_init_ucode(struct iwl_priv *priv)
        if (!priv->fw->img[IWL_UCODE_INIT].sec[0].len)
                return 0;
 
-       if (priv->init_ucode_run)
-               return 0;
-
        iwl_init_notification_wait(&priv->notif_wait, &calib_wait,
                                   calib_complete, ARRAY_SIZE(calib_complete),
                                   iwlagn_wait_calib, priv);
@@ -447,8 +444,6 @@ int iwl_run_init_ucode(struct iwl_priv *priv)
         */
        ret = iwl_wait_notification(&priv->notif_wait, &calib_wait,
                                        UCODE_CALIB_TIMEOUT);
-       if (!ret)
-               priv->init_ucode_run = true;
 
        goto out;