Carl Huang <cjhuang@xxxxxxxxxxxxxx> writes: > Downloading firmware via BMI protocol takes too long time. For example, > a ~700K bytes firmware takes about 500ms to download via BMI protocol. > This is too long especially in suspend and resume scenario where firmware > is re-downloaded unless WoWLAN is enabled. Downloading firmware via diag CE > can reduce the time to ~40ms for a ~700K bytes firmware binary. > > Ath10k driver parses the firmware to segments and downloads the segments > to the specified address directly. If the firmware is compressed or has > unsupported segments, ath10k driver will try BMI download again. > > It's tested with QCA6174 hw3.2 and > firmware-6.bin_WLAN.RM.4.4.1-00111-QCARMSWP-1. QCA9377 is also affected. > > Signed-off-by: Carl Huang <cjhuang@xxxxxxxxxxxxxx> There were new warnings: drivers/net/wireless/ath/ath10k/hw.c:1029:16: warning: restricted __le32 degrades to integer drivers/net/wireless/ath/ath10k/hw.c:1047:27: warning: incorrect type in assignment (different base types) drivers/net/wireless/ath/ath10k/hw.c:1047:27: expected unsigned int [unsigned] [usertype] base_addr drivers/net/wireless/ath/ath10k/hw.c:1047:27: got restricted __le32 [usertype] addr drivers/net/wireless/ath/ath10k/hw.c:1048:26: warning: incorrect type in assignment (different base types) drivers/net/wireless/ath/ath10k/hw.c:1048:26: expected unsigned int [unsigned] [usertype] base_len drivers/net/wireless/ath/ath10k/hw.c:1048:26: got restricted __le32 [usertype] length I fixed those in the pending branch, please review: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=f6f6f597654693ab122ecd950b56343489b91e59 -- Kalle Valo