From: Viktor Barna <viktor.barna@xxxxxxxxxx> Celeno Communications publishes to the opensource new wireless driver for an own 802.11 chipset family - 80xx. The main chip supports multiple simultaneous bands functioning (2.4G/5.2G or 5.2G/6G) over PCIe 3.0 dual-lane interface. Basically, the chip is dual-band concurrent up to 8x8 in total, and up to 6x6 per band, including 802.11ax 160MHz support and functioning of AP/STA/MESH modes. The driver architecture is strong SoftMAC. The current patchset is the second one and is considered to be published in form of RFC (Request for Comments, version 2). If there are any suggestions/propositions - we will be glad to fix them and eventually share the driver with the community in form of an official patch (including the firmware binaries). The RFC is divided into separate patches on a per-file basis to simplify the review process. Known issues: - driver may be configured via config files, that is discouraged by upstream and may be changed in the future. Signed-off-by: Aviad Brikman <aviad.brikman@xxxxxxxxxx> Signed-off-by: Eliav Farber <eliav.farber@xxxxxxxxx> Signed-off-by: Maksym Kokhan <maksym.kokhan@xxxxxxxxxx> Signed-off-by: Oleksandr Savchenko <oleksandr.savchenko@xxxxxxxxxx> Signed-off-by: Shay Bar <shay.bar@xxxxxxxxxx> Signed-off-by: Viktor Barna <viktor.barna@xxxxxxxxxx> --- v2: - Reduce files amount from 256 to 98 (including 43 source files). - Fix Kconfig vs code inconsistencies. - Remove Celeno-specific wrappers like cl_snprintf, cl_timer, string processors. - Namespace more functions (with cl_<something>). - Remove DEV_COREDUMP support (temporary. to minimize size of the RFC). - Remove CLI handling in the driver (forever, reimplement some of the features in the debugfs). - Remove netlink vendor-specific commands. - Remove debugfs code. - Fix sparse warnings. - Fix more checkpatch errors/warnings/checks. - Update codebase to the most recent internal codebase (as of 20.05.22). - Adjust patch to support Kernel 5.18-rc7. v1: - https://lore.kernel.org/linux-wireless/20210617160223.160998-1-viktor.barna@xxxxxxxxxx/ Viktor Barna (96): celeno: add Kconfig celeno: add Makefile cl8k: add Kconfig cl8k: add Makefile cl8k: add ampdu.c cl8k: add ampdu.h cl8k: add bf.c cl8k: add bf.h cl8k: add calib.c cl8k: add calib.h cl8k: add channel.c cl8k: add channel.h cl8k: add chip.c cl8k: add chip.h cl8k: add config.c cl8k: add config.h cl8k: add debug.c cl8k: add debug.h cl8k: add def.h cl8k: add dfs.c cl8k: add dfs.h cl8k: add dsp.c cl8k: add dsp.h cl8k: add e2p.c cl8k: add e2p.h cl8k: add eeprom.h cl8k: add ela.c cl8k: add ela.h cl8k: add enhanced_tim.c cl8k: add enhanced_tim.h cl8k: add fw.c cl8k: add fw.h cl8k: add hw.c cl8k: add hw.h cl8k: add ipc_shared.h cl8k: add key.c cl8k: add key.h cl8k: add mac80211.c cl8k: add mac80211.h cl8k: add mac_addr.c cl8k: add mac_addr.h cl8k: add main.c cl8k: add main.h cl8k: add maintenance.c cl8k: add maintenance.h cl8k: add motion_sense.c cl8k: add motion_sense.h cl8k: add pci.c cl8k: add pci.h cl8k: add phy.c cl8k: add phy.h cl8k: add platform.c cl8k: add platform.h cl8k: add power.c cl8k: add power.h cl8k: add radio.c cl8k: add radio.h cl8k: add rates.c cl8k: add rates.h cl8k: add recovery.c cl8k: add recovery.h cl8k: add regdom.c cl8k: add regdom.h cl8k: add reg/reg_access.h cl8k: add reg/reg_defs.h cl8k: add rfic.c cl8k: add rfic.h cl8k: add rx.c cl8k: add rx.h cl8k: add scan.c cl8k: add scan.h cl8k: add sounding.c cl8k: add sounding.h cl8k: add sta.c cl8k: add sta.h cl8k: add stats.c cl8k: add stats.h cl8k: add tcv.c cl8k: add tcv.h cl8k: add temperature.c cl8k: add temperature.h cl8k: add traffic.c cl8k: add traffic.h cl8k: add tx.c cl8k: add tx.h cl8k: add utils.c cl8k: add utils.h cl8k: add version.c cl8k: add version.h cl8k: add vif.c cl8k: add vif.h cl8k: add vns.c cl8k: add vns.h cl8k: add wrs.c cl8k: add wrs.h wireless: add Celeno vendor drivers/net/wireless/Kconfig | 1 + drivers/net/wireless/Makefile | 1 + drivers/net/wireless/celeno/Kconfig | 17 + drivers/net/wireless/celeno/Makefile | 2 + drivers/net/wireless/celeno/cl8k/Kconfig | 41 + drivers/net/wireless/celeno/cl8k/Makefile | 66 + drivers/net/wireless/celeno/cl8k/ampdu.c | 331 + drivers/net/wireless/celeno/cl8k/ampdu.h | 39 + drivers/net/wireless/celeno/cl8k/bf.c | 346 + drivers/net/wireless/celeno/cl8k/bf.h | 52 + drivers/net/wireless/celeno/cl8k/calib.c | 2266 ++++ drivers/net/wireless/celeno/cl8k/calib.h | 390 + drivers/net/wireless/celeno/cl8k/channel.c | 1656 +++ drivers/net/wireless/celeno/cl8k/channel.h | 401 + drivers/net/wireless/celeno/cl8k/chip.c | 580 + drivers/net/wireless/celeno/cl8k/chip.h | 182 + drivers/net/wireless/celeno/cl8k/config.c | 46 + drivers/net/wireless/celeno/cl8k/config.h | 405 + drivers/net/wireless/celeno/cl8k/debug.c | 442 + drivers/net/wireless/celeno/cl8k/debug.h | 160 + drivers/net/wireless/celeno/cl8k/def.h | 235 + drivers/net/wireless/celeno/cl8k/dfs.c | 768 ++ drivers/net/wireless/celeno/cl8k/dfs.h | 146 + drivers/net/wireless/celeno/cl8k/dsp.c | 627 ++ drivers/net/wireless/celeno/cl8k/dsp.h | 27 + drivers/net/wireless/celeno/cl8k/e2p.c | 771 ++ drivers/net/wireless/celeno/cl8k/e2p.h | 25 + drivers/net/wireless/celeno/cl8k/eeprom.h | 283 + drivers/net/wireless/celeno/cl8k/ela.c | 230 + drivers/net/wireless/celeno/cl8k/ela.h | 48 + .../net/wireless/celeno/cl8k/enhanced_tim.c | 173 + .../net/wireless/celeno/cl8k/enhanced_tim.h | 19 + drivers/net/wireless/celeno/cl8k/fw.c | 3167 ++++++ drivers/net/wireless/celeno/cl8k/fw.h | 1462 +++ drivers/net/wireless/celeno/cl8k/hw.c | 432 + drivers/net/wireless/celeno/cl8k/hw.h | 280 + drivers/net/wireless/celeno/cl8k/ipc_shared.h | 1386 +++ drivers/net/wireless/celeno/cl8k/key.c | 382 + drivers/net/wireless/celeno/cl8k/key.h | 37 + drivers/net/wireless/celeno/cl8k/mac80211.c | 2392 ++++ drivers/net/wireless/celeno/cl8k/mac80211.h | 197 + drivers/net/wireless/celeno/cl8k/mac_addr.c | 418 + drivers/net/wireless/celeno/cl8k/mac_addr.h | 61 + drivers/net/wireless/celeno/cl8k/main.c | 603 ++ drivers/net/wireless/celeno/cl8k/main.h | 16 + .../net/wireless/celeno/cl8k/maintenance.c | 81 + .../net/wireless/celeno/cl8k/maintenance.h | 17 + .../net/wireless/celeno/cl8k/motion_sense.c | 244 + .../net/wireless/celeno/cl8k/motion_sense.h | 46 + drivers/net/wireless/celeno/cl8k/pci.c | 2468 +++++ drivers/net/wireless/celeno/cl8k/pci.h | 194 + drivers/net/wireless/celeno/cl8k/phy.c | 9648 +++++++++++++++++ drivers/net/wireless/celeno/cl8k/phy.h | 3680 +++++++ drivers/net/wireless/celeno/cl8k/platform.c | 392 + drivers/net/wireless/celeno/cl8k/platform.h | 196 + drivers/net/wireless/celeno/cl8k/power.c | 1123 ++ drivers/net/wireless/celeno/cl8k/power.h | 90 + drivers/net/wireless/celeno/cl8k/radio.c | 1113 ++ drivers/net/wireless/celeno/cl8k/radio.h | 130 + drivers/net/wireless/celeno/cl8k/rates.c | 1570 +++ drivers/net/wireless/celeno/cl8k/rates.h | 154 + drivers/net/wireless/celeno/cl8k/recovery.c | 280 + drivers/net/wireless/celeno/cl8k/recovery.h | 39 + .../net/wireless/celeno/cl8k/reg/reg_access.h | 199 + .../net/wireless/celeno/cl8k/reg/reg_defs.h | 5494 ++++++++++ drivers/net/wireless/celeno/cl8k/regdom.c | 301 + drivers/net/wireless/celeno/cl8k/regdom.h | 11 + drivers/net/wireless/celeno/cl8k/rfic.c | 232 + drivers/net/wireless/celeno/cl8k/rfic.h | 29 + drivers/net/wireless/celeno/cl8k/rx.c | 1845 ++++ drivers/net/wireless/celeno/cl8k/rx.h | 505 + drivers/net/wireless/celeno/cl8k/scan.c | 392 + drivers/net/wireless/celeno/cl8k/scan.h | 53 + drivers/net/wireless/celeno/cl8k/sounding.c | 1121 ++ drivers/net/wireless/celeno/cl8k/sounding.h | 151 + drivers/net/wireless/celeno/cl8k/sta.c | 507 + drivers/net/wireless/celeno/cl8k/sta.h | 99 + drivers/net/wireless/celeno/cl8k/stats.c | 438 + drivers/net/wireless/celeno/cl8k/stats.h | 108 + drivers/net/wireless/celeno/cl8k/tcv.c | 1259 +++ drivers/net/wireless/celeno/cl8k/tcv.h | 283 + .../net/wireless/celeno/cl8k/temperature.c | 634 ++ .../net/wireless/celeno/cl8k/temperature.h | 71 + drivers/net/wireless/celeno/cl8k/traffic.c | 254 + drivers/net/wireless/celeno/cl8k/traffic.h | 77 + drivers/net/wireless/celeno/cl8k/tx.c | 3397 ++++++ drivers/net/wireless/celeno/cl8k/tx.h | 467 + drivers/net/wireless/celeno/cl8k/utils.c | 642 ++ drivers/net/wireless/celeno/cl8k/utils.h | 185 + drivers/net/wireless/celeno/cl8k/version.c | 147 + drivers/net/wireless/celeno/cl8k/version.h | 23 + drivers/net/wireless/celeno/cl8k/vif.c | 162 + drivers/net/wireless/celeno/cl8k/vif.h | 81 + drivers/net/wireless/celeno/cl8k/vns.c | 354 + drivers/net/wireless/celeno/cl8k/vns.h | 65 + drivers/net/wireless/celeno/cl8k/wrs.c | 3323 ++++++ drivers/net/wireless/celeno/cl8k/wrs.h | 565 + 97 files changed, 66548 insertions(+) create mode 100755 drivers/net/wireless/celeno/Kconfig create mode 100755 drivers/net/wireless/celeno/Makefile create mode 100644 drivers/net/wireless/celeno/cl8k/Kconfig create mode 100644 drivers/net/wireless/celeno/cl8k/Makefile create mode 100644 drivers/net/wireless/celeno/cl8k/ampdu.c create mode 100644 drivers/net/wireless/celeno/cl8k/ampdu.h create mode 100644 drivers/net/wireless/celeno/cl8k/bf.c create mode 100644 drivers/net/wireless/celeno/cl8k/bf.h create mode 100644 drivers/net/wireless/celeno/cl8k/calib.c create mode 100644 drivers/net/wireless/celeno/cl8k/calib.h create mode 100644 drivers/net/wireless/celeno/cl8k/channel.c create mode 100644 drivers/net/wireless/celeno/cl8k/channel.h create mode 100644 drivers/net/wireless/celeno/cl8k/chip.c create mode 100644 drivers/net/wireless/celeno/cl8k/chip.h create mode 100644 drivers/net/wireless/celeno/cl8k/config.c create mode 100644 drivers/net/wireless/celeno/cl8k/config.h create mode 100644 drivers/net/wireless/celeno/cl8k/debug.c create mode 100644 drivers/net/wireless/celeno/cl8k/debug.h create mode 100644 drivers/net/wireless/celeno/cl8k/def.h create mode 100644 drivers/net/wireless/celeno/cl8k/dfs.c create mode 100644 drivers/net/wireless/celeno/cl8k/dfs.h create mode 100644 drivers/net/wireless/celeno/cl8k/dsp.c create mode 100644 drivers/net/wireless/celeno/cl8k/dsp.h create mode 100644 drivers/net/wireless/celeno/cl8k/e2p.c create mode 100644 drivers/net/wireless/celeno/cl8k/e2p.h create mode 100644 drivers/net/wireless/celeno/cl8k/eeprom.h create mode 100644 drivers/net/wireless/celeno/cl8k/ela.c create mode 100644 drivers/net/wireless/celeno/cl8k/ela.h create mode 100644 drivers/net/wireless/celeno/cl8k/enhanced_tim.c create mode 100644 drivers/net/wireless/celeno/cl8k/enhanced_tim.h create mode 100644 drivers/net/wireless/celeno/cl8k/fw.c create mode 100644 drivers/net/wireless/celeno/cl8k/fw.h create mode 100644 drivers/net/wireless/celeno/cl8k/hw.c create mode 100644 drivers/net/wireless/celeno/cl8k/hw.h create mode 100644 drivers/net/wireless/celeno/cl8k/ipc_shared.h create mode 100644 drivers/net/wireless/celeno/cl8k/key.c create mode 100644 drivers/net/wireless/celeno/cl8k/key.h create mode 100644 drivers/net/wireless/celeno/cl8k/mac80211.c create mode 100644 drivers/net/wireless/celeno/cl8k/mac80211.h create mode 100644 drivers/net/wireless/celeno/cl8k/mac_addr.c create mode 100644 drivers/net/wireless/celeno/cl8k/mac_addr.h create mode 100644 drivers/net/wireless/celeno/cl8k/main.c create mode 100644 drivers/net/wireless/celeno/cl8k/main.h create mode 100644 drivers/net/wireless/celeno/cl8k/maintenance.c create mode 100644 drivers/net/wireless/celeno/cl8k/maintenance.h create mode 100644 drivers/net/wireless/celeno/cl8k/motion_sense.c create mode 100644 drivers/net/wireless/celeno/cl8k/motion_sense.h create mode 100644 drivers/net/wireless/celeno/cl8k/pci.c create mode 100644 drivers/net/wireless/celeno/cl8k/pci.h create mode 100644 drivers/net/wireless/celeno/cl8k/phy.c create mode 100644 drivers/net/wireless/celeno/cl8k/phy.h create mode 100644 drivers/net/wireless/celeno/cl8k/platform.c create mode 100644 drivers/net/wireless/celeno/cl8k/platform.h create mode 100644 drivers/net/wireless/celeno/cl8k/power.c create mode 100644 drivers/net/wireless/celeno/cl8k/power.h create mode 100644 drivers/net/wireless/celeno/cl8k/radio.c create mode 100644 drivers/net/wireless/celeno/cl8k/radio.h create mode 100644 drivers/net/wireless/celeno/cl8k/rates.c create mode 100644 drivers/net/wireless/celeno/cl8k/rates.h create mode 100644 drivers/net/wireless/celeno/cl8k/recovery.c create mode 100644 drivers/net/wireless/celeno/cl8k/recovery.h create mode 100644 drivers/net/wireless/celeno/cl8k/reg/reg_access.h create mode 100644 drivers/net/wireless/celeno/cl8k/reg/reg_defs.h create mode 100644 drivers/net/wireless/celeno/cl8k/regdom.c create mode 100644 drivers/net/wireless/celeno/cl8k/regdom.h create mode 100644 drivers/net/wireless/celeno/cl8k/rfic.c create mode 100644 drivers/net/wireless/celeno/cl8k/rfic.h create mode 100644 drivers/net/wireless/celeno/cl8k/rx.c create mode 100644 drivers/net/wireless/celeno/cl8k/rx.h create mode 100644 drivers/net/wireless/celeno/cl8k/scan.c create mode 100644 drivers/net/wireless/celeno/cl8k/scan.h create mode 100644 drivers/net/wireless/celeno/cl8k/sounding.c create mode 100644 drivers/net/wireless/celeno/cl8k/sounding.h create mode 100644 drivers/net/wireless/celeno/cl8k/sta.c create mode 100644 drivers/net/wireless/celeno/cl8k/sta.h create mode 100644 drivers/net/wireless/celeno/cl8k/stats.c create mode 100644 drivers/net/wireless/celeno/cl8k/stats.h create mode 100644 drivers/net/wireless/celeno/cl8k/tcv.c create mode 100644 drivers/net/wireless/celeno/cl8k/tcv.h create mode 100644 drivers/net/wireless/celeno/cl8k/temperature.c create mode 100644 drivers/net/wireless/celeno/cl8k/temperature.h create mode 100644 drivers/net/wireless/celeno/cl8k/traffic.c create mode 100644 drivers/net/wireless/celeno/cl8k/traffic.h create mode 100644 drivers/net/wireless/celeno/cl8k/tx.c create mode 100644 drivers/net/wireless/celeno/cl8k/tx.h create mode 100644 drivers/net/wireless/celeno/cl8k/utils.c create mode 100644 drivers/net/wireless/celeno/cl8k/utils.h create mode 100644 drivers/net/wireless/celeno/cl8k/version.c create mode 100644 drivers/net/wireless/celeno/cl8k/version.h create mode 100644 drivers/net/wireless/celeno/cl8k/vif.c create mode 100644 drivers/net/wireless/celeno/cl8k/vif.h create mode 100644 drivers/net/wireless/celeno/cl8k/vns.c create mode 100644 drivers/net/wireless/celeno/cl8k/vns.h create mode 100644 drivers/net/wireless/celeno/cl8k/wrs.c create mode 100644 drivers/net/wireless/celeno/cl8k/wrs.h -- 2.36.1