1. 29 5月, 2015 1 次提交
  2. 22 5月, 2015 5 次提交
    • M
      ath10k: add new 4addr related fw_feature · 48f4ca34
      Michal Kazior 提交于
      Some firmware revisions pad 4th hw address in
      Native Wifi Rx decap. This is the case with 10.x
      and it was assumed that this is true for all
      firmware images.
      
      However QCA988X with 999.999.0.636 and QCA61X4
      with WLAN.RM.2.0-00088 don't have the padding.
      Hence add a feature flag indicating that the
      padding isn't present so firmware images can
      advertise it appropriately. This way driver will
      behave as it was before with old firmware blobs
      and doesn't cause any regressions from user
      perspective.
      
      Effectively this patch enables QCA988X with
      999.999.0.636 and QCA61X4 with WLAN.RM.2.0-00088
      to set up client bridging provided user has an
      updated firmware blob.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      48f4ca34
    • M
      ath10k: enable pci soc powersaving · 77258d40
      Michal Kazior 提交于
      By using SOC_WAKE register it is possible to bring
      down power consumption of QCA61X4 from 36mA to
      16mA when associated and idle.
      
      Currently the sleep threshold/grace period is at a
      very conservative value of 60ms.
      
      Contrary to QCA61X4 the QCA988X firmware doesn't
      have Rx/beacon filtering available for client mode
      and SWBA events are used for beaconing in AP/IBSS
      so the SoC needs to be woken up at least every
      ~100ms in most cases. This means that QCA988X
      is at a disadvantage and the power consumption
      won't drop as much as for QCA61X4.
      
      Due to putting irq-safe spinlocks on every MMIO
      read/write it is expected this can cause a little
      performance regression on some systems. I haven't
      done any thorough measurements but some of my
      tests don't show any extreme degradation.
      
      The patch removes some explicit pci_wake calls
      that were added in 320e14b8db51aa ("ath10k: fix
      some pci wake/sleep issues"). This is safe because
      all MMIO accesses are now wrapped and the device
      is woken up automatically if necessary.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      77258d40
    • J
      ath10k: fix idle power consumption · 917826be
      Janusz Dziedzic 提交于
      mac80211 can update vif powersave state while
      disconnected. Firmware doesn't behave nicely and
      consumes more power than necessary if PS is
      disabled on a non-started vdev. Hence
      force-enable PS for non-running vdevs.
      
      This reduces power drain on QCA61X4 from 88mA to
      36mA when interface is up and not associated.
      QCA988X wasn't measured.
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      917826be
    • J
      ath10k: enable ASPM · 76d870ed
      Janusz Dziedzic 提交于
      It is actually safe to enable ASPM after the
      device is booted up.
      
      This reduces power drain of QCA61X4 when driver is
      simply loaded (no interface is up) from 31mA to
      14mA. QCA988X wasn't measured but doesn't seem to
      regress in any other way.
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      76d870ed
    • V
      wil6210: fix format specifier for dma_addr_t · 80714b09
      Vladimir Kondratiev 提交于
      Fix format specifier used for dma_addr_t, namely use %pad
      Debug print virtual address for the same buffer as well.
      
      Fixes: dc16427b ("wil6210: Add pmc debug mechanism memory management")
      Signed-off-by: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      80714b09
  3. 11 5月, 2015 2 次提交
    • V
      ath10k: fix survey information reporting · 2c2d2faf
      Vasanthakumar Thiagarajan 提交于
      Rx clear count reported in wmi_chan_info_event is actually channel_busy_count
      not rx_frame_count. Send rx_clear_count through time_busy of survey_info
      and set SURVEY_INFO_TIME_BUSY in filled.
      
      iw wlan0 survey dump
      
      urvey data from wlan0
              frequency:                      5180 MHz [in use]
              noise:                          -103 dBm
              channel active time:            150 ms
              channel busy time:              22 ms
      Survey data from wlan0
              frequency:                      5200 MHz
              noise:                          -102 dBm
              channel active time:            146 ms
              channel busy time:              0 ms
      Signed-off-by: NVasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      2c2d2faf
    • P
      ath10k: increase relay buffer size of spectral scan · 184a394e
      Peter Oh 提交于
      Spectral scan supported by ath10k has capability to monitor and report
      through whole bands and channels, but current buffer size is too small
      to save reported spectral scan data.
      This results in dropping 5G channel reports at all when dual band card
      is used, so that users are not able to analyze spectral environments.
      Hence increase the buffer size to fix the problem.
      
      A spectral data size is vary based on the number of bins, so the unit
      buffer size, 1140, is chose to minimize relay buffer fragmentation.
      
      The total buffer size is also chose in tradeoff with spectral scan
      support vs. kernel memory consumption.
      Since theoretical maximum buffer size, 9.5MB, can be consumed with
      512 bins in dual bands, we target to cover up to 128 bins for all
      channels in dual bands and due to the buffer size limitation,
      spectral scan with bin number bigger than 128 needs to be run on
      single band each.
      Signed-off-by: NPeter Oh <poh@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      184a394e
  4. 09 5月, 2015 11 次提交
  5. 06 5月, 2015 1 次提交
  6. 05 5月, 2015 9 次提交
  7. 04 5月, 2015 1 次提交
  8. 29 4月, 2015 5 次提交
  9. 27 4月, 2015 1 次提交
    • M
      ath10k: implement more versatile set_bitrate_mask · 45c9abc0
      Michal Kazior 提交于
      Until now only a single fixed tx rate or nss was
      allowed to be set.
      
      The patch attempts to improve this by allowing
      most bitrate masks. The limitation is VHT MCS
      rates cannot be expressed separately using
      existing firmware interfaces and only the
      following VHT MCS ranges are supported: none, 0-7,
      0-8, and 0-9.
      
      This keeps the old behaviour when requesting
      single tx rate or single nss. The new bitrate mask
      logic is only applied to other cases that would
      return -EINVAL until now.
      
      Depending on firmware revisions some combinations
      may crash firmware so use with care, please.
      
      This depends on "ath10k: don't use reassoc flag".
      Without it key cache would effectively be
      invalidated upon bitrate change leading to
      communication being no longer possible.
      
      These work:
      
        iw wlan0 set bitrates legacy-5 6 12 ht-mcs-5 1 2 3
        iw wlan0 set bitrates legacy-5 ht-mcs-5 7 8 9
        iw wlan0 set bitrates legacy-5 24 ht-mcs-5 vht-mcs-5 1:0-9
      
      These won't work:
      
        iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0-5
        iw wlan0 set bitrates vht-mcs-5 2:7-9
      
      (note the invalid VHT MCS ranges)
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      45c9abc0
  10. 24 4月, 2015 1 次提交
    • J
      mac80211: remove support for IFF_PROMISC · df140465
      Johannes Berg 提交于
      This support is essentially useless as typically networks are encrypted,
      frames will be filtered by hardware, and rate scaling will be done with
      the intended recipient in mind. For real monitoring of the network, the
      monitor mode support should be used instead.
      
      Removing it removes a lot of corner cases.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      df140465
  11. 22 4月, 2015 3 次提交
    • J
      ath10k: enable IEEE80211_HW_SUPPORT_FAST_XMIT · 41fbf6e4
      Johannes Berg 提交于
      The driver can clearly enable fast-xmit since it does rate
      control in the device and thus must do duration calculation
      there as well.
      Acked-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      41fbf6e4
    • M
      ath10k: fix qca61x4 hw2.1 support · 11a002ef
      Michal Kazior 提交于
      During initialization firmware does some sort of
      memory switch between DRAM and IRAM. If
      configuration value for bank switching isn't
      correct device crashes during init.
      
      The new value prevents firmware 11.0.0.302 (and
      possibly others) for qca61x4 hw2.1 from crashing
      during init.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      11a002ef
    • M
      ath10k: allow loading device specific board files · de57e2c8
      Michal Kazior 提交于
      Some devices differ slightly and require different
      board files. If wrong board data is used they
      crash or behave incorrectly.
      
      These devices can be differentiated by looking at
      PCI subsystem device id. That is the case for
      qca61x4 devices at least.
      
      The board specific filename is constructed as:
      
       board-<bus>-<id>.bin
      
      For PCI in particular it is:
      
       board-pci-<vendor>:<dev>:<subsys_vendor>:<subsys_dev>.bin
      
      These files are looked in device/hw specific
      directories. Hence for Killer 1525 (qca6174 hw2.1)
      ath10k will request:
      
        /lib/firmware/ath10k/QCA6174/hw2.1/board-pci-168c:003e:1a56:1525.bin
      
      To not break any existing setups (e.g. in case
      some devices in the wild already have subsys ids)
      if a board specific file isn't found a generic one
      is used which is the one which would be used until
      now. This guarantees that after upgrading a driver
      device will not suddenly stop working due to
      now-missing specific board file. If this is the
      case a "fallback" string is appended to the info
      string when driver boots.
      
      Keep in mind this is distinct from cal-pci-*.bin
      files which contain full calibration data and MAC
      address. Cal data is aimed at systems where
      calibration data is stored out of band, e.g. on
      nand flash instead of device EEPROM - an approach
      taken by some AP/router vendors.
      
      Board files are more of a template and needs some
      bits to be filled in by the OTP program using
      device EEPROM contents.
      
      One could argue to map subsystem ids to some board
      design codename strings instead of using raw ids
      when building the board filename. Using a mapping
      however would make it a lot more cumbersome and
      time consuming (due to how patches propagate over
      various kernel trees) to add support for some new
      device board designs. Adding a board file is a lot
      quicker and doesn't require recompilation.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      de57e2c8