linux_dsm_epyc7002/drivers/net/wireless/ath/ath10k
Ryan Hsu 583a662943 ath10k: improve the firmware download time for QCA6174
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: Len Brown <lenb@kernel.org>
Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2017-03-09 09:55:48 +02:00
..
ahb.c ath10k: fix reading sram contents for QCA4019 2017-02-07 10:57:49 +02:00
ahb.h ath10k: expose hif ops for ahb 2016-01-28 10:47:28 +02:00
bmi.c ath10k: improve the firmware download time for QCA6174 2017-03-09 09:55:48 +02:00
bmi.h ath10k: improve the firmware download time for QCA6174 2017-03-09 09:55:48 +02:00
ce.c ath10k: few whitespace fixes 2017-02-07 10:43:30 +02:00
ce.h ath10k: dump Copy Engine registers during firmware crash 2017-01-19 15:19:24 +02:00
core.c ath10k: improve the firmware download time for QCA6174 2017-03-09 09:55:48 +02:00
core.h ath10k: search SMBIOS for OEM board file extension 2017-03-02 10:48:41 +02:00
debug.c ath10k: use size_t for len variables 2017-02-14 19:38:20 +02:00
debug.h ath10k: support dev_coredump for crash dump 2016-12-30 11:14:07 +02:00
debugfs_sta.c ath10k: add debugfs support to get per peer tids log via tracing 2017-02-07 10:49:24 +02:00
hif.h ath10k: add board data download from target 2016-06-07 14:28:35 +03:00
htc.c ath10k: htc: simplified credit distribution 2017-01-12 12:51:29 +02:00
htc.h ath10k: htc: simplified credit distribution 2017-01-12 12:51:29 +02:00
htt_rx.c ath10k: remove unneeded semicolon 2017-02-08 17:00:31 +02:00
htt_tx.c ath10k: Avoid potential page alloc BUG_ON in tx free path 2016-12-15 11:17:52 +02:00
htt.c ath10k: add per peer htt tx stats support for 10.4 2016-11-23 21:40:02 +02:00
htt.h ath10k: use names in function definition arguments 2017-02-07 10:43:25 +02:00
hw.c ath10k: improve the firmware download time for QCA6174 2017-03-09 09:55:48 +02:00
hw.h ath10k: improve the firmware download time for QCA6174 2017-03-09 09:55:48 +02:00
Kconfig ath10k: select WANT_DEV_COREDUMP 2017-02-08 17:01:53 +02:00
mac.c ath10k: remove ath10k_vif_to_arvif() 2017-02-14 19:38:15 +02:00
mac.h ath10k: remove ath10k_vif_to_arvif() 2017-02-14 19:38:15 +02:00
Makefile ath10k: add basic skeleton to support ahb 2016-01-28 10:47:19 +02:00
p2p.c ath10k: remove ath10k_vif_to_arvif() 2017-02-14 19:38:15 +02:00
p2p.h ath10k: implement handling of p2p noa event 2015-03-07 09:57:42 +02:00
pci.c ath10k: fix napi crash during rmmod when probe firmware fails 2017-02-14 19:40:16 +02:00
pci.h ath10k: fix reading sram contents for QCA4019 2017-02-07 10:57:49 +02:00
rx_desc.h ath10k: remove duplicate and unused rx rate flags 2016-06-14 14:56:00 +03:00
spectral.c ath10k: use size_t for len variables 2017-02-14 19:38:20 +02:00
spectral.h ath10k: refactor phyerr event handlers 2015-08-17 17:43:29 +03:00
swap.c ath10k: move firmware_swap_code_seg_info to ath10k_fw_file 2016-08-31 10:18:37 +03:00
swap.h ath10k: move firmware_swap_code_seg_info to ath10k_fw_file 2016-08-31 10:18:37 +03:00
targaddrs.h ath10k: spelling and miscellaneous neatening 2016-09-27 15:00:48 +03:00
testmode_i.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
testmode.c ath10k: silence firmware file probing warnings 2017-02-14 19:52:35 +02:00
testmode.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
thermal.c ath10k: replace config_enabled() with IS_REACHABLE() 2016-09-02 18:57:06 +03:00
thermal.h ath10k: fix checkpatch warnings related to spaces 2016-04-14 17:30:51 +03:00
trace.c
trace.h ath10k: add hw_rev to trace events to support pktlog 2016-03-03 19:20:00 +02:00
txrx.c ath10k: fix throughput regression in multi client mode 2016-09-09 15:07:11 +03:00
txrx.h ath10k: move mgmt descriptor limit handle under mgmt_tx 2016-03-18 09:52:27 +02:00
wmi-ops.h ath10k: fix null deref on wmi-tlv when trying spectral scan 2016-11-23 15:55:38 +02:00
wmi-tlv.c ath10k: add VHT160 support 2017-01-13 15:26:30 +02:00
wmi-tlv.h ath10k: add VHT160 support 2017-01-13 15:26:30 +02:00
wmi.c ath10k: remove ath10k_vif_to_arvif() 2017-02-14 19:38:15 +02:00
wmi.h ath10k: fix comment 2017-02-14 19:38:25 +02:00
wow.c ath10k: move fw_features to struct ath10k_fw_file 2016-04-20 20:00:25 +03:00
wow.h ath10k: add WOW patterns support 2015-03-30 09:10:24 +03:00