1. 08 2月, 2018 1 次提交
    • R
      Revert "ath10k: add sanity check to ie_len before parsing fw/board ie" · 9ce8b24a
      Ryan Hsu 提交于
      This reverts commit 9ed4f916.
      
      The commit introduced a regression that over read the ie with
      the padding.
      
      - the expected IE information
      
      ath10k_pci 0000:03:00.0: found firmware features ie (1 B)
      ath10k_pci 0000:03:00.0: Enabling feature bit: 6
      ath10k_pci 0000:03:00.0: Enabling feature bit: 7
      ath10k_pci 0000:03:00.0: features
      ath10k_pci 0000:03:00.0: 00000000: c0 00 00 00 00 00 00 00
      
      - the wrong IE with padding is read (0x77)
      
      ath10k_pci 0000:03:00.0: found firmware features ie (4 B)
      ath10k_pci 0000:03:00.0: Enabling feature bit: 6
      ath10k_pci 0000:03:00.0: Enabling feature bit: 7
      ath10k_pci 0000:03:00.0: Enabling feature bit: 8
      ath10k_pci 0000:03:00.0: Enabling feature bit: 9
      ath10k_pci 0000:03:00.0: Enabling feature bit: 10
      ath10k_pci 0000:03:00.0: Enabling feature bit: 12
      ath10k_pci 0000:03:00.0: Enabling feature bit: 13
      ath10k_pci 0000:03:00.0: Enabling feature bit: 14
      ath10k_pci 0000:03:00.0: Enabling feature bit: 16
      ath10k_pci 0000:03:00.0: Enabling feature bit: 17
      ath10k_pci 0000:03:00.0: Enabling feature bit: 18
      ath10k_pci 0000:03:00.0: features
      ath10k_pci 0000:03:00.0: 00000000: c0 77 07 00 00 00 00 00
      Tested-by: NMike Lothian <mike@fireburn.co.uk>
      Signed-off-by: NRyan Hsu <ryanhsu@codeaurora.org>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      9ce8b24a
  2. 07 2月, 2018 1 次提交
  3. 16 1月, 2018 2 次提交
  4. 09 1月, 2018 1 次提交
  5. 27 12月, 2017 9 次提交
  6. 19 12月, 2017 1 次提交
  7. 14 12月, 2017 4 次提交
  8. 11 12月, 2017 1 次提交
    • T
      mac80211: Add TXQ scheduling API · e937b8da
      Toke Høiland-Jørgensen 提交于
      This adds an API to mac80211 to handle scheduling of TXQs and changes the
      interface between driver and mac80211 for TXQ handling as follows:
      
      - The wake_tx_queue callback interface no longer includes the TXQ. Instead,
        the driver is expected to retrieve that from ieee80211_next_txq()
      
      - Two new mac80211 functions are added: ieee80211_next_txq() and
        ieee80211_schedule_txq(). The former returns the next TXQ that should be
        scheduled, and is how the driver gets a queue to pull packets from. The
        latter is called internally by mac80211 to start scheduling a queue, and
        the driver is supposed to call it to re-schedule the TXQ after it is
        finished pulling packets from it (unless the queue emptied).
      
      The ath9k and ath10k drivers are changed to use the new API.
      Signed-off-by: NToke Høiland-Jørgensen <toke@toke.dk>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e937b8da
  9. 13 10月, 2017 2 次提交
  10. 31 8月, 2017 1 次提交
    • H
      ath10k: activate user space firmware loading again · c0cc00f2
      Hauke Mehrtens 提交于
      In commit 9f5bcfe9 ("ath10k: silence firmware file probing
      warnings") the firmware loading was changed from request_firmware() to
      request_firmware_direct() to silence some warnings in case it fails.
      request_firmware_direct() directly searches in the file system only and
      does not send a hotplug event to user space in case it could not find
      the firmware directly.
      In LEDE we use a user space script to extract the calibration data from
      the flash memory which gets triggered by the hotplug event. This way the
      firmware gets extracted from some vendor specific partition when the
      driver requests this firmware. This mechanism does not work any more
      after this change.
      
      Fixes: 9f5bcfe9 ("ath10k: silence firmware file probing warnings")
      Signed-off-by: NHauke Mehrtens <hauke@hauke-m.de>
      Cc: Michal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c0cc00f2
  11. 08 8月, 2017 1 次提交
    • R
      ath10k: fix memory leak in rx ring buffer allocation · f35a7f91
      Rakesh Pillai 提交于
      The rx ring buffers are added to a hash table if
      firmware support full rx reorder. If the full rx
      reorder support flag is not set before allocating
      the rx ring buffers, none of the buffers are added
      to the hash table.
      
      There is a race condition between rx ring refill and
      rx buffer replenish from napi poll. The interrupts are
      enabled in hif start, before the rx ring is refilled during init.
      We replenish buffers from napi poll due to the interrupts which
      get enabled after hif start. Hence before the entire rx ring is
      refilled during the init, the napi poll replenishes a few buffers
      in steps of 100 buffers per attempt. During this rx ring replenish
      from napi poll, the rx reorder flag has not been set due to which
      the replenished buffers are not added to the hash table
      
      Set the rx full reorder support flag before we allocate
      the rx ring buffer to avoid the memory leak.
      Signed-off-by: NRakesh Pillai <pillair@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f35a7f91
  12. 03 8月, 2017 2 次提交
  13. 06 7月, 2017 1 次提交
  14. 21 6月, 2017 2 次提交
  15. 16 6月, 2017 1 次提交
  16. 01 6月, 2017 1 次提交
    • A
      ath10k: add BMI parameters to fix calibration from DT/pre-cal · a9f5f287
      Anilkumar Kolli 提交于
      QCA99X0, QCA9888, QCA9984 supports calibration data in
      either OTP or DT/pre-cal file. Current ath10k supports
      Calibration data from OTP only.
      
      If caldata is loaded from DT/pre-cal file, fetching board id
      and applying calibration parameters like tx power gets failed.
      
      error log:
      [   15.733663] ath10k_pci 0000:01:00.0: failed to fetch board file: -2
      [   15.741474] ath10k_pci 0000:01:00.0: could not probe fw (-2)
      
      This patch adds calibration data support from DT/pre-cal
      file.  Below parameters are used to get board id and
      applying calibration parameters from cal data.
      
      		EEPROM[OTP]	FLASH[DT/pre-cal file]
      Cal param	0x700		0x10000
      Board id	0x10		0x8000
      
      Tested on QCA9888 with pre-cal file.
      Signed-off-by: NAnilkumar Kolli <akolli@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a9f5f287
  17. 04 5月, 2017 3 次提交
  18. 19 4月, 2017 1 次提交
    • M
      ath10k: fix spectral scan for QCA99X0 family of chipsets · a4aab099
      Mohammed Shafi Shajakhan 提交于
      spectral_bin length (number of bins per fft sample) is usually
      a value where (2^n = value), n is an integer.  All of the QCA99X0
      family of chipsets seems to report a spectral_bin length of
      2^n + 'm' bytes, where m = 4, 12 based on the chipset. This 'm'
      bytes seems to carry some radar related info which is currently
      discarded only for 'bin_len = 68' bytes. Extend this discarding of
      irrelevant 'bin_len' for QCA9984, QCA9888, IPQ4019 as well by
      introducing a hardware parameter 'spectral_bin_discard'. Also
      for QCA988X based family of chipsets which doesn't seem to have this
      issue and also for some of the hardware which I have not tested
      like QCA6174/QCA9377 the existing behaviour is retained as it is.
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a4aab099
  19. 05 4月, 2017 2 次提交
  20. 09 3月, 2017 2 次提交
    • R
      ath10k: improve the firmware download time for QCA9377 · 912b6e88
      Ryan Hsu 提交于
      QCA9377 is the family of QCA61x4 which shared the same procedure
      to enable the hardware clock that could improve the firmware download time.
      Signed-off-by: NRyan Hsu <ryanhsu@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      912b6e88
    • R
      ath10k: improve the firmware download time for QCA6174 · 583a6629
      Ryan Hsu 提交于
      Len Brown reported the system resume time is taking more than 2 seconds in
      bug - https://bugzilla.kernel.org/show_bug.cgi?id=185621.
      
      The reason of the 2 seconds is due to the firmware download time.
      
      The chip is booted up in the default reference clock speed to handle the
      firmware download to chip memory and advanced to the support higher speed
      clock to run the firmware after all. The default reference clock in the
      hardware is slow so that the firmware download time is taking up to 2
      seconds for a 600KB firmware file.
      
      	[76796.349701] ath10k_pci : boot uploading firmware image len 688691
      	[76798.334612] ath10k_pci : htt tx max num pending tx 1056
      
      The resolution here is to enable the higher speed clock if the hardware
      supported before the firmware download at BMI stage, so that the hardware
      can handle the firmare download in a more efficient way. This can help to
      improve the firmware download time from 2 seconds to around 500ms for the
      same 600KB firmware file.
      
      	[322858.577919] ath10k_pci boot uploading firmware image len 688691
      	[322859.093094] ath10k_pci htt tx max num pending tx 1056
      
      The steps to advance to the higher speed clock is very hardware specific,
      so adding the hardware ops for the hardware that can support this.
      Reported-by: NLen Brown <lenb@kernel.org>
      Tested-by: NPaul Menzel <pmenzel@molgen.mpg.de>
      Signed-off-by: NRyan Hsu <ryanhsu@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      583a6629
  21. 02 3月, 2017 1 次提交
    • W
      ath10k: search SMBIOS for OEM board file extension · 1657b8f8
      Waldemar Rymarkiewicz 提交于
      Board Data File (BDF) is loaded upon driver boot-up procedure. The right
      board data file is identified, among others, by device and sybsystem ids.
      
      The problem, however, can occur when the (default) board data file cannot
      fulfill with the vendor requirements and it is necessary to use a different
      board data file.
      
      To solve the issue QCA uses SMBIOS type 0xF8 to store Board Data File Name
      Extension to specify the extension/variant name. The driver will take the
      extension suffix into consideration and will load the right (non-default)
      board data file if necessary.
      
      If it is unnecessary to use extension board data file, please leave the
      SMBIOS field blank and default configuration will be used.
      
      Example:
      If a default board data file for a specific board is identified by a string
            "bus=pci,vendor=168c,device=003e,subsystem-vendor=1028,
             subsystem-device=0310"
      then the OEM specific data file, if used, could be identified by variant
      suffix:
            "bus=pci,vendor=168c,device=003e,subsystem-vendor=1028,
             subsystem-device=0310,variant=DE_1AB"
      
      If board data file name extension is set but board-2.bin does not contain
      board data file for the variant, the driver will fallback to the default
      board data file not to break backward compatibility.
      
      This was first applied in commit f2593cb1 ("ath10k: Search SMBIOS for OEM
      board file extension") but later reverted in commit 005c3490 ("Revert
      "ath10k: Search SMBIOS for OEM board file extension"". This patch is now
      otherwise the same as commit f2593cb1 except the regression fixed.
      Signed-off-by: NWaldemar Rymarkiewicz <ext.waldemar.rymarkiewicz@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      1657b8f8