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

Jeff Chen posted 22 patches 6 months ago
There is a newer version of this series
MAINTAINERS                                   |    9 +
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       |  289 ++
drivers/net/wireless/nxp/nxpwifi/11ac.h       |   32 +
drivers/net/wireless/nxp/nxpwifi/11ax.c       |  590 +++
drivers/net/wireless/nxp/nxpwifi/11ax.h       |   72 +
drivers/net/wireless/nxp/nxpwifi/11h.c        |  346 ++
drivers/net/wireless/nxp/nxpwifi/11n.c        |  895 ++++
drivers/net/wireless/nxp/nxpwifi/11n.h        |  167 +
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  |  938 ++++
.../net/wireless/nxp/nxpwifi/11n_rxreorder.h  |   71 +
drivers/net/wireless/nxp/nxpwifi/Kconfig      |   22 +
drivers/net/wireless/nxp/nxpwifi/Makefile     |   39 +
drivers/net/wireless/nxp/nxpwifi/cfg.h        |  984 ++++
drivers/net/wireless/nxp/nxpwifi/cfg80211.c   | 4071 +++++++++++++++++
drivers/net/wireless/nxp/nxpwifi/cfg80211.h   |   19 +
drivers/net/wireless/nxp/nxpwifi/cfp.c        |  475 ++
drivers/net/wireless/nxp/nxpwifi/cmdevt.c     | 1284 ++++++
drivers/net/wireless/nxp/nxpwifi/cmdevt.h     |   98 +
drivers/net/wireless/nxp/nxpwifi/debugfs.c    | 1230 +++++
drivers/net/wireless/nxp/nxpwifi/ethtool.c    |   58 +
drivers/net/wireless/nxp/nxpwifi/fw.h         | 2401 ++++++++++
drivers/net/wireless/nxp/nxpwifi/ie.c         |  501 ++
drivers/net/wireless/nxp/nxpwifi/init.c       |  684 +++
drivers/net/wireless/nxp/nxpwifi/join.c       |  911 ++++
drivers/net/wireless/nxp/nxpwifi/main.c       | 1716 +++++++
drivers/net/wireless/nxp/nxpwifi/main.h       | 1850 ++++++++
drivers/net/wireless/nxp/nxpwifi/scan.c       | 2805 ++++++++++++
drivers/net/wireless/nxp/nxpwifi/sdio.c       | 2656 +++++++++++
drivers/net/wireless/nxp/nxpwifi/sdio.h       |  340 ++
drivers/net/wireless/nxp/nxpwifi/sta_cfg.c    | 1319 ++++++
drivers/net/wireless/nxp/nxpwifi/sta_cmd.c    | 3449 ++++++++++++++
drivers/net/wireless/nxp/nxpwifi/sta_event.c  |  868 ++++
drivers/net/wireless/nxp/nxpwifi/sta_rx.c     |  250 +
drivers/net/wireless/nxp/nxpwifi/sta_tx.c     |  208 +
drivers/net/wireless/nxp/nxpwifi/txrx.c       |  358 ++
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c    | 1234 +++++
drivers/net/wireless/nxp/nxpwifi/uap_event.c  |  490 ++
drivers/net/wireless/nxp/nxpwifi/uap_txrx.c   |  506 ++
drivers/net/wireless/nxp/nxpwifi/util.c       | 1580 +++++++
drivers/net/wireless/nxp/nxpwifi/util.h       |  132 +
drivers/net/wireless/nxp/nxpwifi/wmm.c        | 1379 ++++++
drivers/net/wireless/nxp/nxpwifi/wmm.h        |   78 +
include/linux/mmc/sdio_ids.h                  |    3 +
49 files changed, 37725 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
[PATCH v5 00/22] wifi: nxpwifi: create nxpwifi to support iw61x
Posted by Jeff Chen 6 months ago
This series adds a new full-MAC Wi-Fi driver `nxpwifi` to support NXP IW61x
chip family. These chips are tri-radio single-chip solutions with Wi-Fi 6
(1x1, 2.4/5 GHz), Bluetooth 5.4, and IEEE 802.15.4. Communication with the
external host is via SDIO interface. The driver is tested on i.MX8M Mini
EVK in both STA and AP mode.

This driver is not based on mac80211. It derives from mwifiex, but due to
significant differences in firmware architecture, host command interface,
and supported features, it was not feasible to extend mwifiex without risk
of regressions. Thus, a new driver is introduced. Future NXP Wi-Fi chipsets
will also be supported under `nxpwifi`.

The driver passes checkpatch. WPA2/WPA3 personal/enterprise is currently
handled in host via wpa_supplicant/hostapd.

v4 adds support for TWT, monitor mode, WPA3 Enterprise Suite-B, and various
fixes and improvements. See below for full changelog.

Data sheet is available at:
https://www.nxp.com/docs/en/data-sheet/IW612.pdf

Change history:

v5:
   - Fixed build errors introduced in v4.

v4:
   - Added support for TWT (STA mode)
   - Added support for Monitor mode
   - Added support for WPA3 Enterprise Suite-B
   - Bug fix: In BGN/AN HT40 mode, throughput was 50% lower than expected
   - Bug fix: In STA 2.4G HE40 mode, throughput was 80% lower than expected
   - Use wiphy work instead of general workqueue for cfg80211 ops
   - Introduced RCU protection for ba, rx_reorder, and sta_lists
   - Used per-TID spinlock for tx_ba / rx_reorder lists to improve
     concurrency
   - Replaced mutex_lock with wiphy_lock
   - Reverted "use tasklet for Rx" (back to workqueue)
   - Refactored HE capability handling for better clarity and
     maintainability
   - Used standard kernel helpers for MAC address handling
   - Replaced proprietary nxpwifi_ieee80211 with standard ieee80211_mgmt
     structure
   - Used u32_get_bits() for VHT capability field access
   - Replaced LOW_PRIO_TID with TC_PRIO_BESTEFFORT for skb priority
   - Removed static WPA/RSN OUI table; now derived from cipher suite ID
   - Removed redundant helper functions: has_vendor_hdr and has_ieee_hdr

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.

Jeff Chen (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                                   |    9 +
 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       |  289 ++
 drivers/net/wireless/nxp/nxpwifi/11ac.h       |   32 +
 drivers/net/wireless/nxp/nxpwifi/11ax.c       |  590 +++
 drivers/net/wireless/nxp/nxpwifi/11ax.h       |   72 +
 drivers/net/wireless/nxp/nxpwifi/11h.c        |  346 ++
 drivers/net/wireless/nxp/nxpwifi/11n.c        |  895 ++++
 drivers/net/wireless/nxp/nxpwifi/11n.h        |  167 +
 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  |  938 ++++
 .../net/wireless/nxp/nxpwifi/11n_rxreorder.h  |   71 +
 drivers/net/wireless/nxp/nxpwifi/Kconfig      |   22 +
 drivers/net/wireless/nxp/nxpwifi/Makefile     |   39 +
 drivers/net/wireless/nxp/nxpwifi/cfg.h        |  984 ++++
 drivers/net/wireless/nxp/nxpwifi/cfg80211.c   | 4071 +++++++++++++++++
 drivers/net/wireless/nxp/nxpwifi/cfg80211.h   |   19 +
 drivers/net/wireless/nxp/nxpwifi/cfp.c        |  475 ++
 drivers/net/wireless/nxp/nxpwifi/cmdevt.c     | 1284 ++++++
 drivers/net/wireless/nxp/nxpwifi/cmdevt.h     |   98 +
 drivers/net/wireless/nxp/nxpwifi/debugfs.c    | 1230 +++++
 drivers/net/wireless/nxp/nxpwifi/ethtool.c    |   58 +
 drivers/net/wireless/nxp/nxpwifi/fw.h         | 2401 ++++++++++
 drivers/net/wireless/nxp/nxpwifi/ie.c         |  501 ++
 drivers/net/wireless/nxp/nxpwifi/init.c       |  684 +++
 drivers/net/wireless/nxp/nxpwifi/join.c       |  911 ++++
 drivers/net/wireless/nxp/nxpwifi/main.c       | 1716 +++++++
 drivers/net/wireless/nxp/nxpwifi/main.h       | 1850 ++++++++
 drivers/net/wireless/nxp/nxpwifi/scan.c       | 2805 ++++++++++++
 drivers/net/wireless/nxp/nxpwifi/sdio.c       | 2656 +++++++++++
 drivers/net/wireless/nxp/nxpwifi/sdio.h       |  340 ++
 drivers/net/wireless/nxp/nxpwifi/sta_cfg.c    | 1319 ++++++
 drivers/net/wireless/nxp/nxpwifi/sta_cmd.c    | 3449 ++++++++++++++
 drivers/net/wireless/nxp/nxpwifi/sta_event.c  |  868 ++++
 drivers/net/wireless/nxp/nxpwifi/sta_rx.c     |  250 +
 drivers/net/wireless/nxp/nxpwifi/sta_tx.c     |  208 +
 drivers/net/wireless/nxp/nxpwifi/txrx.c       |  358 ++
 drivers/net/wireless/nxp/nxpwifi/uap_cmd.c    | 1234 +++++
 drivers/net/wireless/nxp/nxpwifi/uap_event.c  |  490 ++
 drivers/net/wireless/nxp/nxpwifi/uap_txrx.c   |  506 ++
 drivers/net/wireless/nxp/nxpwifi/util.c       | 1580 +++++++
 drivers/net/wireless/nxp/nxpwifi/util.h       |  132 +
 drivers/net/wireless/nxp/nxpwifi/wmm.c        | 1379 ++++++
 drivers/net/wireless/nxp/nxpwifi/wmm.h        |   78 +
 include/linux/mmc/sdio_ids.h                  |    3 +
 49 files changed, 37725 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

-- 
2.34.1
Re: [PATCH v5 00/22] wifi: nxpwifi: create nxpwifi to support iw61x
Posted by Martyn Welch 4 months ago
On 04/08/2025 16:39, Jeff Chen wrote:
> This series adds a new full-MAC Wi-Fi driver `nxpwifi` to support NXP IW61x
> chip family. These chips are tri-radio single-chip solutions with Wi-Fi 6
> (1x1, 2.4/5 GHz), Bluetooth 5.4, and IEEE 802.15.4. Communication with the
> external host is via SDIO interface. The driver is tested on i.MX8M Mini
> EVK in both STA and AP mode.
> 
> This driver is not based on mac80211. It derives from mwifiex, but due to
> significant differences in firmware architecture, host command interface,
> and supported features, it was not feasible to extend mwifiex without risk
> of regressions. Thus, a new driver is introduced. Future NXP Wi-Fi chipsets
> will also be supported under `nxpwifi`.
> 
> The driver passes checkpatch. WPA2/WPA3 personal/enterprise is currently
> handled in host via wpa_supplicant/hostapd.
> 
> v4 adds support for TWT, monitor mode, WPA3 Enterprise Suite-B, and various
> fixes and improvements. See below for full changelog.
> 

This seems to be working well for me, at least for Wifi. I'd like to get 
Bluetooth up as well. The bluetooth driver (btnxpuart) doesn't seem 
happy loading the bluetooh firmware:

[   35.930755] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
[   37.953107] Bluetooth: hci0: FW Download Complete: 396444 bytes
[   37.953167] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.277635] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.292011] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.310094] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.330273] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.351381] Bluetooth: hci0: Frame reassembly failed (-84)
[   39.373112] Bluetooth: hci0: Frame reassembly failed (-84)
[   41.353087] Bluetooth: hci0: Opcode 0x1002 failed: -110
[   41.358411] Bluetooth: hci0: command 0x1002 tx timeout

I think the "combo" firmware needs to be loaded by the WiFi driver 
right? I assume this isn't supported yet?

Martyn

> Data sheet is available at:
> https://www.nxp.com/docs/en/data-sheet/IW612.pdf
> 
> Change history:
> 
> v5:
>     - Fixed build errors introduced in v4.
> 
> v4:
>     - Added support for TWT (STA mode)
>     - Added support for Monitor mode
>     - Added support for WPA3 Enterprise Suite-B
>     - Bug fix: In BGN/AN HT40 mode, throughput was 50% lower than expected
>     - Bug fix: In STA 2.4G HE40 mode, throughput was 80% lower than expected
>     - Use wiphy work instead of general workqueue for cfg80211 ops
>     - Introduced RCU protection for ba, rx_reorder, and sta_lists
>     - Used per-TID spinlock for tx_ba / rx_reorder lists to improve
>       concurrency
>     - Replaced mutex_lock with wiphy_lock
>     - Reverted "use tasklet for Rx" (back to workqueue)
>     - Refactored HE capability handling for better clarity and
>       maintainability
>     - Used standard kernel helpers for MAC address handling
>     - Replaced proprietary nxpwifi_ieee80211 with standard ieee80211_mgmt
>       structure
>     - Used u32_get_bits() for VHT capability field access
>     - Replaced LOW_PRIO_TID with TC_PRIO_BESTEFFORT for skb priority
>     - Removed static WPA/RSN OUI table; now derived from cipher suite ID
>     - Removed redundant helper functions: has_vendor_hdr and has_ieee_hdr
> 
> 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.
> 
> Jeff Chen (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                                   |    9 +
>   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       |  289 ++
>   drivers/net/wireless/nxp/nxpwifi/11ac.h       |   32 +
>   drivers/net/wireless/nxp/nxpwifi/11ax.c       |  590 +++
>   drivers/net/wireless/nxp/nxpwifi/11ax.h       |   72 +
>   drivers/net/wireless/nxp/nxpwifi/11h.c        |  346 ++
>   drivers/net/wireless/nxp/nxpwifi/11n.c        |  895 ++++
>   drivers/net/wireless/nxp/nxpwifi/11n.h        |  167 +
>   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  |  938 ++++
>   .../net/wireless/nxp/nxpwifi/11n_rxreorder.h  |   71 +
>   drivers/net/wireless/nxp/nxpwifi/Kconfig      |   22 +
>   drivers/net/wireless/nxp/nxpwifi/Makefile     |   39 +
>   drivers/net/wireless/nxp/nxpwifi/cfg.h        |  984 ++++
>   drivers/net/wireless/nxp/nxpwifi/cfg80211.c   | 4071 +++++++++++++++++
>   drivers/net/wireless/nxp/nxpwifi/cfg80211.h   |   19 +
>   drivers/net/wireless/nxp/nxpwifi/cfp.c        |  475 ++
>   drivers/net/wireless/nxp/nxpwifi/cmdevt.c     | 1284 ++++++
>   drivers/net/wireless/nxp/nxpwifi/cmdevt.h     |   98 +
>   drivers/net/wireless/nxp/nxpwifi/debugfs.c    | 1230 +++++
>   drivers/net/wireless/nxp/nxpwifi/ethtool.c    |   58 +
>   drivers/net/wireless/nxp/nxpwifi/fw.h         | 2401 ++++++++++
>   drivers/net/wireless/nxp/nxpwifi/ie.c         |  501 ++
>   drivers/net/wireless/nxp/nxpwifi/init.c       |  684 +++
>   drivers/net/wireless/nxp/nxpwifi/join.c       |  911 ++++
>   drivers/net/wireless/nxp/nxpwifi/main.c       | 1716 +++++++
>   drivers/net/wireless/nxp/nxpwifi/main.h       | 1850 ++++++++
>   drivers/net/wireless/nxp/nxpwifi/scan.c       | 2805 ++++++++++++
>   drivers/net/wireless/nxp/nxpwifi/sdio.c       | 2656 +++++++++++
>   drivers/net/wireless/nxp/nxpwifi/sdio.h       |  340 ++
>   drivers/net/wireless/nxp/nxpwifi/sta_cfg.c    | 1319 ++++++
>   drivers/net/wireless/nxp/nxpwifi/sta_cmd.c    | 3449 ++++++++++++++
>   drivers/net/wireless/nxp/nxpwifi/sta_event.c  |  868 ++++
>   drivers/net/wireless/nxp/nxpwifi/sta_rx.c     |  250 +
>   drivers/net/wireless/nxp/nxpwifi/sta_tx.c     |  208 +
>   drivers/net/wireless/nxp/nxpwifi/txrx.c       |  358 ++
>   drivers/net/wireless/nxp/nxpwifi/uap_cmd.c    | 1234 +++++
>   drivers/net/wireless/nxp/nxpwifi/uap_event.c  |  490 ++
>   drivers/net/wireless/nxp/nxpwifi/uap_txrx.c   |  506 ++
>   drivers/net/wireless/nxp/nxpwifi/util.c       | 1580 +++++++
>   drivers/net/wireless/nxp/nxpwifi/util.h       |  132 +
>   drivers/net/wireless/nxp/nxpwifi/wmm.c        | 1379 ++++++
>   drivers/net/wireless/nxp/nxpwifi/wmm.h        |   78 +
>   include/linux/mmc/sdio_ids.h                  |    3 +
>   49 files changed, 37725 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
>
Re: [PATCH v5 00/22] wifi: nxpwifi: create nxpwifi to support iw61x
Posted by Jeff Chen 4 months ago
On Tue, Oct 07, 2025 at 05:49:59 PM +0100, Martyn Welch wrote:
> This seems to be working well for me, at least for Wifi. I'd like to get
> Bluetooth up as well. The bluetooth driver (btnxpuart) doesn't seem happy
> loading the bluetooh firmware:
> 
> [   35.930755] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
> [   37.953107] Bluetooth: hci0: FW Download Complete: 396444 bytes
> [   37.953167] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.277635] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.292011] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.310094] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.330273] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.351381] Bluetooth: hci0: Frame reassembly failed (-84)
> [   39.373112] Bluetooth: hci0: Frame reassembly failed (-84)
> [   41.353087] Bluetooth: hci0: Opcode 0x1002 failed: -110
> [   41.358411] Bluetooth: hci0: command 0x1002 tx timeout
> 
> I think the "combo" firmware needs to be loaded by the WiFi driver right? I
> assume this isn't supported yet?
> 
> Martyn
> 
Hi Martyn,

Thanks for testing the nxpwifi driver. On our side, we haven’t seen issues
with Bluetooth on the NXP i.MX93 EVK platform, regardless of whether the nxpwifi
driver loads the Wi-Fi-only firmware or the combo firmware.

From your logs, it looks like you're loading the Wi-Fi-only firmware
(nxp/uartspi_n61x_v1.bin.se). If it were the combo firmware, the btnxpuart
driver would skip loading the BT firmware entirely, since it would already
be downloaded by the Wi-Fi driver.

To help us reproduce and investigate further, could you please share:
- Your test platform (SoC, board, etc.)
- Your test steps
- The exact firmware version you're using
Also, have you tried running Bluetooth in a BT-only scenario (without loading
the Wi-Fi driver)? Does that work correctly?

Thanks,  
Jeff
Re: [PATCH v5 00/22] wifi: nxpwifi: create nxpwifi to support iw61x
Posted by Martyn Welch 3 months, 4 weeks ago

On 09/10/2025 17:01, Jeff Chen wrote:
> On Tue, Oct 07, 2025 at 05:49:59 PM +0100, Martyn Welch wrote:
>> This seems to be working well for me, at least for Wifi. I'd like to get
>> Bluetooth up as well. The bluetooth driver (btnxpuart) doesn't seem happy
>> loading the bluetooh firmware:
>>
>> [   35.930755] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
>> [   37.953107] Bluetooth: hci0: FW Download Complete: 396444 bytes
>> [   37.953167] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.277635] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.292011] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.310094] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.330273] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.351381] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   39.373112] Bluetooth: hci0: Frame reassembly failed (-84)
>> [   41.353087] Bluetooth: hci0: Opcode 0x1002 failed: -110
>> [   41.358411] Bluetooth: hci0: command 0x1002 tx timeout
>>
>> I think the "combo" firmware needs to be loaded by the WiFi driver right? I
>> assume this isn't supported yet?
>>
>> Martyn
>>
> Hi Martyn,
> 
> Thanks for testing the nxpwifi driver. On our side, we haven’t seen issues
> with Bluetooth on the NXP i.MX93 EVK platform, regardless of whether the nxpwifi
> driver loads the Wi-Fi-only firmware or the combo firmware.
> 
>  From your logs, it looks like you're loading the Wi-Fi-only firmware
> (nxp/uartspi_n61x_v1.bin.se). If it were the combo firmware, the btnxpuart
> driver would skip loading the BT firmware entirely, since it would already
> be downloaded by the Wi-Fi driver.
> 

Yes, I'm currently using the wifi only firmware. If I'm not mistaken, 
that's the only firmware that the NXPWifi driver will currently use. It 
appears that it should be able to load `firmware_sdiouart`, but that 
doesn't appear to be set anywhere and thus it's not considered. I tried 
to rename the combo firmware to have the name used for the wifi only 
firmware, but that was failing for me (more about that in a moment).

> To help us reproduce and investigate further, could you please share:
> - Your test platform (SoC, board, etc.)

Custom board based on Renesas RZ-G2L, using Ezurio Sona NX611 M.2 1216 
module.

Kernel is 6.17 with an added custom DT, a few patches for other hardware 
and the NXPWifi patch series.

Both btnxpuart and nxpwifi are built as modules.

The firmware itself is what Ezurio provide in their Yocto layer:

$ md5sum *
6a9307d27c3bdb3bde800265056ab217  sd_w61x_v1.bin.se
8a28ec7f1b77dbde0ac7568d0426c669  sduart_nw61x_v1.bin.se
d38935f03dbe6da7a9ac3daf58e640bf  uartspi_n61x_v1.bin.se


Looking a bit deeper, if I try and load the combined firmware, the 
bluetooth modules attempts to load before the WiFi driver has had a 
chance to complete loading the firmware which is resulting in the 
firmware failing.

If I blacklist the btnxpuart module (and rename the combo firmware),
it loads:

[   45.781023] nxpwifi_sdio mmc1:0001:1: info: FW download over, size 
944916 bytes
[   45.884760] nxpwifi_sdio mmc1:0001:1: WLAN FW is active
[   45.913045] nxpwifi_sdio mmc1:0001:1: VDLL image: len=109800
[   45.913209] nxpwifi_sdio mmc1:0001:1: Firmware api version 15.1
[   46.023576] nxpwifi_sdio mmc1:0001:1: info: NXPWIFI VERSION: nxpwifi 
1.12 (18.99.3.p15.0)
[   46.023610] nxpwifi_sdio mmc1:0001:1: driver_version = nxpwifi 1.12 
(18.99.3.p15.0)


If I then try to manually load the bluetooth module I get a failure:

[  104.627753] Bluetooth: Core ver 2.22
[  104.628041] NET: Registered PF_BLUETOOTH protocol family
[  104.628053] Bluetooth: HCI device and connection manager initialized
[  104.632606] Bluetooth: HCI socket layer initialized
[  104.632646] Bluetooth: L2CAP socket layer initialized
[  104.632704] Bluetooth: SCO socket layer initialized
[  104.651019] btnxpuart serial0-0: supply vcc not found, using dummy 
regulator
[  105.245804] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  105.245841] Bluetooth: BNEP filters: protocol multicast
[  105.245866] Bluetooth: BNEP socket layer initialized
[  105.672560] Bluetooth: hci0: FW already running.
[  105.775233] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.781369] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.787899] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.794313] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.800861] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.806457] Bluetooth: hci0: Frame reassembly failed (-84)
[  105.811925] ------------[ cut here ]------------
[  105.811929] Unbalanced enable for IRQ 38
[  105.811953] WARNING: CPU: 0 PID: 40 at kernel/irq/manage.c:753 
__enable_irq+0x54/0x90
[  105.811979] Modules linked in: bnep btnxpuart bluetooth ecdh_generic 
ecc snd_seq_dummy snd_hrtimer snd_seq snd_seq_device nxpwifi_sdio 
nxpwifi joydev cfg80211 aes_ce_blk aes_ce_cipher polyval_ce ghash_ce 
snd_soc_tlv320aic3x_i2c snd_soc_simple_card snd_soc_rz_ssi 
snd_soc_tlv320aic3x snd_soc_simple_card_utils snd_soc_bt_sco gf128mul 
snd_soc_core snd_compress snd_pcm_dmaengine rzg2l_cru snd_pcm goodix_ts 
v4l2_fwnode v4l2_async rzg2l_thermal snd_timer optee snd ffa_core tee 
leds_gpio soundcore cpufreq_dt rfkill qrtr evdev ip6t_REJECT 
nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_tcpudp xt_conntrack 
nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables x_tables 
efi_pstore configfs nfnetlink autofs4 ext4 crc16 mbcache jbd2 cls_cgroup 
rzg2l_du_drm drm_display_helper panel_simple cec rc_core panfrost 
gpu_sched micrel vsp1 phy_package drm_client_lib ravb drm_shmem_helper 
rzg2l_mipi_dsi drm_dma_helper mdio_bitbang videobuf2_vmalloc 
drm_kms_helper of_mdio videobuf2_dma_contig videobuf2_memops fixed_phy 
videobuf2_v4l2
[  105.812215]  fwnode_mdio drm videodev libphy 
renesas_sdhi_internal_dmac renesas_sdhi_core reset_rzg2l_usbphy_ctrl 
mdio_bus rzg2l_wdt videobuf2_common tmio_mmc_core mc rcar_fcp i2c_riic 
pwm_rz_mtu3 fixed gpio_keys_polled pwm_bl
[  105.812270] CPU: 0 UID: 0 PID: 40 Comm: kworker/u4:2 Not tainted 
6.17.0+ #10 VOLUNTARY
[  105.812281] Hardware name: Custom Board (DT)
[  105.812288] Workqueue: events_unbound flush_to_ldisc
[  105.812305] pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS 
BTYPE=--)
[  105.812313] pc : __enable_irq+0x54/0x90
[  105.812321] lr : __enable_irq+0x54/0x90
[  105.812329] sp : ffff800080003db0
[  105.812332] x29: ffff800080003db0 x28: ffff00007fbcf140 x27: 
ffff00000ae212c0
[  105.812343] x26: ffff00007fbcf140 x25: ffff00007fbcf140 x24: 
0000000000000006
[  105.812352] x23: 00000000000000c0 x22: 0000000000000000 x21: 
00000000000000c0
[  105.812362] x20: 0000000000000026 x19: ffff000010ed3200 x18: 
00000000ffffffff
[  105.812371] x17: ffff7ffffe0a5000 x16: ffff800080000000 x15: 
ffff800081fefa4c
[  105.812380] x14: 0000000000000000 x13: 3833205152492072 x12: 
ffff800081c84a90
[  105.812390] x11: ffff800081c2cae8 x10: ffff800081c84ae8 x9 : 
ffff800080170a2c
[  105.812399] x8 : 0000000000000001 x7 : 0000000000017fe8 x6 : 
c0000000ffffefff
[  105.812408] x5 : ffff00007fbcb508 x4 : 0000000000000000 x3 : 
ffff7ffffe0a5000
[  105.812418] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 
ffff00000ae212c0
[  105.812428] Call trace:
[  105.812433]  __enable_irq+0x54/0x90 (P)
[  105.812444]  enable_irq+0x74/0xe8
[  105.812453]  sci_dma_rx_reenable_irq+0x70/0xe0
[  105.812465]  sci_dma_rx_timer_fn+0x234/0x3b0
[  105.812474]  __hrtimer_run_queues+0x130/0x2e0
[  105.812487]  hrtimer_interrupt+0x10c/0x2e0
[  105.812498]  arch_timer_handler_virt+0x34/0x60
[  105.812514]  handle_percpu_devid_irq+0x88/0x1b0
[  105.812525]  handle_irq_desc+0x3c/0x68
[  105.812534]  generic_handle_domain_irq+0x24/0x40
[  105.812542]  gic_handle_irq+0x54/0x140
[  105.812551]  call_on_irq_stack+0x30/0x48
[  105.812560]  do_interrupt_handler+0x88/0xa0
[  105.812569]  el1_interrupt+0x34/0x58
[  105.812583]  el1h_64_irq_handler+0x18/0x28
[  105.812590]  el1h_64_irq+0x6c/0x70
[  105.812598]  console_flush_all+0x2dc/0x3b8 (P)
[  105.812611]  console_unlock+0x8c/0x160
[  105.812621]  vprintk_emit+0x304/0x388
[  105.812631]  vprintk_default+0x40/0x58
[  105.812641]  vprintk+0x30/0x48
[  105.812651]  _printk+0x68/0xa0
[  105.812660]  bt_err+0x6c/0x9a8 [bluetooth]
[  105.812881]  btnxpuart_receive_buf+0x170/0x318 [btnxpuart]
[  105.812901]  ttyport_receive_buf+0x6c/0xe0
[  105.812916]  flush_to_ldisc+0xbc/0x1b0
[  105.812927]  process_one_work+0x178/0x3c8
[  105.812941]  worker_thread+0x208/0x400
[  105.812951]  kthread+0x120/0x220
[  105.812961]  ret_from_fork+0x10/0x20
[  105.812972] ---[ end trace 0000000000000000 ]---
[  105.815082] Bluetooth: hci0: Frame reassembly failed (-84)
[  107.816594] Bluetooth: hci0: Opcode 0x1002 failed: -110



> - Your test steps

At the moment, booting and checking to see if the hardware has probed.
If it has, ensure I can connect to my wifi network and ensure that I can 
pass a little bit of traffic.

> - The exact firmware version you're using

As above.

> Also, have you tried running Bluetooth in a BT-only scenario (without loading
> the Wi-Fi driver)? Does that work correctly?
> 

I hadn't. Just gave that a go and I seem to be getting the same failure 
(though :

$ sudo dmesg | grep hci0
[   40.859055] Bluetooth: hci0: ChipID: 7601, Version: 0
[   40.889487] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
[   42.850682] Bluetooth: hci0: FW Download Complete: 396444 bytes
[   42.850736] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.222243] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.230226] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.237480] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.247567] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.254188] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.263459] Bluetooth: hci0: Frame reassembly failed (-84)
[   44.269814] Bluetooth: hci0: Frame reassembly failed (-84)
[   46.280494] Bluetooth: hci0: Opcode 0x1002 failed: -110
[   46.285835] Bluetooth: hci0: command 0x1002 tx timeout


Are there any BT patches that I'm missing?

Martyn

> Thanks,
> Jeff

Re: [PATCH v5 00/22] wifi: nxpwifi: create nxpwifi to support iw61x
Posted by Johannes Berg 5 months ago
On Mon, 2025-08-04 at 23:39 +0800, Jeff Chen wrote:
> This series adds a new full-MAC Wi-Fi driver `nxpwifi` to support NXP IW61x
> chip family.

Anyway the other reason I was commenting - when it's merged it should
just be a single patch, I think? So maybe provide a cover letter with a
commit message suitable for the entire driver and Signed-off-by? Not
sure how I should really handle this, tbh, but I guess that works.

johannes