This patchset adds support for QCN550x. Compared to previous versions of this patchset: - Removed hidden dependencies on ah macro (see commit b3a663f0037d20e77bbafd9271a3d9dd0351059d) - Done significantly more testing and performance improvements. In my informal testing, the 3x3 performance of this driver generally meets or exceeds the performance of stock firmwares, which was not the case for previous patchsets. The main source of the improvement was enabling the clock doubler. Notes: - While QCN5502 is a 4-stream device, ath9k only supports 3 streams, and that is unchanged. - The QCN550x EEPROM format is different from other AR9003 devices due to the 4th stream. An abstraction layer has been added over the EEPROM to support both formats. - This driver has been tested on the following devices: - Asus RT-ACRH12 (FCC ID: MSQ-RTACRH01) QCN5502 4x4 RX mode 1 (no XLNA) TX mode 1 (no XPA) - Netgear EX6400v2 (FCC ID: PY318300422) QCN5502 3x3 RX mode 1 (no XLNA) TX mode 1 (no XPA) - Netgear EX7300v2 (FCC ID: PY318300422) QCN5502 4x4 RX mode 1 (no XLNA) TX mode 1 (no XPA) - TP-Link Archer A9 v6 (FCC ID: TE7A9V6) QCN5502 4x4 RX mode 0 (XLNA) TX mode 1 (no XPA) - Netgear EX7300v1: QCA9558 (no obvious regression observed) - No device has been tested that uses QCN5502 with XPA or 5GHz. I don't know if such devices exists. Wenli Looi (11): wifi: ath9k: group some ar9300 eeprom functions at the top wifi: ath9k: delete some unused/duplicate macros wifi: ath9k: add _ah parameter to certain macros Revert "ath9k_hw: fall back to OTP ROM when platform data has no valid eeprom data" wifi: ath9k: add QCN550x device IDs wifi: ath9k: basic support for QCN550x wifi: ath9k: add QCN550x initvals wifi: ath9k: implement QCN550x rx wifi: ath9k: implement QCN550x tx wifi: ath9k: add abstractions over ar9300 eeprom wifi: ath9k: add QCN550x eeprom drivers/net/wireless/ath/ath9k/ahb.c | 4 + drivers/net/wireless/ath/ath9k/ani.c | 2 +- .../net/wireless/ath/ath9k/ar550x_initvals.h | 1539 +++++++++++++++++ drivers/net/wireless/ath/ath9k/ar9003_aic.c | 52 +- drivers/net/wireless/ath/ath9k/ar9003_calib.c | 98 +- .../net/wireless/ath/ath9k/ar9003_eeprom.c | 1069 ++++++++---- .../net/wireless/ath/ath9k/ar9003_eeprom.h | 112 ++ drivers/net/wireless/ath/ath9k/ar9003_hw.c | 65 + drivers/net/wireless/ath/ath9k/ar9003_mac.c | 92 +- drivers/net/wireless/ath/ath9k/ar9003_mac.h | 10 + drivers/net/wireless/ath/ath9k/ar9003_mci.c | 4 +- drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 120 +- drivers/net/wireless/ath/ath9k/ar9003_phy.c | 370 ++-- drivers/net/wireless/ath/ath9k/ar9003_phy.h | 598 ++++--- drivers/net/wireless/ath/ath9k/ar9003_rtt.c | 32 +- drivers/net/wireless/ath/ath9k/hw.c | 43 +- drivers/net/wireless/ath/ath9k/hw.h | 2 + drivers/net/wireless/ath/ath9k/mac.c | 2 +- drivers/net/wireless/ath/ath9k/mac.h | 13 + drivers/net/wireless/ath/ath9k/recv.c | 2 +- drivers/net/wireless/ath/ath9k/reg.h | 13 +- drivers/net/wireless/ath/ath9k/reg_aic.h | 44 +- drivers/net/wireless/ath/ath9k/rng.c | 4 +- 23 files changed, 3232 insertions(+), 1058 deletions(-) create mode 100644 drivers/net/wireless/ath/ath9k/ar550x_initvals.h -- 2.34.1