Signed-off-by: David Lin <yu-hao.lin@nxp.com>
---
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/Kconfig | 22 +++++++++++++
drivers/net/wireless/nxp/nxpwifi/Makefile | 38 +++++++++++++++++++++++
6 files changed, 82 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/Kconfig
create mode 100644 drivers/net/wireless/nxp/nxpwifi/Makefile
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index c6599594dc99..4d7b81182925 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -27,6 +27,7 @@ source "drivers/net/wireless/intersil/Kconfig"
source "drivers/net/wireless/marvell/Kconfig"
source "drivers/net/wireless/mediatek/Kconfig"
source "drivers/net/wireless/microchip/Kconfig"
+source "drivers/net/wireless/nxp/Kconfig"
source "drivers/net/wireless/purelifi/Kconfig"
source "drivers/net/wireless/ralink/Kconfig"
source "drivers/net/wireless/realtek/Kconfig"
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index e1c4141c6004..0c6b3cc719db 100644
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_WLAN_VENDOR_INTERSIL) += intersil/
obj-$(CONFIG_WLAN_VENDOR_MARVELL) += marvell/
obj-$(CONFIG_WLAN_VENDOR_MEDIATEK) += mediatek/
obj-$(CONFIG_WLAN_VENDOR_MICROCHIP) += microchip/
+obj-$(CONFIG_WLAN_VENDOR_NXP) += nxp/
obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/
obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/
obj-$(CONFIG_WLAN_VENDOR_RALINK) += ralink/
diff --git a/drivers/net/wireless/nxp/Kconfig b/drivers/net/wireless/nxp/Kconfig
new file mode 100644
index 000000000000..68b32d4536e5
--- /dev/null
+++ b/drivers/net/wireless/nxp/Kconfig
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config WLAN_VENDOR_NXP
+ bool "NXP devices"
+ default y
+ help
+ If you have a wireless card belonging to this class, say Y.
+
+ Note that the answer to this question doesn't directly affect the
+ kernel: saying N will just cause the configurator to skip all the
+ questions about these cards. If you say Y, you will be asked for
+ your specific card in the following questions.
+
+if WLAN_VENDOR_NXP
+
+source "drivers/net/wireless/nxp/nxpwifi/Kconfig"
+
+endif # WLAN_VENDOR_NXP
diff --git a/drivers/net/wireless/nxp/Makefile b/drivers/net/wireless/nxp/Makefile
new file mode 100644
index 000000000000..27b41a0afdd2
--- /dev/null
+++ b/drivers/net/wireless/nxp/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+obj-$(CONFIG_NXPWIFI) += nxpwifi/
diff --git a/drivers/net/wireless/nxp/nxpwifi/Kconfig b/drivers/net/wireless/nxp/nxpwifi/Kconfig
new file mode 100644
index 000000000000..3637068574b8
--- /dev/null
+++ b/drivers/net/wireless/nxp/nxpwifi/Kconfig
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config NXPWIFI
+ tristate "NXP WiFi Driver"
+ depends on CFG80211
+ help
+ This adds support for wireless adapters based on NXP
+ 802.11n/ac chipsets.
+
+ If you choose to build it as a module, it will be called
+ nxpwifi.
+
+config NXPWIFI_SDIO
+ tristate "NXP WiFi Driver for IW61x"
+ depends on NXPWIFI && MMC
+ select FW_LOADER
+ select WANT_DEV_COREDUMP
+ help
+ This adds support for wireless adapters based on NXP
+ IW61x interface.
+
+ If you choose to build it as a module, it will be called
+ nxpwifi_sdio.
diff --git a/drivers/net/wireless/nxp/nxpwifi/Makefile b/drivers/net/wireless/nxp/nxpwifi/Makefile
new file mode 100644
index 000000000000..a9e5a528324b
--- /dev/null
+++ b/drivers/net/wireless/nxp/nxpwifi/Makefile
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright 2011-2020 NXP
+#
+
+
+nxpwifi-y += main.o
+nxpwifi-y += init.o
+nxpwifi-y += cfp.o
+nxpwifi-y += cmdevt.o
+nxpwifi-y += util.o
+nxpwifi-y += txrx.o
+nxpwifi-y += wmm.o
+nxpwifi-y += 11n.o
+nxpwifi-y += 11ac.o
+nxpwifi-y += 11n_aggr.o
+nxpwifi-y += 11n_rxreorder.o
+nxpwifi-y += scan.o
+nxpwifi-y += join.o
+nxpwifi-y += sta_ioctl.o
+nxpwifi-y += sta_cmd.o
+nxpwifi-y += uap_cmd.o
+nxpwifi-y += ie.o
+nxpwifi-y += sta_event.o
+nxpwifi-y += uap_event.o
+nxpwifi-y += sta_tx.o
+nxpwifi-y += sta_rx.o
+nxpwifi-y += uap_txrx.o
+nxpwifi-y += cfg80211.o
+nxpwifi-y += ethtool.o
+nxpwifi-y += 11h.o
+nxpwifi-$(CONFIG_DEBUG_FS) += debugfs.o
+obj-$(CONFIG_NXPWIFI) += nxpwifi.o
+
+nxpwifi_sdio-y += sdio.o
+obj-$(CONFIG_NXPWIFI_SDIO) += nxpwifi_sdio.o
+
+ccflags-y += -D__CHECK_ENDIAN
--
2.34.1
Hi David,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 238d636723a30311e20fde0a361662e829fe488b]
url: https://github.com/intel-lab-lkp/linux/commits/David-Lin/wifi-nxpwifi-add-11ac-c/20240625-161306
base: 238d636723a30311e20fde0a361662e829fe488b
patch link: https://lore.kernel.org/r/20240621075208.513497-43-yu-hao.lin%40nxp.com
patch subject: [PATCH 42/43] wifi: nxpwifi: add Makefile and Kconfig files for nxpwifi compilation
config: i386-randconfig-062-20240628 (https://download.01.org/0day-ci/archive/20240628/202406281235.idQnZtIJ-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240628/202406281235.idQnZtIJ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406281235.idQnZtIJ-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:541:19: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] size @@ got unsigned int @@
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:541:19: sparse: expected restricted __le16 [usertype] size
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:541:19: sparse: got unsigned int
>> drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:554:29: sparse: sparse: cast from restricted __le16
>> drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:573:19: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:584:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:596:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:609:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:622:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:640:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:653:27: sparse: sparse: bad assignment (+=) to restricted __le16
drivers/net/wireless/nxp/nxpwifi/uap_cmd.c:666:21: sparse: sparse: cast from restricted __le16
vim +541 drivers/net/wireless/nxp/nxpwifi/uap_cmd.c
309a0039e40257 David Lin 2024-06-21 521
309a0039e40257 David Lin 2024-06-21 522 /* This function prepares AP specific add station command.
309a0039e40257 David Lin 2024-06-21 523 */
309a0039e40257 David Lin 2024-06-21 524 static int
309a0039e40257 David Lin 2024-06-21 525 nxpwifi_cmd_uap_add_new_station(struct nxpwifi_private *priv,
309a0039e40257 David Lin 2024-06-21 526 struct host_cmd_ds_command *cmd,
309a0039e40257 David Lin 2024-06-21 527 u16 cmd_no, void *data_buf,
309a0039e40257 David Lin 2024-06-21 528 u16 cmd_action, u32 cmd_type)
309a0039e40257 David Lin 2024-06-21 529 {
309a0039e40257 David Lin 2024-06-21 530 struct host_cmd_ds_add_station *new_sta = &cmd->params.sta_info;
309a0039e40257 David Lin 2024-06-21 531 struct nxpwifi_sta_info *add_sta = (struct nxpwifi_sta_info *)data_buf;
309a0039e40257 David Lin 2024-06-21 532 struct station_parameters *params = add_sta->params;
309a0039e40257 David Lin 2024-06-21 533 struct nxpwifi_sta_node *sta_ptr;
309a0039e40257 David Lin 2024-06-21 534 u8 *pos, *cmd_end;
309a0039e40257 David Lin 2024-06-21 535 u16 tlv_len;
309a0039e40257 David Lin 2024-06-21 536 struct nxpwifi_ie_types_sta_flag *sta_flag;
309a0039e40257 David Lin 2024-06-21 537 int i;
309a0039e40257 David Lin 2024-06-21 538
309a0039e40257 David Lin 2024-06-21 539 cmd->command = cpu_to_le16(HOST_CMD_ADD_NEW_STATION);
309a0039e40257 David Lin 2024-06-21 540 new_sta->action = cpu_to_le16(cmd_action);
309a0039e40257 David Lin 2024-06-21 @541 cmd->size = sizeof(struct host_cmd_ds_add_station) + S_DS_GEN;
309a0039e40257 David Lin 2024-06-21 542
309a0039e40257 David Lin 2024-06-21 543 if (cmd_action == HOST_ACT_ADD_STA)
309a0039e40257 David Lin 2024-06-21 544 sta_ptr = nxpwifi_add_sta_entry(priv, add_sta->peer_mac);
309a0039e40257 David Lin 2024-06-21 545 else
309a0039e40257 David Lin 2024-06-21 546 sta_ptr = nxpwifi_get_sta_entry(priv, add_sta->peer_mac);
309a0039e40257 David Lin 2024-06-21 547
309a0039e40257 David Lin 2024-06-21 548 if (!sta_ptr)
309a0039e40257 David Lin 2024-06-21 549 return -1;
309a0039e40257 David Lin 2024-06-21 550
309a0039e40257 David Lin 2024-06-21 551 memcpy(new_sta->peer_mac, add_sta->peer_mac, ETH_ALEN);
309a0039e40257 David Lin 2024-06-21 552
309a0039e40257 David Lin 2024-06-21 553 if (cmd_action == HOST_ACT_REMOVE_STA) {
309a0039e40257 David Lin 2024-06-21 @554 cmd->size = cpu_to_le16(cmd->size);
309a0039e40257 David Lin 2024-06-21 555 return 0;
309a0039e40257 David Lin 2024-06-21 556 }
309a0039e40257 David Lin 2024-06-21 557
309a0039e40257 David Lin 2024-06-21 558 new_sta->aid = cpu_to_le16(params->aid);
309a0039e40257 David Lin 2024-06-21 559 new_sta->listen_interval = cpu_to_le32(params->listen_interval);
309a0039e40257 David Lin 2024-06-21 560 new_sta->cap_info = cpu_to_le16(params->capability);
309a0039e40257 David Lin 2024-06-21 561
309a0039e40257 David Lin 2024-06-21 562 pos = new_sta->tlv;
309a0039e40257 David Lin 2024-06-21 563 cmd_end = (u8 *)cmd;
309a0039e40257 David Lin 2024-06-21 564 cmd_end += (NXPWIFI_SIZE_OF_CMD_BUFFER - 1);
309a0039e40257 David Lin 2024-06-21 565
309a0039e40257 David Lin 2024-06-21 566 if (params->sta_flags_set & NL80211_STA_FLAG_WME)
309a0039e40257 David Lin 2024-06-21 567 sta_ptr->is_wmm_enabled = 1;
309a0039e40257 David Lin 2024-06-21 568 sta_flag = (struct nxpwifi_ie_types_sta_flag *)pos;
309a0039e40257 David Lin 2024-06-21 569 sta_flag->header.type = cpu_to_le16(TLV_TYPE_UAP_STA_FLAGS);
309a0039e40257 David Lin 2024-06-21 570 sta_flag->header.len = cpu_to_le16(sizeof(__le32));
309a0039e40257 David Lin 2024-06-21 571 sta_flag->sta_flags = cpu_to_le32(params->sta_flags_set);
309a0039e40257 David Lin 2024-06-21 572 pos += sizeof(struct nxpwifi_ie_types_sta_flag);
309a0039e40257 David Lin 2024-06-21 @573 cmd->size += sizeof(struct nxpwifi_ie_types_sta_flag);
309a0039e40257 David Lin 2024-06-21 574
309a0039e40257 David Lin 2024-06-21 575 if (params->ext_capab_len) {
309a0039e40257 David Lin 2024-06-21 576 u8 *data = (u8 *)params->ext_capab;
309a0039e40257 David Lin 2024-06-21 577 u16 len = params->ext_capab_len;
309a0039e40257 David Lin 2024-06-21 578
309a0039e40257 David Lin 2024-06-21 579 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_EXT_CAPABILITY,
309a0039e40257 David Lin 2024-06-21 580 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 581 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 582 return -1;
309a0039e40257 David Lin 2024-06-21 583 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 584 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 585 }
309a0039e40257 David Lin 2024-06-21 586
309a0039e40257 David Lin 2024-06-21 587 if (params->link_sta_params.supported_rates_len) {
309a0039e40257 David Lin 2024-06-21 588 u8 *data = (u8 *)params->link_sta_params.supported_rates;
309a0039e40257 David Lin 2024-06-21 589 u16 len = params->link_sta_params.supported_rates_len;
309a0039e40257 David Lin 2024-06-21 590
309a0039e40257 David Lin 2024-06-21 591 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_SUPP_RATES,
309a0039e40257 David Lin 2024-06-21 592 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 593 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 594 return -1;
309a0039e40257 David Lin 2024-06-21 595 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 596 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 597 }
309a0039e40257 David Lin 2024-06-21 598
309a0039e40257 David Lin 2024-06-21 599 if (params->uapsd_queues || params->max_sp) {
309a0039e40257 David Lin 2024-06-21 600 u8 qos_capability = params->uapsd_queues | (params->max_sp << 5);
309a0039e40257 David Lin 2024-06-21 601 u8 *data = &qos_capability;
309a0039e40257 David Lin 2024-06-21 602 u16 len = sizeof(u8);
309a0039e40257 David Lin 2024-06-21 603
309a0039e40257 David Lin 2024-06-21 604 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_QOS_CAPA,
309a0039e40257 David Lin 2024-06-21 605 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 606 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 607 return -1;
309a0039e40257 David Lin 2024-06-21 608 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 609 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 610 sta_ptr->is_wmm_enabled = 1;
309a0039e40257 David Lin 2024-06-21 611 }
309a0039e40257 David Lin 2024-06-21 612
309a0039e40257 David Lin 2024-06-21 613 if (params->link_sta_params.ht_capa) {
309a0039e40257 David Lin 2024-06-21 614 u8 *data = (u8 *)params->link_sta_params.ht_capa;
309a0039e40257 David Lin 2024-06-21 615 u16 len = sizeof(struct ieee80211_ht_cap);
309a0039e40257 David Lin 2024-06-21 616
309a0039e40257 David Lin 2024-06-21 617 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_HT_CAPABILITY,
309a0039e40257 David Lin 2024-06-21 618 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 619 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 620 return -1;
309a0039e40257 David Lin 2024-06-21 621 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 622 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 623 sta_ptr->is_11n_enabled = 1;
309a0039e40257 David Lin 2024-06-21 624 sta_ptr->max_amsdu =
309a0039e40257 David Lin 2024-06-21 625 le16_to_cpu(params->link_sta_params.ht_capa->cap_info) &
309a0039e40257 David Lin 2024-06-21 626 IEEE80211_HT_CAP_MAX_AMSDU ?
309a0039e40257 David Lin 2024-06-21 627 NXPWIFI_TX_DATA_BUF_SIZE_8K :
309a0039e40257 David Lin 2024-06-21 628 NXPWIFI_TX_DATA_BUF_SIZE_4K;
309a0039e40257 David Lin 2024-06-21 629 }
309a0039e40257 David Lin 2024-06-21 630
309a0039e40257 David Lin 2024-06-21 631 if (params->link_sta_params.vht_capa) {
309a0039e40257 David Lin 2024-06-21 632 u8 *data = (u8 *)params->link_sta_params.vht_capa;
309a0039e40257 David Lin 2024-06-21 633 u16 len = sizeof(struct ieee80211_vht_cap);
309a0039e40257 David Lin 2024-06-21 634
309a0039e40257 David Lin 2024-06-21 635 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_VHT_CAPABILITY,
309a0039e40257 David Lin 2024-06-21 636 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 637 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 638 return -1;
309a0039e40257 David Lin 2024-06-21 639 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 640 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 641 sta_ptr->is_11ac_enabled = 1;
309a0039e40257 David Lin 2024-06-21 642 }
309a0039e40257 David Lin 2024-06-21 643
309a0039e40257 David Lin 2024-06-21 644 if (params->link_sta_params.opmode_notif_used) {
309a0039e40257 David Lin 2024-06-21 645 u8 *data = ¶ms->link_sta_params.opmode_notif;
309a0039e40257 David Lin 2024-06-21 646 u16 len = sizeof(u8);
309a0039e40257 David Lin 2024-06-21 647
309a0039e40257 David Lin 2024-06-21 648 tlv_len = nxpwifi_append_data_tlv(WLAN_EID_OPMODE_NOTIF,
309a0039e40257 David Lin 2024-06-21 649 data, len, pos, cmd_end);
309a0039e40257 David Lin 2024-06-21 650 if (!tlv_len)
309a0039e40257 David Lin 2024-06-21 651 return -1;
309a0039e40257 David Lin 2024-06-21 652 pos += tlv_len;
309a0039e40257 David Lin 2024-06-21 653 cmd->size += tlv_len;
309a0039e40257 David Lin 2024-06-21 654 }
309a0039e40257 David Lin 2024-06-21 655
309a0039e40257 David Lin 2024-06-21 656 for (i = 0; i < MAX_NUM_TID; i++) {
309a0039e40257 David Lin 2024-06-21 657 if (sta_ptr->is_11n_enabled)
309a0039e40257 David Lin 2024-06-21 658 sta_ptr->ampdu_sta[i] =
309a0039e40257 David Lin 2024-06-21 659 priv->aggr_prio_tbl[i].ampdu_user;
309a0039e40257 David Lin 2024-06-21 660 else
309a0039e40257 David Lin 2024-06-21 661 sta_ptr->ampdu_sta[i] = BA_STREAM_NOT_ALLOWED;
309a0039e40257 David Lin 2024-06-21 662 }
309a0039e40257 David Lin 2024-06-21 663
309a0039e40257 David Lin 2024-06-21 664 memset(sta_ptr->rx_seq, 0xff, sizeof(sta_ptr->rx_seq));
309a0039e40257 David Lin 2024-06-21 665
309a0039e40257 David Lin 2024-06-21 666 cmd->size = cpu_to_le16(cmd->size);
309a0039e40257 David Lin 2024-06-21 667
309a0039e40257 David Lin 2024-06-21 668 return 0;
309a0039e40257 David Lin 2024-06-21 669 }
309a0039e40257 David Lin 2024-06-21 670
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi David,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 238d636723a30311e20fde0a361662e829fe488b]
url: https://github.com/intel-lab-lkp/linux/commits/David-Lin/wifi-nxpwifi-add-11ac-c/20240625-161306
base: 238d636723a30311e20fde0a361662e829fe488b
patch link: https://lore.kernel.org/r/20240621075208.513497-43-yu-hao.lin%40nxp.com
patch subject: [PATCH 42/43] wifi: nxpwifi: add Makefile and Kconfig files for nxpwifi compilation
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240626/202406260848.0pH4xjvI-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406260848.0pH4xjvI-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406260848.0pH4xjvI-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.c: In function 'nxpwifi_11n_dispatch_amsdu_pkt':
>> drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.c:40:47: warning: variable 'rx_hdr' set but not used [-Wunused-but-set-variable]
40 | struct rx_packet_hdr *rx_hdr;
| ^~~~~~
--
drivers/net/wireless/nxp/nxpwifi/sta_event.c: In function 'nxpwifi_sta_event_link_lost':
>> drivers/net/wireless/nxp/nxpwifi/sta_event.c:21:13: warning: variable 'reason_code' set but not used [-Wunused-but-set-variable]
21 | u16 reason_code;
| ^~~~~~~~~~~
--
drivers/net/wireless/nxp/nxpwifi/sta_rx.c: In function 'nxpwifi_process_rx_packet':
>> drivers/net/wireless/nxp/nxpwifi/sta_rx.c:78:25: warning: variable 'rx_pkt_len' set but not used [-Wunused-but-set-variable]
78 | u16 rx_pkt_off, rx_pkt_len;
| ^~~~~~~~~~
vim +/rx_hdr +40 drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.c
148be2798f7a0c David Lin 2024-06-21 17
148be2798f7a0c David Lin 2024-06-21 18 /* This function will dispatch amsdu packet and forward it to kernel/upper
148be2798f7a0c David Lin 2024-06-21 19 * layer.
148be2798f7a0c David Lin 2024-06-21 20 */
148be2798f7a0c David Lin 2024-06-21 21 static int nxpwifi_11n_dispatch_amsdu_pkt(struct nxpwifi_private *priv,
148be2798f7a0c David Lin 2024-06-21 22 struct sk_buff *skb)
148be2798f7a0c David Lin 2024-06-21 23 {
148be2798f7a0c David Lin 2024-06-21 24 struct rxpd *local_rx_pd = (struct rxpd *)(skb->data);
148be2798f7a0c David Lin 2024-06-21 25 int ret;
148be2798f7a0c David Lin 2024-06-21 26
148be2798f7a0c David Lin 2024-06-21 27 if (le16_to_cpu(local_rx_pd->rx_pkt_type) == PKT_TYPE_AMSDU) {
148be2798f7a0c David Lin 2024-06-21 28 struct sk_buff_head list;
148be2798f7a0c David Lin 2024-06-21 29 struct sk_buff *rx_skb;
148be2798f7a0c David Lin 2024-06-21 30
148be2798f7a0c David Lin 2024-06-21 31 __skb_queue_head_init(&list);
148be2798f7a0c David Lin 2024-06-21 32
148be2798f7a0c David Lin 2024-06-21 33 skb_pull(skb, le16_to_cpu(local_rx_pd->rx_pkt_offset));
148be2798f7a0c David Lin 2024-06-21 34 skb_trim(skb, le16_to_cpu(local_rx_pd->rx_pkt_length));
148be2798f7a0c David Lin 2024-06-21 35
148be2798f7a0c David Lin 2024-06-21 36 ieee80211_amsdu_to_8023s(skb, &list, priv->curr_addr,
148be2798f7a0c David Lin 2024-06-21 37 priv->wdev.iftype, 0, NULL, NULL, false);
148be2798f7a0c David Lin 2024-06-21 38
148be2798f7a0c David Lin 2024-06-21 39 while (!skb_queue_empty(&list)) {
148be2798f7a0c David Lin 2024-06-21 @40 struct rx_packet_hdr *rx_hdr;
148be2798f7a0c David Lin 2024-06-21 41
148be2798f7a0c David Lin 2024-06-21 42 rx_skb = __skb_dequeue(&list);
148be2798f7a0c David Lin 2024-06-21 43 rx_hdr = (struct rx_packet_hdr *)rx_skb->data;
148be2798f7a0c David Lin 2024-06-21 44
148be2798f7a0c David Lin 2024-06-21 45 if (priv->bss_role == NXPWIFI_BSS_ROLE_UAP)
148be2798f7a0c David Lin 2024-06-21 46 ret = nxpwifi_uap_recv_packet(priv, rx_skb);
148be2798f7a0c David Lin 2024-06-21 47 else
148be2798f7a0c David Lin 2024-06-21 48 ret = nxpwifi_recv_packet(priv, rx_skb);
148be2798f7a0c David Lin 2024-06-21 49 if (ret == -1)
148be2798f7a0c David Lin 2024-06-21 50 nxpwifi_dbg(priv->adapter, ERROR,
148be2798f7a0c David Lin 2024-06-21 51 "Rx of A-MSDU failed");
148be2798f7a0c David Lin 2024-06-21 52 }
148be2798f7a0c David Lin 2024-06-21 53 return 0;
148be2798f7a0c David Lin 2024-06-21 54 }
148be2798f7a0c David Lin 2024-06-21 55
148be2798f7a0c David Lin 2024-06-21 56 return -1;
148be2798f7a0c David Lin 2024-06-21 57 }
148be2798f7a0c David Lin 2024-06-21 58
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi David,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 238d636723a30311e20fde0a361662e829fe488b]
url: https://github.com/intel-lab-lkp/linux/commits/David-Lin/wifi-nxpwifi-add-11ac-c/20240625-161306
base: 238d636723a30311e20fde0a361662e829fe488b
patch link: https://lore.kernel.org/r/20240621075208.513497-43-yu-hao.lin%40nxp.com
patch subject: [PATCH 42/43] wifi: nxpwifi: add Makefile and Kconfig files for nxpwifi compilation
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240626/202406260755.fqLnsFhr-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406260755.fqLnsFhr-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406260755.fqLnsFhr-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/wireless/nxp/nxpwifi/11h.c:208:7: warning: variable 'chan2_offset' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
208 | case NL80211_CHAN_WIDTH_80P80:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:214:16: note: uninitialized use occurs here
214 | *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
| ^~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:209:7: warning: variable 'chan2_offset' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
209 | case NL80211_CHAN_WIDTH_160:
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:214:16: note: uninitialized use occurs here
214 | *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
| ^~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:192:7: warning: variable 'chan2_offset' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
192 | case NL80211_CHAN_WIDTH_20_NOHT:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:214:16: note: uninitialized use occurs here
214 | *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
| ^~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:193:7: warning: variable 'chan2_offset' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
193 | case NL80211_CHAN_WIDTH_20:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:214:16: note: uninitialized use occurs here
214 | *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
| ^~~~~~~~~~~~
>> drivers/net/wireless/nxp/nxpwifi/11h.c:210:2: warning: variable 'chan2_offset' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
210 | default:
| ^~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:214:16: note: uninitialized use occurs here
214 | *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
| ^~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:178:40: note: initialize the variable 'chan2_offset' to silence this warning
178 | u8 chan_band, chan_width, chan2_offset;
| ^
| = '\0'
>> drivers/net/wireless/nxp/nxpwifi/11h.c:208:7: warning: variable 'chan_width' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
208 | case NL80211_CHAN_WIDTH_80P80:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:216:9: note: uninitialized use occurs here
216 | ((chan_width << BAND_CFG_CHAN_WIDTH_SHIFT_BIT) &
| ^~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:209:7: warning: variable 'chan_width' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
209 | case NL80211_CHAN_WIDTH_160:
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:216:9: note: uninitialized use occurs here
216 | ((chan_width << BAND_CFG_CHAN_WIDTH_SHIFT_BIT) &
| ^~~~~~~~~~
>> drivers/net/wireless/nxp/nxpwifi/11h.c:210:2: warning: variable 'chan_width' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
210 | default:
| ^~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:216:9: note: uninitialized use occurs here
216 | ((chan_width << BAND_CFG_CHAN_WIDTH_SHIFT_BIT) &
| ^~~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:178:26: note: initialize the variable 'chan_width' to silence this warning
178 | u8 chan_band, chan_width, chan2_offset;
| ^
| = '\0'
>> drivers/net/wireless/nxp/nxpwifi/11h.c:187:2: warning: variable 'chan_band' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
187 | default:
| ^~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:218:9: note: uninitialized use occurs here
218 | ((chan_band << BAND_CFG_CHAN_BAND_SHIFT_BIT) &
| ^~~~~~~~~
drivers/net/wireless/nxp/nxpwifi/11h.c:178:14: note: initialize the variable 'chan_band' to silence this warning
178 | u8 chan_band, chan_width, chan2_offset;
| ^
| = '\0'
9 warnings generated.
vim +/chan2_offset +208 drivers/net/wireless/nxp/nxpwifi/11h.c
647388e635d138 David Lin 2024-06-21 174
647388e635d138 David Lin 2024-06-21 175 static void nxpwifi_convert_chan_to_band_cfg(u8 *band_cfg,
647388e635d138 David Lin 2024-06-21 176 struct cfg80211_chan_def *chan_def)
647388e635d138 David Lin 2024-06-21 177 {
647388e635d138 David Lin 2024-06-21 178 u8 chan_band, chan_width, chan2_offset;
647388e635d138 David Lin 2024-06-21 179
647388e635d138 David Lin 2024-06-21 180 switch (chan_def->chan->band) {
647388e635d138 David Lin 2024-06-21 181 case NL80211_BAND_2GHZ:
647388e635d138 David Lin 2024-06-21 182 chan_band = BAND_2GHZ;
647388e635d138 David Lin 2024-06-21 183 break;
647388e635d138 David Lin 2024-06-21 184 case NL80211_BAND_5GHZ:
647388e635d138 David Lin 2024-06-21 185 chan_band = BAND_5GHZ;
647388e635d138 David Lin 2024-06-21 186 break;
647388e635d138 David Lin 2024-06-21 @187 default:
647388e635d138 David Lin 2024-06-21 188 break;
647388e635d138 David Lin 2024-06-21 189 }
647388e635d138 David Lin 2024-06-21 190
647388e635d138 David Lin 2024-06-21 191 switch (chan_def->width) {
647388e635d138 David Lin 2024-06-21 192 case NL80211_CHAN_WIDTH_20_NOHT:
647388e635d138 David Lin 2024-06-21 193 case NL80211_CHAN_WIDTH_20:
647388e635d138 David Lin 2024-06-21 194 chan_width = CHAN_BW_20MHZ;
647388e635d138 David Lin 2024-06-21 195 break;
647388e635d138 David Lin 2024-06-21 196 case NL80211_CHAN_WIDTH_40:
647388e635d138 David Lin 2024-06-21 197 chan_width = CHAN_BW_40MHZ;
647388e635d138 David Lin 2024-06-21 198 if (chan_def->center_freq1 > chan_def->chan->center_freq)
647388e635d138 David Lin 2024-06-21 199 chan2_offset = SEC_CHAN_ABOVE;
647388e635d138 David Lin 2024-06-21 200 else
647388e635d138 David Lin 2024-06-21 201 chan2_offset = SEC_CHAN_BELOW;
647388e635d138 David Lin 2024-06-21 202 break;
647388e635d138 David Lin 2024-06-21 203 case NL80211_CHAN_WIDTH_80:
647388e635d138 David Lin 2024-06-21 204 chan2_offset =
647388e635d138 David Lin 2024-06-21 205 nxpwifi_get_channel_2_offset(chan_def->chan->hw_value);
647388e635d138 David Lin 2024-06-21 206 chan_width = CHAN_BW_80MHZ;
647388e635d138 David Lin 2024-06-21 207 break;
647388e635d138 David Lin 2024-06-21 @208 case NL80211_CHAN_WIDTH_80P80:
647388e635d138 David Lin 2024-06-21 209 case NL80211_CHAN_WIDTH_160:
647388e635d138 David Lin 2024-06-21 @210 default:
647388e635d138 David Lin 2024-06-21 211 break;
647388e635d138 David Lin 2024-06-21 212 }
647388e635d138 David Lin 2024-06-21 213
647388e635d138 David Lin 2024-06-21 @214 *band_cfg = ((chan2_offset << BAND_CFG_CHAN2_SHIFT_BIT) &
647388e635d138 David Lin 2024-06-21 215 BAND_CFG_CHAN2_OFFSET_MASK) |
647388e635d138 David Lin 2024-06-21 @216 ((chan_width << BAND_CFG_CHAN_WIDTH_SHIFT_BIT) &
647388e635d138 David Lin 2024-06-21 217 BAND_CFG_CHAN_WIDTH_MASK) |
647388e635d138 David Lin 2024-06-21 218 ((chan_band << BAND_CFG_CHAN_BAND_SHIFT_BIT) &
647388e635d138 David Lin 2024-06-21 219 BAND_CFG_CHAN_BAND_MASK);
647388e635d138 David Lin 2024-06-21 220 }
647388e635d138 David Lin 2024-06-21 221
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2025 Red Hat, Inc.