iwlwifi: pcie: enable oscillator for L1 exit
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 24 Dec 2013 12:15:41 +0000 (14:15 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 13 Jan 2014 20:17:05 +0000 (22:17 +0200)
commit2d93aee152b1758a94a18fe15d72153ba73b5679
tree478c9f9927a38b6e7daae2a23ef8aa8501bc1870
parent2775613f4ff32f8be2cae42d542b7fbefcafbfbe
iwlwifi: pcie: enable oscillator for L1 exit

Enabling the oscillator consumes slightly more power (100uA)
but allows to make sure that we exit from L1 on time.

Not doing so might lead to a PCIe specification violation
since we might wake up from L1 at the wrong time.
This issue has been identified on 3160 and 7260 only.
On older NICs L1 off is not enabled, on newer NICs (7265),
the issue is fixed.

When the bug occurs the user sees that the NIC has
disappeared from the PCI bridge, any access to the device
returns 0xff.

This fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=64541

and has been extensively discussed here:
http://markmail.org/thread/mfmpzqt3r333n4bo

Cc: stable@vger.kernel.org [3.10+]
Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration")
Reported-and-tested-by: wzyboy <wzyboy@wzyboy.org>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/iwl-prph.h
drivers/net/wireless/iwlwifi/pcie/trans.c