linux/drivers/net/wireless/iwlwifi
Alexander Bondar a812cba9bb iwlwifi: pcie: enable LP XTAL to reduce power consumption
1. Enable LP XTAL to avoid HW bug where device may consume much
power if FW is not loaded after device reset. LP XTAL is
disabled by default after device HW reset. Configure device's
"persistence" mode to avoid resetting XTAL again when SHRD_HW_RST
occurs in S3.

2. Add methods to access SHR (shared block memory space) directly from PCI
bus w/o need to power up MAC HW.

Shared internal registers (e.g. SHR_APMG_GP1, SHR_APMG_XTAL_CFG)can be
accessed directly from PCI bus through SHR arbiter even when MAC HW is
powered down. This is possible due to indirect read/write via
HEEP_CTRL_WRD_PCIEX_CTRL (0xEC) and HEEP_CTRL_WRD_PCIEX_DATA (0xF4)
registers.

Use iwl_write32()/iwl_read32() family to access these registers. The MAC HW
need not be powered up so no "grab inc access" is required.

For example, to read from SHR_APMG_GP1 register (0x1DC),
first, write to the control register:
HEEP_CTRL_WRD_PCIEX_CTRL[15:0] = 0x1DC (offset of the SHR_APMG_GP1 register)
HEEP_CTRL_WRD_PCIEX_CTRL[29:28] = 2 (read access)
second, read from the data register HEEP_CTRL_WRD_PCIEX_DATA[31:0].

To write the register, first, write to the data register
HEEP_CTRL_WRD_PCIEX_DATA[31:0] and then:
HEEP_CTRL_WRD_PCIEX_CTRL[15:0] = 0x1DC (offset of the SHR_APMG_GP1 register)
HEEP_CTRL_WRD_PCIEX_CTRL[29:28] = 3 (write access)

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2014-03-09 19:16:39 +02:00
..
dvm iwlwifi: make various things const 2014-02-13 10:18:43 +02:00
mvm iwlwifi: mvm: disable power on P2P client when BSS is added 2014-03-09 16:39:08 +02:00
pcie iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-1000.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-2000.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-5000.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-6000.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-7000.c iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-8000.c iwlwifi: 8000: add 11n only SKU of 8000 devices 2014-02-06 21:11:30 +02:00
iwl-agn-hw.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-config.h iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-csr.h iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-debug.c iwlwifi: export symbols only conditionally 2013-03-06 16:47:56 +01:00
iwl-debug.h iwlwifi: add enter/exit D0i3 ops 2014-02-03 22:23:39 +02:00
iwl-devtrace.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-devtrace.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-drv.c iwlwifi: mvm: fix a few wd_disable comments 2014-02-23 21:38:54 +02:00
iwl-drv.h iwlwifi: mvm: new NVM format in family 8000 2014-02-13 13:49:37 +02:00
iwl-eeprom-parse.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-eeprom-parse.h iwlwifi: mvm: new NVM format in family 8000 2014-02-13 13:49:37 +02:00
iwl-eeprom-read.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-eeprom-read.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-fh.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-fw-file.h iwlwifi: mvm: prepare infrastructure for more TLV flags 2014-02-23 21:32:22 +02:00
iwl-fw.h iwlwifi: mvm: prepare infrastructure for more TLV flags 2014-02-23 21:32:22 +02:00
iwl-io.c iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-io.h iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-modparams.h iwlwifi: mvm: fix a few wd_disable comments 2014-02-23 21:38:54 +02:00
iwl-notif-wait.c iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-notif-wait.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-nvm-parse.c iwlwifi: nvm: fix VHT capability antenna-dependent fields 2014-03-09 16:39:08 +02:00
iwl-nvm-parse.h iwlwifi: mvm: new NVM format in family 8000 2014-02-13 13:49:37 +02:00
iwl-op-mode.h iwlwifi: fix kerneldoc format 2014-02-03 22:43:51 +02:00
iwl-phy-db.c iwlwifi: change number of PAPD groups in PHY DB 2014-02-06 21:12:26 +02:00
iwl-phy-db.h iwlwifi: Update Copyright to 2014 2013-12-31 19:03:53 +02:00
iwl-prph.h iwlwifi: pcie: enable LP XTAL to reduce power consumption 2014-03-09 19:16:39 +02:00
iwl-trans.h iwlwifi: make various things const 2014-02-13 10:18:43 +02:00
Kconfig iwlwifi: rs: use const u16 for throughput tables 2014-02-03 22:23:37 +02:00
Makefile iwlwifi: Add 8000 HW family support 2014-02-03 22:23:31 +02:00