1. 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
  2. 03 8月, 2017 2 次提交
  3. 06 7月, 2017 1 次提交
  4. 21 6月, 2017 2 次提交
  5. 16 6月, 2017 1 次提交
  6. 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
  7. 04 5月, 2017 3 次提交
  8. 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
  9. 05 4月, 2017 2 次提交
  10. 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
  11. 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
  12. 22 2月, 2017 1 次提交
  13. 15 2月, 2017 6 次提交
    • R
      ath10k: fix the garage chars in board file name creation · a532293f
      Ryan Hsu 提交于
      The variant[] string will be valid only if the bdf_ext is set.
      
      The string memory needs to be null-terminated to avoid the undefined garbage
      appended by the subsequent board file name creation.
      
      ath10k_pci 0000:04:00.0: failed to fetch board data for
      "bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3363��P�����"
      from ath10k/QCA6174/hw3.0/board-2.bin
      
      Fixes: f2593cb1 ("ath10k: Search SMBIOS for OEM board file extension")
      Reported-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NRyan Hsu <ryanhsu@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a532293f
    • K
      ath10k: convert warning about non-existent OTP board id to debug message · 7be52c03
      Kalle Valo 提交于
      Currently ath10k unncessarily warns about board id not available from OTP:
      
      ath10k_pci 0000:02:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
      ath10k_pci 0000:02:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
      ath10k_pci 0000:02:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 1 testmode 1
      ath10k_pci 0000:02:00.0: firmware ver 10.2.4.70.9-2 api 5 features no-p2p,raw-mode crc32 b8d50af5
      ath10k_pci 0000:02:00.0: board id is not exist in otp, ignore it
      ath10k_pci 0000:02:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
      ath10k_pci 0000:02:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
      
      But not all boards have the board id in OTP so this is not a problem and no
      need to confuse the user with that info. So this can be safely changed to a
      debug message.
      
      Also fix grammar in the debug message.
      
      Fixes: d2e202c0 ("ath10k: ignore configuring the incorrect board_id")
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      7be52c03
    • M
      ath10k: silence firmware file probing warnings · 9f5bcfe9
      Michal Kazior 提交于
      Firmware files are versioned to prevent older
      driver instances to load unsupported firmware
      blobs. This is reflected with a fallback logic
      which attempts to load several firmware files.
      
      This however produced a lot of unnecessary
      warnings sometimes confusing users and leading
      them to rename firmware files making things even
      more confusing.
      
      Hence use request_firmware_direct() which does not
      produce extra warnings. This shouldn't really
      break anything because most modern systems don't
      rely on udev/hotplug helpers to load firmware
      files anymore. For example it was confirmed that
      LEDE does not user helper.
      
      This also fixes a 60 second delay per _each_
      unexistent firmware/calibration file with distros
      which have CONFIG_FW_LOADER_USER_HELPER_FALLBACK
      enabled, RHEL being a notable example. Using
      ath10k with firmware-2.bin this might end up
      into a five minute delay in boot.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      [kvalo@qca.qualcomm.com: add more info to the commit log]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      9f5bcfe9
    • K
      ath10k: add directory to board data error message · 310c01af
      Kalle Valo 提交于
      This way user has a better idea what file exactly is missing.
      This is needed when we switch to using request_firmware_direct() which doesn't
      print any errors anymore.
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      310c01af
    • E
      ath10k: fetch firmware images in a loop · 1c61bedc
      Erik Stromdahl 提交于
      To make it easier to handle minimum and maximum firmware API numbers convert
      the firmware fetch functionality to a loop. If no firmware image is found print
      an error with minimum and maximum API numbers and the name of firmware
      directory. This is needed when we switch to using request_firmware_direct()
      which doesn't print any errors anymore.
      
      Also add a new function for creating the fw file name dynamically which makes it
      easier to add new bus support, for example SDIO and USB, later.
      Signed-off-by: NErik Stromdahl <erik.stromdahl@gmail.com>
      [kvalo@qca.qualcomm.com: remove sdio/usb part, new error message, clarify commit log]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      1c61bedc
    • A
      ath10k: use size_t for len variables · 182f1e5a
      Amadeusz Sławiński 提交于
      cleanup to consolidate type used for len variables
      Signed-off-by: NAmadeusz Sławiński <amadeusz.slawinski@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      182f1e5a
  14. 07 2月, 2017 1 次提交
    • T
      ath10k: fix boot failure in UTF mode/testmode · cb428152
      Tamizh chelvam 提交于
      Rx filter reset and the dynamic tx switch mode (EXT_RESOURCE_CFG)
      configuration are causing the following errors when UTF firmware
      is loaded to the target.
      
      Error message 1:
      [ 598.015629] ath10k_pci 0001:01:00.0: failed to ping firmware: -110
      [ 598.020828] ath10k_pci 0001:01:00.0: failed to reset rx filter: -110
      [ 598.141556] ath10k_pci 0001:01:00.0: failed to start core (testmode): -110
      
      Error message 2:
      [ 668.615839] ath10k_ahb a000000.wifi: failed to send ext resource cfg command : -95
      [ 668.618902] ath10k_ahb a000000.wifi: failed to start core (testmode): -95
      
      Avoiding these configurations while bringing the target in
      testmode is solving the problem.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NTamizh chelvam <c_traja@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      cb428152
  15. 28 1月, 2017 1 次提交
    • W
      ath10k: Search SMBIOS for OEM board file extension · f2593cb1
      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"
      Signed-off-by: NWaldemar Rymarkiewicz <ext.waldemar.rymarkiewicz@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      f2593cb1
  16. 30 12月, 2016 2 次提交
    • R
      ath10k: ignore configuring the incorrect board_id · d2e202c0
      Ryan Hsu 提交于
      With command to get board_id from otp, in the case of following
      
        boot get otp board id result 0x00000000 board_id 0 chip_id 0
        boot using board name 'bus=pci,bmi-chip-id=0,bmi-board-id=0"
        ...
        failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=0 from
        ath10k/QCA6174/hw3.0/board-2.bin
      
      The invalid board_id=0 will be used as index to search in the board-2.bin.
      
      Ignore the case with board_id=0, as it means the otp is not carrying
      the board id information.
      Signed-off-by: NRyan Hsu <ryanhsu@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d2e202c0
    • A
      ath10k: support dev_coredump for crash dump · 727000e6
      Arun Khandavalli 提交于
      Whenever firmware crashes, and both CONFIG_ATH10K_DEBUGFS and
      CONFIG_ALLOW_DEV_COREDUMP are enabled, dump information about the crash via a
      devcoredump device. Dump can be read from userspace for further analysis from:
      
      /sys/class/devcoredump/devcd*/data
      
      As until now we have provided the firmware crash dump file via fw_crash_dump
      debugfs keep it still available but deprecate and a warning print that the user
      should switch to using dev_coredump.
      
      Future improvement would be not to depend on CONFIG_ATH10K_DEBUGFS, as there
      might be systems which want to get the firmware crash dump but not enable
      debugfs. How to handle memory consumption is also something which needs to be
      taken into account.
      Signed-off-by: NArun Khandavalli <akhandav@qti.qualcomm.com>
      [kvalo@qca.qualcomm.com: rebase, fixes, improve commit log]
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      727000e6
  17. 01 12月, 2016 2 次提交
    • M
      ath10k: fix Tx DMA alloc failure during continuous wifi down/up · 9ec34a86
      Mohammed Shafi Shajakhan 提交于
      With maximum number of vap's configured in a two radio supported
      systems of ~256 Mb RAM, doing a continuous wifi down/up and
      intermittent traffic streaming from the connected stations results
      in failure to allocate contiguous memory for tx buffers. This results
      in the disappearance of all VAP's and a manual reboot is needed as
      this is not a crash (or) OOM(for OOM killer to be invoked). To address
      this allocate contiguous memory for tx buffers one time and re-use them
      until the modules are unloaded but this results in a slight increase in
      memory footprint of ath10k when the wifi is down, but the modules are
      still loaded. Also as of now we use a separate bool 'tx_mem_allocated'
      to keep track of the one time memory allocation, as we cannot come up
      with something like 'ath10k_tx_{register,unregister}' before
      'ath10k_probe_fw' is called as 'ath10k_htt_tx_alloc_cont_frag_desc'
      memory allocation is dependent on the hw_param 'continuous_frag_desc'
      
      a) memory footprint of ath10k without the change
      
      lsmod | grep ath10k
      ath10k_core           414498  1 ath10k_pci
      ath10k_pci             38236  0
      
      b) memory footprint of ath10k with the change
      
      ath10k_core           414980  1 ath10k_pci
      ath10k_pci             38236  0
      
      Memory Failure Call trace:
      
      hostapd: page allocation failure: order:6, mode:0xd0
       [<c021f150>] (__dma_alloc_buffer.isra.23) from
      [<c021f23c>] (__alloc_remap_buffer.isra.26+0x14/0xb8)
      [<c021f23c>] (__alloc_remap_buffer.isra.26) from
      [<c021f664>] (__dma_alloc+0x224/0x2b8)
      [<c021f664>] (__dma_alloc) from [<c021f810>]
      (arm_dma_alloc+0x84/0x90)
      [<c021f810>] (arm_dma_alloc) from [<bf954764>]
      (ath10k_htt_tx_alloc+0xe0/0x2e4 [ath10k_core])
      [<bf954764>] (ath10k_htt_tx_alloc [ath10k_core]) from
      [<bf94e6ac>] (ath10k_core_start+0x538/0xcf8 [ath10k_core])
      [<bf94e6ac>] (ath10k_core_start [ath10k_core]) from
      [<bf947eec>] (ath10k_start+0xbc/0x56c [ath10k_core])
      [<bf947eec>] (ath10k_start [ath10k_core]) from
      [<bf8a7a04>] (drv_start+0x40/0x5c [mac80211])
      [<bf8a7a04>] (drv_start [mac80211]) from [<bf8b7cf8>]
      (ieee80211_do_open+0x170/0x82c [mac80211])
      [<bf8b7cf8>] (ieee80211_do_open [mac80211]) from
      [<c056afc8>] (__dev_open+0xa0/0xf4)
      [21053.491752] Normal: 641*4kB (UEMR) 505*8kB (UEMR) 330*16kB (UEMR)
      126*32kB (UEMR) 762*64kB (UEMR) 237*128kB (UEMR) 1*256kB (M) 0*512kB
      0*1024kB 0*2048kB 0*4096kB = 95276kB
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      9ec34a86
    • M
      ath10k: fix soft lockup during firmware crash/hw-restart · c2cac2f7
      Mohammed Shafi Shajakhan 提交于
      During firmware crash (or) user requested manual restart
      the system gets into a soft lock up state because of the
      below root cause.
      
      During user requested hardware restart / firmware crash
      the system goes into a soft lockup state as 'napi_synchronize'
      is called after 'napi_disable' (which sets 'NAPI_STATE_SCHED'
      bit) and it sleeps into infinite loop as it waits for
      'NAPI_STATE_SCHED' to be cleared. This condition is hit because
      'ath10k_hif_stop' is called twice as below (resulting in calling
      'napi_synchronize' after 'napi_disable')
      
      'ath10k_core_restart' -> 'ath10k_hif_stop' (ATH10K_STATE_ON) ->
      -> 'ieee80211_restart_hw' -> 'ath10k_start' -> 'ath10k_halt' ->
      'ath10k_core_stop' -> 'ath10k_hif_stop' (ATH10K_STATE_RESTARTING)
      
      Fix this by calling 'ath10k_halt' in ath10k_core_restart itself
      as it makes more sense before informing mac80211 to restart h/w
      Also remove 'ath10k_halt' in ath10k_start for the state of 'restarting'
      
      Fixes: 3c97f5de ("ath10k: implement NAPI support")
      Cc: <stable@vger.kernel.org> # v4.9
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      c2cac2f7
  18. 24 11月, 2016 1 次提交
  19. 04 10月, 2016 2 次提交
    • B
      ath10k: allow setting coverage class · ebee76f7
      Benjamin Berg 提交于
      Unfortunately ath10k does not generally allow modifying the coverage class
      with the stock firmware and Qualcomm has so far refused to implement this
      feature so that it can be properly supported in ath10k. If we however know
      the registers that need to be modified for proper operation with a higher
      coverage class, then we can do these modifications from the driver.
      
      This is a hack and might cause subtle problems but as it's not enabled by
      default (only when user space changes the coverage class explicitly) it should
      not cause new problems for existing setups. But still this should be considered
      as an experimental feature and used with caution.
      
      This patch implements the support for first generation cards (QCA9880, QCA9887
      and so on) which are based on a core that is similar to ath9k. The registers
      are modified in place and need to be re-written every time the firmware sets
      them. To achieve this the register status is verified after certain WMI events
      from the firmware.
      
      The coverage class may not be modified temporarily right after the card
      re-initializes the registers. This is for example the case during scanning.
      
      Thanks to Sebastian Gottschall <s.gottschall@dd-wrt.com> for initially
      working on a userspace support for this. This patch wouldn't have been
      possible without this documentation.
      Signed-off-by: NBenjamin Berg <benjamin@sipsolutions.net>
      Signed-off-by: NSimon Wunderlich <sw@simonwunderlich.de>
      Signed-off-by: NMathias Kretschmer <mathias.kretschmer@fit.fraunhofer.de>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      ebee76f7
    • A
      ath10k: add cc_wraparound type for QCA9888 and QCA9884 · bafe4926
      Anilkumar Kolli 提交于
      During offchannel scan, iw survey dump shows wrong values.
      Fix this by assigning cycle counter wranarround type for
      QCA9888 and QCA9884, they share same config with QCA4019.
      Signed-off-by: NAnilkumar Kolli <akolli@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      bafe4926
  20. 27 9月, 2016 2 次提交
  21. 13 9月, 2016 3 次提交
  22. 09 9月, 2016 1 次提交
    • R
      ath10k: implement NAPI support · 3c97f5de
      Rajkumar Manoharan 提交于
      Add NAPI support for rx and tx completion. NAPI poll is scheduled
      from interrupt handler. The design is as below
      
       - on interrupt
           - schedule napi and mask interrupts
       - on poll
         - process all pipes (no actual Tx/Rx)
         - process Rx within budget
         - if quota exceeds budget reschedule napi poll by returning budget
         - process Tx completions and update budget if necessary
         - process Tx fetch indications (pull-push)
         - push any other pending Tx (if possible)
         - before resched or napi completion replenish htt rx ring buffer
         - if work done < budget, complete napi poll and unmask interrupts
      
      This change also get rid of two tasklets (intr_tq and txrx_compl_task).
      
      Measured peak throughput with NAPI on IPQ4019 platform in controlled
      environment. No noticeable reduction in throughput is seen and also
      observed improvements in CPU usage. Approx. 15% CPU usage got reduced
      in UDP uplink case.
      
      DL: AP DUT Tx
      UL: AP DUT Rx
      
      IPQ4019 (avg. cpu usage %)
      
      ========
                      TOT              +NAPI
                    ===========      =============
      TCP DL       644 Mbps (42%)    645 Mbps (36%)
      TCP UL       673 Mbps (30%)    675 Mbps (26%)
      UDP DL       682 Mbps (49%)    680 Mbps (49%)
      UDP UL       720 Mbps (28%)    717 Mbps (11%)
      Signed-off-by: NRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      3c97f5de
  23. 02 9月, 2016 1 次提交