1. 09 Jun, 2015 5 commits
  2. 01 Jun, 2015 2 commits
    • Michal Kazior's avatar
      ath10k: fix possible ps sleep crash · 0bcbbe67
      Michal Kazior authored
      If probing failed pci sleep timer could remain
      running and trigger after ath10k structures were
      freed causing invalid pointer dereference:
      
       BUG: unable to handle kernel paging request at ffffc90001c80004
       IP: [<ffffffff81354728>] iowrite32+0x38/0x40
       ...
       Call Trace:
        <IRQ>
        [<ffffffffa00da048>] ? __ath10k_pci_sleep+0x48/0x60 [ath10k_pci]
        [<ffffffffa00da44e>] ath10k_pci_ps_timer+0x5e/0x80 [ath10k_pci]
        [<ffffffff810b210e>] call_timer_fn+0x3e/0x120
        [<ffffffffa00da3f0>] ? ath10k_pci_wake+0x150/0x150 [ath10k_pci]
        [<ffffffff810b3d11>] run_timer_softirq+0x201/0x2e0
        [<ffffffff8105d73f>] __do_softirq+0xaf/0x290
        [<ffffffff8105da95>] irq_exit+0x95/0xa0
        [<ffffffff81950406>] smp_apic_timer_interrupt+0x46/0x60
        [<ffffffff8194e77e>] apic_timer_interrupt+0x6e/0x80
      
      Fixes: 77258d40
      
       ("ath10k: enable pci soc powersaving")
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      0bcbbe67
    • Rajkumar Manoharan's avatar
      ath10k: bypass PLL setting on target init for QCA9888 · 163f5264
      Rajkumar Manoharan authored
      
      
      Some of of qca988x solutions are having global reset issue
      during target initialization. Bypassing PLL setting before
      downloading firmware and letting the SoC run on REF_CLK is fixing
      the problem. Corresponding firmware change is also needed to set
      the clock source once the target is initialized. Since 10.2.4
      firmware is having this ROM patch, applying skip_clock_init only
      for 10.2.4 firmware versions.
      Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      163f5264
  3. 29 May, 2015 4 commits
    • Michal Kazior's avatar
      ath10k: add missing firmware declarations · e451c1db
      Michal Kazior authored
      
      
      This could lead userspace initram images getting
      built without necessary firmware files included
      leading to probing failures of ath10k on boot with
      QCA61X4.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      e451c1db
    • Michal Kazior's avatar
      ath10k: fix inconsistent survey reports · 44b7d483
      Michal Kazior authored
      
      
      In some cases some channel survey data was
      reported incorrect.
      
      Channel info events were expected to come in pairs
      without and with COMPLETE flag set respectively
      for each channel visit during scan.
      
      The known deviation from this is rule for last
      scan chan info and first (next) scan chan info
      both have COMPLETE flag set. This was either
      programmed with the intent of providing BSS cycle
      count info or this is an artefact of firmware scan
      state machine. Either way this is useless due to
      short wraparound time, wraparound quirks and no
      overflow notification.
      
      Survey dumps now include only data gathered during
      scan channel visits that can be computed
      correctly.
      
      This should improve hostapd ACS a little bit.
      Reported-by: default avatarSrinivasa Duvvuri <sduvvuri@chromium.org>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      44b7d483
    • Michal Kazior's avatar
      ath10k: handle cycle counter wraparound · 587f7031
      Michal Kazior authored
      
      
      When QCA988X cycle counter HW register wraps
      around it resets to 0x7fffffff instead of 0. All
      other cycle counter related registers are divided
      by 2 so they never wraparound themselves. QCA61X4
      has a uniform CC and it wraparounds in a regular
      fashion though.
      
      Worst case wraparound time is approx 24 seconds
      (2**31 / 88MHz). Since scan channel visit times
      are max 5 seconds (offchannel case) it is
      guaranteed there's been at most 1 wraparound and
      it is possible to compute survey active time
      value. It is, however, impossible to determine the
      point at which Rx Clear Count has been divided by
      two so it is not reported upon wraparound.
      
      This fixes some occasional incorrect survey data
      on QCA988X as some channels (depending on how/when
      scan/offchannel requests were requested) would
      have approx 24 sec active time which wasn't
      actually the case.
      
      This should improve hostapd ACS a little bit.
      Reported-by: default avatarSrinivasa Duvvuri <sduvvuri@chromium.org>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      587f7031
    • Michal Kazior's avatar
      ath10k: move cycle_count macro · 0936ea3f
      Michal Kazior authored
      
      
      The macro isn't WMI specific. Instead it is
      related to hardware chip so move the macro
      accordingly. While at it document the magic value.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      0936ea3f
  4. 22 May, 2015 5 commits
    • Michal Kazior's avatar
      ath10k: add new 4addr related fw_feature · 48f4ca34
      Michal Kazior authored
      
      
      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: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      48f4ca34
    • Michal Kazior's avatar
      ath10k: enable pci soc powersaving · 77258d40
      Michal Kazior authored
      
      
      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: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      77258d40
    • Janusz Dziedzic's avatar
      ath10k: fix idle power consumption · 917826be
      Janusz Dziedzic authored
      
      
      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: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      917826be
    • Janusz Dziedzic's avatar
      ath10k: enable ASPM · 76d870ed
      Janusz Dziedzic authored
      
      
      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: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      76d870ed
    • Vladimir Kondratiev's avatar
      wil6210: fix format specifier for dma_addr_t · 80714b09
      Vladimir Kondratiev authored
      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: default avatarVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      80714b09
  5. 11 May, 2015 2 commits
    • Vasanthakumar Thiagarajan's avatar
      ath10k: fix survey information reporting · 2c2d2faf
      Vasanthakumar Thiagarajan authored
      
      
      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: default avatarVasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      2c2d2faf
    • Peter Oh's avatar
      ath10k: increase relay buffer size of spectral scan · 184a394e
      Peter Oh authored
      
      
      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: default avatarPeter Oh <poh@qca.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      184a394e
  6. 09 May, 2015 11 commits
  7. 06 May, 2015 1 commit
  8. 05 May, 2015 1 commit
  9. 04 May, 2015 8 commits
  10. 03 May, 2015 1 commit