Search Linux Wireless

[PATCH v3 00/22] wifi: nxpwifi: create nxpwifi to support iw61x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series adds support for IW61x which is a new family of 2.4/5 GHz
dual-band 1x1 Wi-Fi 6, Bluetooth/Bluetooth Low Energy 5.2 and 15.4
tri-radio single chip by NXP. These devices support 20/40/80MHz
single spatial stream in both STA and AP mode. Communication to the
IW61x is done via SDIO interface

This driver is a derivative of existing Mwifiex [1] and based on full-MAC
architecture [2]. It has been tested with i.MX8M Mini evaluation kits in
both AP and STA mode.

All code passes sparse and checkpatch.

Data sheet (require registration):
https://www.nxp.com/products/wireless-connectivity/wi-fi-plus-bluetooth-
plus-802-15-4/2-4-5-ghz-dual-band-1x1-wi-fi-6-802-11ax-plus-bluetooth-5-
4-plus-802-15-4-tri-radio-solution:IW612

This patch intents to add new driver nxpwifi for NXP IW61x and future new
chips/features support. 

[1] We had considered adding IW61x to mwifiex, however due to FW
    architecture, host command interface and supported features are
    significantly different, doing this on mwifiex will carry a lot of
    burdens. The effort of making sure no regression is also a huge effort.
    We must create a new driver nxpwifi. Subsequent NXP chipsets will be
    added and sustained on nxpwifi only.

[2] Some features, as of now, WPA2/WPA3 personal/enterprise are offloaded
    to host wpa_supplicant/hostapd.

v3:
   - Enable 802.11ax (Wi-Fi 6) for both AP and STA mode.
   - Extend driver verion string with hotfix number.
   - Remove Rx mlme work.
   - Remove all useless check of netif_carrier_ok().
   - Merge decl.h to cfg.h.
   - Remove unnecessary check for wiphy parameters setting.
   - Synchronize following commits from Mwifiex: 
     wifi: mwifiex: replace open-coded module_sdio_driver() 
     wifi: mwifiex: Fix interface type change 
     wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id() 
     wifi: mwifiex: increase max_num_akm_suites 
     wifi: mwifiex: duplicate static structs used in driver instances 
     wifi: mwifiex: keep mwifiex_cfg80211_ops constant 
     wifi: mwifiex: Fix uninitialized variable in 
                    mwifiex_cfg80211_authenticate() 
     wifi: mwifiex: remove unnecessary checks for valid priv 
     wifi: mwifiex: Fix memcpy() field-spanning write warning in
                    mwifiex_cmd_802_11_scan_ext() 
     wifi: mwifiex: Use IRQF_NO_AUTOEN flag in request_irq() 

v2:
   - Rename ioctl.h and sta_ioctl.c to cfg.h and sta_cfg.c.
   - Remove useless header file semaphore.h.
   - Use static variable for cookie.
   - Modify nxpwifi_register to use ERR_PTR, IS_ERR and PTR_ERR.
   - Use error number for error code.
   - Remove unnecessary private ie definitions.
   - Remove mutex async_mutex and related code.
   - Remove unnecessary work queue.
   - Add the support for PSK SHA256.
   - Use tasklet for Rx.
   - Remove unused functions.
   - Remove compile warning.

David Lin (22):
  wifi: nxpwifi: add 802.11n files
  wifi: nxpwifi: add 802.11ac files
  wifi: nxpwifi: add 802.11ax files
  wifi: nxpwifi: add 802.11h file
  wifi: nxpwifi: add WMM files
  wifi: nxpwifi: add scan.c
  wifi: nxpwifi: add join.c
  wifi: nxpwifi: add cfp.c
  wifi: nxpwifi: add configuration files
  wifi: nxpwifi: implement cfg80211 ops
  wifi: nxpwifi: add host command file
  wifi: nxpwifi: add command and event files
  wifi: nxpwifi: add data path files
  wifi: nxpwifi: add debugfs file
  wifi: nxpwifi: add ethtool.c
  wifi: nxpwifi: add utility files
  wifi: nxpwifi: add initialization file
  wifi: nxpwifi: add core files
  wifi: nxpwifi: add sdio bus driver files
  wifi: nxpwifi: modify sdio_ids.h
  wifi: nxpwifi: add makefile and kconfig files
  wifi: nxpwifi: modify MAINTAINERS file

 MAINTAINERS                                   |    7 +
 drivers/net/wireless/Kconfig                  |    1 +
 drivers/net/wireless/Makefile                 |    1 +
 drivers/net/wireless/nxp/Kconfig              |   17 +
 drivers/net/wireless/nxp/Makefile             |    3 +
 drivers/net/wireless/nxp/nxpwifi/11ac.c       |  288 ++
 drivers/net/wireless/nxp/nxpwifi/11ac.h       |   32 +
 drivers/net/wireless/nxp/nxpwifi/11ax.c       |  388 ++
 drivers/net/wireless/nxp/nxpwifi/11ax.h       |   61 +
 drivers/net/wireless/nxp/nxpwifi/11h.c        |  432 ++
 drivers/net/wireless/nxp/nxpwifi/11n.c        |  848 ++++
 drivers/net/wireless/nxp/nxpwifi/11n.h        |  161 +
 drivers/net/wireless/nxp/nxpwifi/11n_aggr.c   |  275 ++
 drivers/net/wireless/nxp/nxpwifi/11n_aggr.h   |   21 +
 .../net/wireless/nxp/nxpwifi/11n_rxreorder.c  |  910 ++++
 .../net/wireless/nxp/nxpwifi/11n_rxreorder.h  |   72 +
 drivers/net/wireless/nxp/nxpwifi/Kconfig      |   22 +
 drivers/net/wireless/nxp/nxpwifi/Makefile     |   39 +
 drivers/net/wireless/nxp/nxpwifi/cfg.h        |  874 ++++
 drivers/net/wireless/nxp/nxpwifi/cfg80211.c   | 4003 +++++++++++++++++
 drivers/net/wireless/nxp/nxpwifi/cfg80211.h   |   19 +
 drivers/net/wireless/nxp/nxpwifi/cfp.c        |  475 ++
 drivers/net/wireless/nxp/nxpwifi/cmdevt.c     | 1286 ++++++
 drivers/net/wireless/nxp/nxpwifi/cmdevt.h     |   98 +
 drivers/net/wireless/nxp/nxpwifi/debugfs.c    | 1041 +++++
 drivers/net/wireless/nxp/nxpwifi/ethtool.c    |   58 +
 drivers/net/wireless/nxp/nxpwifi/fw.h         | 2322 ++++++++++
 drivers/net/wireless/nxp/nxpwifi/ie.c         |  501 +++
 drivers/net/wireless/nxp/nxpwifi/init.c       |  680 +++
 drivers/net/wireless/nxp/nxpwifi/join.c       |  910 ++++
 drivers/net/wireless/nxp/nxpwifi/main.c       | 1649 +++++++
 drivers/net/wireless/nxp/nxpwifi/main.h       | 1477 ++++++
 drivers/net/wireless/nxp/nxpwifi/scan.c       | 2831 ++++++++++++
 drivers/net/wireless/nxp/nxpwifi/sdio.c       | 2646 +++++++++++
 drivers/net/wireless/nxp/nxpwifi/sdio.h       |  340 ++
 drivers/net/wireless/nxp/nxpwifi/sta_cfg.c    | 1311 ++++++
 drivers/net/wireless/nxp/nxpwifi/sta_cmd.c    | 3309 ++++++++++++++
 drivers/net/wireless/nxp/nxpwifi/sta_event.c  |  861 ++++
 drivers/net/wireless/nxp/nxpwifi/sta_rx.c     |  243 +
 drivers/net/wireless/nxp/nxpwifi/sta_tx.c     |  208 +
 drivers/net/wireless/nxp/nxpwifi/txrx.c       |  357 ++
 drivers/net/wireless/nxp/nxpwifi/uap_cmd.c    | 1254 ++++++
 drivers/net/wireless/nxp/nxpwifi/uap_event.c  |  491 ++
 drivers/net/wireless/nxp/nxpwifi/uap_txrx.c   |  498 ++
 drivers/net/wireless/nxp/nxpwifi/util.c       |  999 ++++
 drivers/net/wireless/nxp/nxpwifi/util.h       |  121 +
 drivers/net/wireless/nxp/nxpwifi/wmm.c        | 1369 ++++++
 drivers/net/wireless/nxp/nxpwifi/wmm.h        |   78 +
 include/linux/mmc/sdio_ids.h                  |    3 +
 49 files changed, 35890 insertions(+)
 create mode 100644 drivers/net/wireless/nxp/Kconfig
 create mode 100644 drivers/net/wireless/nxp/Makefile
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ac.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ac.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ax.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ax.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11h.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_aggr.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_aggr.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/Kconfig
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/Makefile
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg80211.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg80211.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfp.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cmdevt.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/cmdevt.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/debugfs.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/ethtool.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/fw.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/ie.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/init.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/join.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/main.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/main.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/scan.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sdio.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sdio.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_cfg.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_cmd.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_event.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_rx.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_tx.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/txrx.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_cmd.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_event.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_txrx.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/util.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/util.h
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/wmm.c
 create mode 100644 drivers/net/wireless/nxp/nxpwifi/wmm.h


base-commit: 5a4d42c1688c88f3be6aef46b0ea6c32694cd2b8
-- 
2.34.1





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux