瀏覽代碼

iwlagn: Enable PCI L1 ACTIVE state after uCode has been loaded

PCI L1 Active needs to be disabled while loading the uCode so that the bus
doesn't go to sleep. The enablement of L1 Active should be done after
the uCode has sent the ALIVE response. The enablement of L1 Active was
missing.
Enabling L1 Active allows to save power if the BIOS / bus driver allows
it.

I measured the power consumption while not associated and
idle/associated:
L1 Active disabled: 39 mA = 130mW
L1 Active enabled:   6 mA = 20 mW

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Grumbach, Emmanuel 14 年之前
父節點
當前提交
e7cad69cda
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      drivers/net/wireless/iwlwifi/iwl-agn-ucode.c

+ 4 - 0
drivers/net/wireless/iwlwifi/iwl-agn-ucode.c

@@ -531,6 +531,10 @@ int iwlagn_alive_notify(struct iwl_priv *priv)
 
 	spin_unlock_irqrestore(&priv->lock, flags);
 
+	/* Enable L1-Active */
+	iwl_clear_bits_prph(priv, APMG_PCIDEV_STT_REG,
+			  APMG_PCIDEV_STT_VAL_L1_ACT_DIS);
+
 	iwlagn_send_wimax_coex(priv);
 
 	iwlagn_set_Xtal_calib(priv);