1. 13 4月, 2014 7 次提交
  2. 06 4月, 2014 1 次提交
    • E
      iwlwifi: pcie: don't leave the new NICs awake for commands · e7f76340
      Emmanuel Grumbach 提交于
      A hardware bug had been discovered on 7260 / 3160 and 7265
      and the workaround for this bug is to force the NIC to stay
      awake as long as we have host commands in flight. This
      workaround has been introduced for all NICs in a previous
      patch:
      
      b9439491 ("iwlwifi: pcie: keep the NIC awake when commands are in flight")
      
      In newer NICs, this bug is solved, so we can let the NIC go
      to sleep even when we send commands. The hardware will wake
      up when we increment the scheduler write pointer.
      Make the workaround conditional to only use it on affected
      hardware.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      e7f76340
  3. 10 3月, 2014 2 次提交
    • J
      iwlwifi: return whether to stop from rfkill method · 14cfca71
      Johannes Berg 提交于
      When indicating RF-kill toggle to the higher layer, that
      may in turn call back to the transport (for MVM at least)
      to turn off the device quickly. Instead of that, allow it
      to return whether or not the device should be turned off,
      this gets rid of the call indirection and will help make
      the API more consistent when we go back to non-threaded
      interrupts again for PCIe.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      14cfca71
    • A
      iwlwifi: pcie: enable LP XTAL to reduce power consumption · a812cba9
      Alexander Bondar 提交于
      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: NAlexander Bondar <alexander.bondar@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      a812cba9
  4. 09 3月, 2014 1 次提交
  5. 05 3月, 2014 1 次提交
  6. 21 2月, 2014 1 次提交
  7. 13 2月, 2014 2 次提交
  8. 04 2月, 2014 9 次提交
  9. 31 1月, 2014 1 次提交
  10. 20 1月, 2014 1 次提交
    • E
      iwlwifi: pcie: don't panic on host commands in iwldvm · 23e76d1a
      Emmanuel Grumbach 提交于
      None of the devices supported by iwldvm have support for
      shadow registers. This means that we wake the NIC
      when we increment the write pointer on Tx ring.
      This happened even before my bad commit mentionned below.
      Since my commit below, we wake up the NIC when we put a
      host command on the ring regardless of shadow register
      support. This means that in iwldvm (when the NIC doesn't
      support shadow register), we wake up the NIC twice:
      
      pcie_enqueue_hcmd:
      	wake up the NIC
      	iwl_pcie_txq_inc_wr_ptr:
      		wake up the NIC - no shadow reg support
      
      Since waking up the NIC means that we need to acquire a
      spinlock, this obviously leads to a recursive spinlock
      and hence a freeze.
      
      Fixes: b9439491 ("iwlwifi: pcie: keep the NIC awake when commands are in flight")
      Reported-by: NJanusz Dziedzic <janusz.dziedzic@gmail.com>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      23e76d1a
  11. 14 1月, 2014 2 次提交
  12. 01 1月, 2014 5 次提交
  13. 31 12月, 2013 1 次提交
  14. 22 12月, 2013 5 次提交
  15. 18 12月, 2013 1 次提交