This patchset adds support for QCN550x. It is an attempt to write a cleaner version of the following patch: https://github.com/openwrt/openwrt/pull/9389 I'm definitely open to ideas on how to better implement this change. 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. - The QCN550x initvals here are a hacked version of the QCA956x initvals, and have only been partially tested. - This change has been tested on the following devices, which appear to work as an access point: - QCN5502: Netgear EX6400v2 - QCA9558: Netgear EX7300v1 Relevant links: - QCN550x SoC support, which appears to be identical to QCA956x: https://github.com/torvalds/linux/commit/a0b8cd5c223042efe764864b8dd9396ee127c763 - QSDK patch for QCN550x: https://source.codeaurora.org/quic/qsdk/oss/system/openwrt/tree/target/linux/ar71xx/patches-3.3/9991-MIPS-ath79-add-SoC-detection-code-for-QCN550X.patch?h=aa/banana v2: 1. fix empty commit logs and missing s-o-b Wenli Looi (9): ath9k: add QCN550x device IDs ath9k: basic support for QCN550x ath9k: add QCN550x initvals ath9k: implement QCN550x rx ath9k: implement QCN550x tx ath9k: group some ar9300 eeprom functions at the top ath9k: add abstractions over ar9300 eeprom ath9k: rename ar9300_eeprom to ar9300_eeprom_v1 ath9k: add ar9300_eeprom_v2 drivers/net/wireless/ath/ath9k/ahb.c | 4 + drivers/net/wireless/ath/ath9k/ani.c | 2 +- .../net/wireless/ath/ath9k/ar550x_initvals.h | 1296 +++++++++++++++++ drivers/net/wireless/ath/ath9k/ar9003_calib.c | 4 +- .../net/wireless/ath/ath9k/ar9003_eeprom.c | 949 ++++++++---- .../net/wireless/ath/ath9k/ar9003_eeprom.h | 144 +- drivers/net/wireless/ath/ath9k/ar9003_hw.c | 59 + drivers/net/wireless/ath/ath9k/ar9003_mac.c | 79 +- drivers/net/wireless/ath/ath9k/ar9003_mac.h | 10 + drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 4 +- drivers/net/wireless/ath/ath9k/ar9003_phy.c | 35 +- drivers/net/wireless/ath/ath9k/ar9003_phy.h | 83 +- drivers/net/wireless/ath/ath9k/hw.c | 38 +- drivers/net/wireless/ath/ath9k/hw.h | 4 +- drivers/net/wireless/ath/ath9k/mac.c | 2 +- drivers/net/wireless/ath/ath9k/mac.h | 12 + drivers/net/wireless/ath/ath9k/recv.c | 2 +- drivers/net/wireless/ath/ath9k/reg.h | 11 +- drivers/net/wireless/ath/ath9k/reg_aic.h | 6 +- 19 files changed, 2330 insertions(+), 414 deletions(-) create mode 100644 drivers/net/wireless/ath/ath9k/ar550x_initvals.h -- 2.25.1