1. 14 2月, 2019 3 次提交
    • H
      iwlwifi: mvm: add support for 32kHz external clock indication · 48e775e6
      Haim Dreyfuss 提交于
      In low power modes, the chip clock source for platform integrated
      devices is 32kHz. It is generated internally and supplied by a crystal
      oscillator. However using a 32kHz sourced from crystal oscillator
      has high power penalty.
      
      There is an option to get an external 32kHz clock from the platform. Past
      experience shows that the reliability is platform dependent,
      i.e. on some platforms it works good and on other it doesn’t.
      
      Working from external clock will save 0.5 mW in sleep state, from overall
      1.8mW that we have today, i.e. almost 30%.
      
      Each OEM can enable or disable the use of the external 32kHz clock by
      setting a BIOS configuration. In case the OEM configured to use 32kHz
      external clock the driver will pass this indication to the FW.
      Signed-off-by: NHaim Dreyfuss <haim.dreyfuss@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      48e775e6
    • M
      iwlwifi: add FW recovery flow · f130bb75
      Mordechay Goodstein 提交于
      Add new API and TLV for the ability to send commands in the beginning
      and end of reset flow.
      
      The full flow of recovery is:
      
      1. While loading FW, get address (from the TLV) of target buffer
         to read in case of reset
      2. If an error/assert happens read the address data from step 1.
      3. Reset the HW and load the FW.
      4. Send the data read in step 2.
      5. Add station keys
      6. Send notification to FW that reset flow is done.
      
      The main use of the recovery flow is for support in PN/SN recovery
      when offloaded
      Signed-off-by: NMordechay Goodstein <mordechay.goodstein@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      f130bb75
    • S
      iwlwifi: receive umac and lmac error table addresses from TLVs · 22463857
      Shahar S Matityahu 提交于
      TLV 54 holds umac debug related addresses.
      TLV 55 holds lmac debug related addresses.
      These TLVs aim to replace the alive notification data in the future.
      
      Parse and keep error table addresses received from the TLVs
      for both lmac and umac and use these addresses instead of the pointer
      received from alive notification.
      
      The feature supports only unified image.
      Signed-off-by: NShahar S Matityahu <shahar.s.matityahu@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      22463857
  2. 04 2月, 2019 4 次提交
  3. 29 1月, 2019 1 次提交
  4. 26 1月, 2019 1 次提交
    • S
      iwlwifi: mvm: support mac80211 TXQs model · cfbc6c4c
      Sara Sharon 提交于
      Move to use the new mac80211 TXQs implementation. This has
      quite a few benefits for us. We can get rid of the awkward
      mapping of DQA to mac80211 queues. We can stop buffering
      traffic while waiting for the queue to be allocated. We can
      also use mac80211 AMSDUs instead of building it ourselves.
      
      The usage is pretty simple:
      Each ieee80211_txq contains iwl_mvm_txq. There is such a
      queue for each TID, and one for management frames. We keep
      having static AP queues for probes and non-bufferable MMPDUs,
      along with broadcast and multicast queues. Those are being
      used from the "old" TX invocation path - iwl_mvm_mac_tx.
      
      When there is a new frame in a TXQ, iwl_mvm_mac_wake_tx is
      being called, and either invokes the TX path, or allocates
      the queue if it does not exist.
      
      Most of the TX path is left untouched, although we can consider
      cleaning it up some more, for example get rid of the duplication
      of txq_id in both iwl_mvm_txq and iwl_mvm_dqa_txq_info.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      cfbc6c4c
  5. 17 12月, 2018 1 次提交
  6. 14 12月, 2018 3 次提交
  7. 23 11月, 2018 2 次提交
  8. 16 11月, 2018 2 次提交
    • L
      iwlwifi: mvm: don't use SAR Geo if basic SAR is not used · 5d041c46
      Luca Coelho 提交于
      We can't use SAR Geo if basic SAR is not enabled, since the SAR Geo
      tables define offsets in relation to the basic SAR table in use.
      
      To fix this, make iwl_mvm_sar_init() return one in case WRDS is not
      available, so we can skip reading WGDS entirely.
      
      Fixes: a6bff3cb ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table")
      Cc: stable@vger.kernel.org # 4.12+
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      5d041c46
    • M
      iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE · 66e83903
      Matt Chen 提交于
      From coreboot/BIOS:
      Name ("WGDS", Package() {
       Revision,
       Package() {
           DomainType,                         // 0x7:WiFi ==> We miss this one.
           WgdsWiFiSarDeltaGroup1PowerMax1,    // Group 1 FCC 2400 Max
           WgdsWiFiSarDeltaGroup1PowerChainA1, // Group 1 FCC 2400 A Offset
           WgdsWiFiSarDeltaGroup1PowerChainB1, // Group 1 FCC 2400 B Offset
           WgdsWiFiSarDeltaGroup1PowerMax2,    // Group 1 FCC 5200 Max
           WgdsWiFiSarDeltaGroup1PowerChainA2, // Group 1 FCC 5200 A Offset
           WgdsWiFiSarDeltaGroup1PowerChainB2, // Group 1 FCC 5200 B Offset
           WgdsWiFiSarDeltaGroup2PowerMax1,    // Group 2 EC Jap 2400 Max
           WgdsWiFiSarDeltaGroup2PowerChainA1, // Group 2 EC Jap 2400 A Offset
           WgdsWiFiSarDeltaGroup2PowerChainB1, // Group 2 EC Jap 2400 B Offset
           WgdsWiFiSarDeltaGroup2PowerMax2,    // Group 2 EC Jap 5200 Max
           WgdsWiFiSarDeltaGroup2PowerChainA2, // Group 2 EC Jap 5200 A Offset
           WgdsWiFiSarDeltaGroup2PowerChainB2, // Group 2 EC Jap 5200 B Offset
           WgdsWiFiSarDeltaGroup3PowerMax1,    // Group 3 ROW 2400 Max
           WgdsWiFiSarDeltaGroup3PowerChainA1, // Group 3 ROW 2400 A Offset
           WgdsWiFiSarDeltaGroup3PowerChainB1, // Group 3 ROW 2400 B Offset
           WgdsWiFiSarDeltaGroup3PowerMax2,    // Group 3 ROW 5200 Max
           WgdsWiFiSarDeltaGroup3PowerChainA2, // Group 3 ROW 5200 A Offset
           WgdsWiFiSarDeltaGroup3PowerChainB2, // Group 3 ROW 5200 B Offset
       }
      })
      
      When read the ACPI data to find out the WGDS, the DATA_SIZE is never
      matched.
      From the above format, it gives 19 numbers, but our driver is hardcode
      as 18.
      Fix it to pass then can parse the data into our wgds table.
      Then we will see:
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init Sending GEO_TX_POWER_LIMIT
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[0]
      Band[0]: chain A = 68 chain B = 69 max_tx_power = 54
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[0]
      Band[1]: chain A = 48 chain B = 49 max_tx_power = 70
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[1]
      Band[0]: chain A = 51 chain B = 67 max_tx_power = 50
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[1]
      Band[1]: chain A = 69 chain B = 70 max_tx_power = 68
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[2]
      Band[0]: chain A = 49 chain B = 50 max_tx_power = 48
      iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[2]
      Band[1]: chain A = 52 chain B = 53 max_tx_power = 51
      
      Cc: stable@vger.kernel.org # 4.12+
      Fixes: a6bff3cb ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table")
      Signed-off-by: NMatt Chen <matt.chen@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      66e83903
  9. 08 10月, 2018 1 次提交
  10. 06 10月, 2018 3 次提交
  11. 31 8月, 2018 2 次提交
  12. 02 8月, 2018 1 次提交
  13. 26 7月, 2018 1 次提交
  14. 20 4月, 2018 3 次提交
  15. 16 3月, 2018 1 次提交
    • L
      iwlwifi: add shared clock PHY config flag for some devices · 86a2b204
      Luca Coelho 提交于
      Some devices use a shared clock which is very sensitive to variations
      and cause trouble in some situations.  We need to set a bit in the phy
      configuration to indicate that to the FW.  To make this generic, add a
      extra_phy_config_flags element to the device configuration and OR it
      into the phy_cfg before sending it to the firmware.  And also create a
      set of configurations for devices that use shared clocks and need this
      extra bit to be set.
      
      Fixes: c62446d2 ("iwlwifi: add new 9460 series PCI IDs")
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      86a2b204
  16. 06 12月, 2017 1 次提交
    • L
      iwlwifi: mvm: make init_dbg effective only on failure · f4744258
      Liad Kaufman 提交于
      If FW loads without a problem, leaving init_dbg on can
      cause a confusion, since the user won't necessarily
      remember it is still turned on, and there are flows in
      which everything continues as usual, only without
      stopping the device after INIT, even if there is no FW
      assert. On 22000 HW, for instance, this causes a
      warning, since the paging is getting initialized twice.
      
      Solve the issue by making this module param effective
      only if the FW indeed asserts during INIT.
      Signed-off-by: NLiad Kaufman <liad.kaufman@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      f4744258
  17. 28 11月, 2017 1 次提交
  18. 03 11月, 2017 1 次提交
  19. 18 10月, 2017 2 次提交
  20. 06 10月, 2017 5 次提交
  21. 18 8月, 2017 1 次提交