summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHana Huang <hanahuang@google.com>2024-02-29 12:30:17 +0000
committerTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-02-29 16:32:20 +0000
commit64492487aeff10809ecd9229222e04ccb06ecb17 (patch)
treee881b9ed0141532231234de1bf6b7a0351d973c5
parent466bdacf478715e5ae797d6cff5b795ba0f1179d (diff)
downloadbcm4398-android-gs-shusky-5.15-android14-qpr3-beta.tar.gz
Revert^2 "bcmdhd: DHD QPR3 release for bcm4398, 2024.02.01 Version : 103.10.243.26"android-u-qpr3-beta-2.1_r0.8android-gs-shusky-5.15-android14-qpr3-beta
This reverts commit 04ed02a95d06df36b6bc790174432f33243bfc28. Reason for revert: The solution of APF SSR is included in https://partner-android-review.git.corp.google.com/c/kernel/private/google-modules/wlan/bcmdhd/bcm4389/+/2754692 Bug:327185608 Change-Id: I5b22dfb9e839bb5fec4dff5748366dca552cf1fb
-rw-r--r--Kbuild4
-rw-r--r--Kconfig2
-rw-r--r--Makefile2
-rw-r--r--aiutils.c2
-rw-r--r--bcm_app_utils.c2
-rw-r--r--bcm_l2_filter.c2
-rw-r--r--bcmbloom.c2
-rw-r--r--bcmcapext.c2
-rw-r--r--bcmevent.c2
-rw-r--r--bcmsdh.c2
-rw-r--r--bcmsdh_linux.c2
-rw-r--r--bcmsdh_sdmmc.c2
-rw-r--r--bcmsdh_sdmmc_linux.c2
-rw-r--r--bcmsdspi.h2
-rw-r--r--bcmsdspi_linux.c2
-rw-r--r--bcmsdstd.h2
-rw-r--r--bcmspibrcm.c2
-rw-r--r--bcmstdlib_s.c2
-rw-r--r--bcmutils.c2
-rw-r--r--bcmwifi_channels.c2
-rw-r--r--bcmxtlv.c2
-rw-r--r--dhd.h5
-rw-r--r--dhd_bitpack.h2
-rw-r--r--dhd_bus.h8
-rw-r--r--dhd_buzzz.h2
-rw-r--r--dhd_cdc.c2
-rw-r--r--dhd_cfg80211.c2
-rw-r--r--dhd_cfg80211.h2
-rw-r--r--dhd_cfg_dscp_policy.c2
-rw-r--r--dhd_cfg_dscp_policy.h2
-rw-r--r--dhd_cfg_dscp_policy_api.h2
-rw-r--r--dhd_common.c2
-rw-r--r--dhd_custom_cis.c2
-rw-r--r--dhd_custom_google.c2
-rw-r--r--dhd_custom_gpio.c2
-rw-r--r--dhd_custom_memprealloc.c2
-rw-r--r--dhd_custom_msm.c2
-rw-r--r--dhd_dbg.h2
-rw-r--r--dhd_dbg_ring.c2
-rw-r--r--dhd_dbg_ring.h2
-rw-r--r--dhd_debug.c398
-rw-r--r--dhd_debug.h109
-rw-r--r--dhd_debug_linux.c92
-rw-r--r--dhd_event_log_filter.c2
-rw-r--r--dhd_event_log_filter.h2
-rw-r--r--dhd_flowring.c2
-rw-r--r--dhd_flowring.h2
-rw-r--r--dhd_ip.c2
-rw-r--r--dhd_ip.h2
-rw-r--r--dhd_linux.c89
-rw-r--r--dhd_linux.h3
-rw-r--r--dhd_linux_exportfs.c2
-rw-r--r--dhd_linux_lb.c2
-rw-r--r--dhd_linux_pktdump.c2
-rw-r--r--dhd_linux_pktdump.h2
-rw-r--r--dhd_linux_platdev.c2
-rw-r--r--dhd_linux_priv.h2
-rw-r--r--dhd_linux_rx.c7
-rw-r--r--dhd_linux_sched.c2
-rw-r--r--dhd_linux_sock_qos.h2
-rw-r--r--dhd_linux_tx.c2
-rw-r--r--dhd_linux_tx.h2
-rw-r--r--dhd_linux_wq.c2
-rw-r--r--dhd_linux_wq.h2
-rw-r--r--dhd_log_dump.c2
-rw-r--r--dhd_log_dump.h2
-rw-r--r--dhd_logger.h2
-rw-r--r--dhd_mschdbg.c2
-rw-r--r--dhd_mschdbg.h2
-rw-r--r--dhd_msgbuf.c19
-rw-r--r--dhd_pcie.c100
-rw-r--r--dhd_pcie.h2
-rw-r--r--dhd_pcie_linux.c2
-rw-r--r--dhd_pktlog.c2
-rw-r--r--dhd_pktlog.h2
-rw-r--r--dhd_plat.h2
-rw-r--r--dhd_pno.c2
-rw-r--r--dhd_pno.h2
-rw-r--r--dhd_proto.h2
-rw-r--r--dhd_rtt.c2
-rw-r--r--dhd_rtt.h2
-rw-r--r--dhd_sdio.c2
-rw-r--r--dhd_statlog.c2
-rw-r--r--dhd_statlog.h2
-rw-r--r--dhd_wlfc.c2
-rw-r--r--dhd_wlfc.h2
-rw-r--r--frag.c2
-rw-r--r--fwpkg_utils.c2
-rw-r--r--hal_nci_cmn.c2
-rw-r--r--hnd_pktpool.c2
-rw-r--r--hnd_pktq.c2
-rw-r--r--hndpmu_dhd.c2
-rw-r--r--hndpmu_priv.h2
-rw-r--r--include/802.11.h2
-rw-r--r--include/802.11ac.h2
-rw-r--r--include/802.11ah.h2
-rw-r--r--include/802.11ax.h2
-rw-r--r--include/802.11az.h2
-rw-r--r--include/802.11brcm.h2
-rw-r--r--include/802.11cust.h2
-rw-r--r--include/802.11e.h2
-rw-r--r--include/802.11k.h2
-rw-r--r--include/802.11n.h2
-rw-r--r--include/802.11owe.h2
-rw-r--r--include/802.11s.h2
-rw-r--r--include/802.11u.h2
-rw-r--r--include/802.11v.h2
-rw-r--r--include/802.11w.h2
-rw-r--r--include/802.11wapi.h2
-rw-r--r--include/802.11wfa.h2
-rw-r--r--include/802.11z.h2
-rw-r--r--include/802.1d.h2
-rw-r--r--include/802.3.h2
-rw-r--r--include/aidmp.h2
-rw-r--r--include/bcm_l2_filter.h2
-rw-r--r--include/bcm_mpool_pub.h2
-rw-r--r--include/bcm_ring.h2
-rw-r--r--include/bcm_wifishark.h2
-rw-r--r--include/bcmarp.h2
-rw-r--r--include/bcmbloom.h2
-rw-r--r--include/bcmcapext.h2
-rw-r--r--include/bcmcdc.h2
-rw-r--r--include/bcmdefs.h2
-rw-r--r--include/bcmdevs.h2
-rw-r--r--include/bcmdevs_legacy.h2
-rw-r--r--include/bcmdhcp.h2
-rw-r--r--include/bcmendian.h2
-rw-r--r--include/bcmerror.h2
-rw-r--r--include/bcmeth.h2
-rw-r--r--include/bcmevent.h2
-rw-r--r--include/bcmicmp.h2
-rw-r--r--include/bcmigmp.h2
-rw-r--r--include/bcmiov.h2
-rw-r--r--include/bcmip.h2
-rw-r--r--include/bcmipv6.h2
-rw-r--r--include/bcmmsgbuf.h2
-rw-r--r--include/bcmnvram.h2
-rw-r--r--include/bcmpcie.h2
-rw-r--r--include/bcmpcispi.h2
-rw-r--r--include/bcmperf.h2
-rw-r--r--include/bcmproto.h2
-rw-r--r--include/bcmrand.h2
-rw-r--r--include/bcmsdbus.h2
-rw-r--r--include/bcmsdh.h2
-rw-r--r--include/bcmsdh_sdmmc.h2
-rw-r--r--include/bcmsdpcm.h2
-rw-r--r--include/bcmspi.h2
-rw-r--r--include/bcmspibrcm.h2
-rw-r--r--include/bcmsrom_fmt.h2
-rw-r--r--include/bcmstdlib_s.h2
-rw-r--r--include/bcmtcp.h2
-rw-r--r--include/bcmtlv.h2
-rw-r--r--include/bcmudp.h2
-rw-r--r--include/bcmutils.h2
-rw-r--r--include/bcmwifi_channels.h2
-rw-r--r--include/bcmwifi_rates.h2
-rw-r--r--include/bcmwifi_rspec.h2
-rw-r--r--include/brcm_nl80211.h2
-rw-r--r--include/dbus.h2
-rw-r--r--include/dhd_daemon.h2
-rw-r--r--include/dhdioctl.h2
-rw-r--r--include/dngl_rtlv.h2
-rw-r--r--include/dngl_stats.h2
-rw-r--r--include/dngl_wlhdr.h2
-rw-r--r--include/dnglevent.h2
-rw-r--r--include/dnglioctl.h2
-rw-r--r--include/dscp_policy.h2
-rw-r--r--include/eap.h2
-rw-r--r--include/eapol.h2
-rw-r--r--include/epivers.h14
-rw-r--r--include/etd.h93
-rw-r--r--include/ethernet.h2
-rw-r--r--include/event_log.h2
-rw-r--r--include/event_log_api_strings.h2
-rw-r--r--include/event_log_payload.h2
-rw-r--r--include/event_log_set.h2
-rw-r--r--include/event_log_tag.h2
-rw-r--r--include/event_trace.h2
-rw-r--r--include/ewp.h2
-rw-r--r--include/fils.h2
-rw-r--r--include/frag.h2
-rw-r--r--include/ftm_ioctl.h2
-rw-r--r--include/fwpkg_utils.h2
-rw-r--r--include/hal_nci_cmn.h2
-rw-r--r--include/hnd_armtrap.h2
-rw-r--r--include/hnd_cons.h2
-rw-r--r--include/hnd_debug.h2
-rw-r--r--include/hnd_pktpool.h2
-rw-r--r--include/hnd_pktq.h2
-rw-r--r--include/hnddap.h2
-rw-r--r--include/hndlhl.h2
-rw-r--r--include/hndoobr.h2
-rw-r--r--include/hndpmu_dhd.h2
-rw-r--r--include/hndsoc.h2
-rw-r--r--include/linux_osl.h2
-rw-r--r--include/linux_pkt.h2
-rw-r--r--include/linuxerrmap.h2
-rw-r--r--include/linuxver.h2
-rw-r--r--include/lpflags.h2
-rw-r--r--include/mbo.h2
-rw-r--r--include/miniopt.h2
-rw-r--r--include/msf.h2
-rw-r--r--include/msgtrace.h2
-rw-r--r--include/nan.h2
-rw-r--r--include/nci.h2
-rw-r--r--include/osl.h2
-rw-r--r--include/osl_decl.h2
-rw-r--r--include/osl_ext.h2
-rw-r--r--include/p2p.h2
-rw-r--r--include/packed_section_end.h2
-rw-r--r--include/packed_section_start.h2
-rw-r--r--include/pcicfg.h2
-rw-r--r--include/pcie_core.h2
-rw-r--r--include/phy_event_log_payload.h2
-rw-r--r--include/sbchipc.h2
-rw-r--r--include/sbconfig.h2
-rw-r--r--include/sbgci.h2
-rw-r--r--include/sbhndarm.h2
-rw-r--r--include/sbhnddma.h2
-rw-r--r--include/sbpcmcia.h2
-rw-r--r--include/sbsdio.h2
-rw-r--r--include/sbsdpcmdev.h2
-rw-r--r--include/sbsocram.h2
-rw-r--r--include/sbsreng.h2
-rw-r--r--include/sbsysmem.h2
-rw-r--r--include/sdio.h2
-rw-r--r--include/sdioh.h2
-rw-r--r--include/sdiovar.h2
-rw-r--r--include/sdspi.h2
-rw-r--r--include/siutils.h2
-rw-r--r--include/spid.h2
-rw-r--r--include/trxhdr.h2
-rw-r--r--include/typedefs.h2
-rw-r--r--include/verhoeff_chksum.h2
-rw-r--r--include/vlan.h2
-rw-r--r--include/wldev_common.h2
-rw-r--r--include/wlfc_proto.h2
-rw-r--r--include/wlioctl.h2
-rw-r--r--include/wlioctl_defs.h2
-rw-r--r--include/wlioctl_utils.h2
-rw-r--r--include/wpa.h2
-rw-r--r--include/wps.h2
-rw-r--r--linux_osl.c2
-rw-r--r--linux_osl_priv.h2
-rw-r--r--linux_pkt.c2
-rw-r--r--linuxerrmap.c2
-rw-r--r--nciutils.c2
-rw-r--r--nciutils_host.c2
-rw-r--r--pcie_core_host.c2
-rw-r--r--siutils.c2
-rw-r--r--siutils_host.c2
-rw-r--r--siutils_priv.h2
-rw-r--r--verhoeff_chksum.c2
-rw-r--r--wb_regon_coordinator.c2
-rw-r--r--wb_regon_coordinator.h2
-rw-r--r--wifi_stats.h2
-rw-r--r--wl_android.c2
-rw-r--r--wl_android.h2
-rw-r--r--wl_cfg80211.c64
-rw-r--r--wl_cfg80211.h76
-rw-r--r--wl_cfg_btcoex.c2
-rw-r--r--wl_cfg_cellavoid.c2
-rw-r--r--wl_cfg_cellavoid.h2
-rw-r--r--wl_cfgnan.c2
-rw-r--r--wl_cfgnan.h2
-rw-r--r--wl_cfgp2p.c5
-rw-r--r--wl_cfgp2p.h2
-rw-r--r--wl_cfgscan.c9
-rw-r--r--wl_cfgscan.h2
-rw-r--r--wl_cfgvendor.c47
-rw-r--r--wl_cfgvendor.h2
-rw-r--r--wl_cfgvif.c2
-rw-r--r--wl_cfgvif.h2
-rw-r--r--wl_linux_mon.c2
-rw-r--r--wl_roam.c2
-rw-r--r--wldev_common.c3
276 files changed, 1131 insertions, 528 deletions
diff --git a/Kbuild b/Kbuild
index 6b88299..cdf21ff 100644
--- a/Kbuild
+++ b/Kbuild
@@ -1,6 +1,6 @@
# bcmdhd
#
-# Copyright (C) 2023, Broadcom.
+# Copyright (C) 2024, Broadcom.
#
# Unless you and Broadcom execute a separate written software license
# agreement governing use of this software, this software is licensed to you
@@ -660,7 +660,7 @@ DHDCFLAGS += -DNDO_CONFIG_SUPPORT
DHDCFLAGS += -DIPV6_NDO_SUPPORT
#Debugaility
-DHDCFLAGS += -DDBG_PKT_MON -DDBG_PKT_MON_INIT_DEFAULT
+DHDCFLAGS += -DDBG_PKT_MON -DDBG_PKT_MON_INIT_DEFAULT -DDHD_PKT_MON_DUAL_STA
DHDCFLAGS += -DDNGL_EVENT_SUPPORT -DPARSE_DONGLE_HOST_EVENT
DHDCFLAGS += -DWL_CFGVENDOR_SEND_ALERT_EVENT
diff --git a/Kconfig b/Kconfig
index 6952777..55ab76a 100644
--- a/Kconfig
+++ b/Kconfig
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2023, Broadcom.
+# Copyright (C) 2024, Broadcom.
#
# Unless you and Broadcom execute a separate written software license
# agreement governing use of this software, this software is licensed to you
diff --git a/Makefile b/Makefile
index 8651638..df5079b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2023, Broadcom.
+# Copyright (C) 2024, Broadcom.
#
# Unless you and Broadcom execute a separate written software license
# agreement governing use of this software, this software is licensed to you
diff --git a/aiutils.c b/aiutils.c
index dd5a97b..bcb3088 100644
--- a/aiutils.c
+++ b/aiutils.c
@@ -3,7 +3,7 @@
* of the SiliconBackplane-based Broadcom chips.
* Note: this file is used for both dongle and DHD builds.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcm_app_utils.c b/bcm_app_utils.c
index bb21c47..67192d8 100644
--- a/bcm_app_utils.c
+++ b/bcm_app_utils.c
@@ -3,7 +3,7 @@
* Contents are wifi-specific, used by any kernel or app-level
* software that might want wifi things as it grows.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcm_l2_filter.c b/bcm_l2_filter.c
index 8c2afb8..0193fe2 100644
--- a/bcm_l2_filter.c
+++ b/bcm_l2_filter.c
@@ -1,7 +1,7 @@
/*
* L2 Filter handling functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmbloom.c b/bcmbloom.c
index a279a48..b53359c 100644
--- a/bcmbloom.c
+++ b/bcmbloom.c
@@ -1,7 +1,7 @@
/*
* Bloom filter support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmcapext.c b/bcmcapext.c
index ac78088..6a81fe8 100644
--- a/bcmcapext.c
+++ b/bcmcapext.c
@@ -1,7 +1,7 @@
/*
* wlu capext procesing. Shared between DHD and WLU tool.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmevent.c b/bcmevent.c
index 76101b6..4a5cff5 100644
--- a/bcmevent.c
+++ b/bcmevent.c
@@ -1,7 +1,7 @@
/*
* bcmevent read-only data shared by kernel or app layers
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdh.c b/bcmsdh.c
index a5fd258..da9e398 100644
--- a/bcmsdh.c
+++ b/bcmsdh.c
@@ -2,7 +2,7 @@
* BCMSDH interface glue
* implement bcmsdh API for SDIOH driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdh_linux.c b/bcmsdh_linux.c
index c1beab2..3d99bf8 100644
--- a/bcmsdh_linux.c
+++ b/bcmsdh_linux.c
@@ -1,7 +1,7 @@
/*
* SDIO access interface for drivers - linux specific (pci only)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdh_sdmmc.c b/bcmsdh_sdmmc.c
index 27700c9..9c6455d 100644
--- a/bcmsdh_sdmmc.c
+++ b/bcmsdh_sdmmc.c
@@ -1,7 +1,7 @@
/*
* BCMSDH Function Driver for the native SDIO/MMC driver in the Linux Kernel
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdh_sdmmc_linux.c b/bcmsdh_sdmmc_linux.c
index d5a076a..be1d6ce 100644
--- a/bcmsdh_sdmmc_linux.c
+++ b/bcmsdh_sdmmc_linux.c
@@ -1,7 +1,7 @@
/*
* BCMSDH Function Driver for the native SDIO/MMC driver in the Linux Kernel
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdspi.h b/bcmsdspi.h
index 4480d46..f8badf9 100644
--- a/bcmsdspi.h
+++ b/bcmsdspi.h
@@ -1,7 +1,7 @@
/*
* SD-SPI Protocol Conversion - BCMSDH->SPI Translation Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdspi_linux.c b/bcmsdspi_linux.c
index 4a4a751..bd398e6 100644
--- a/bcmsdspi_linux.c
+++ b/bcmsdspi_linux.c
@@ -1,7 +1,7 @@
/*
* Broadcom SPI Host Controller Driver - Linux Per-port
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmsdstd.h b/bcmsdstd.h
index 105b7d3..2c21b3b 100644
--- a/bcmsdstd.h
+++ b/bcmsdstd.h
@@ -1,7 +1,7 @@
/*
* 'Standard' SDIO HOST CONTROLLER driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmspibrcm.c b/bcmspibrcm.c
index 01fe106..d1bf263 100644
--- a/bcmspibrcm.c
+++ b/bcmspibrcm.c
@@ -1,7 +1,7 @@
/*
* Broadcom BCMSDH to gSPI Protocol Conversion Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmstdlib_s.c b/bcmstdlib_s.c
index 74060d3..ebc3619 100644
--- a/bcmstdlib_s.c
+++ b/bcmstdlib_s.c
@@ -1,7 +1,7 @@
/*
* Broadcom Secure Standard Library.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmutils.c b/bcmutils.c
index 32cf6d1..110704b 100644
--- a/bcmutils.c
+++ b/bcmutils.c
@@ -1,7 +1,7 @@
/*
* Driver O/S-independent utility routines
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmwifi_channels.c b/bcmwifi_channels.c
index 58fd987..cb50ce1 100644
--- a/bcmwifi_channels.c
+++ b/bcmwifi_channels.c
@@ -3,7 +3,7 @@
* Contents are wifi-specific, used by any kernel or app-level
* software that might want wifi things as it grows.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/bcmxtlv.c b/bcmxtlv.c
index 057cc14..a7be0ab 100644
--- a/bcmxtlv.c
+++ b/bcmxtlv.c
@@ -1,7 +1,7 @@
/*
* Driver O/S-independent utility routines
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd.h b/dhd.h
index 731e011..29698f9 100644
--- a/dhd.h
+++ b/dhd.h
@@ -4,7 +4,7 @@
* Provides type definitions and function prototypes used to link the
* DHD OS, bus, and protocol modules.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -1006,7 +1006,7 @@ enum {
#endif /* CUSTOMER_HW4 */
#endif /* !DHD_COMMON_DUMP_PATH */
-#define DHD_MEMDUMP_LONGSTR_LEN 180
+#define DHD_MEMDUMP_LONGSTR_LEN 192u
struct cntry_locales_custom {
char iso_abbrev[WLC_CNTRY_BUF_SZ]; /* ISO 3166-1 country abbreviation */
@@ -1651,6 +1651,7 @@ typedef struct dhd_pub {
#ifdef DHD_COREDUMP
uint8 *coredump_mem;
uint32 coredump_len;
+ uint8 ewp_init_state;
char memdump_str[DHD_MEMDUMP_LONGSTR_LEN];
#endif /* DHD_COREDUMP */
#ifdef COEX_CPU
diff --git a/dhd_bitpack.h b/dhd_bitpack.h
index 090a028..a7c048b 100644
--- a/dhd_bitpack.h
+++ b/dhd_bitpack.h
@@ -1,7 +1,7 @@
/*
* Bit packing and Base64 utils for EWP
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_bus.h b/dhd_bus.h
index 5aacad9..09b48df 100644
--- a/dhd_bus.h
+++ b/dhd_bus.h
@@ -4,7 +4,7 @@
* Provides type definitions and function prototypes used to link the
* DHD OS, bus, and protocol modules.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -318,6 +318,9 @@ static INLINE bool dhd_bus_get_read_shm(dhd_pub_t *dhdp) { return 0; }
extern INLINE int dhd_bus_checkdied(struct dhd_bus *bus, char *data, uint size) { return 0; }
#endif /* BCMPCIE */
+#ifdef DHD_COREDUMP
+void dhdpcie_get_etd_trapcode_str(dhd_pub_t *dhd, char *trap_code, char *trap_subcode, int len);
+#endif /* DHD_COREDUMP */
#if defined(BCMPCIE) && defined(EWP_ETD_PRSRV_LOGS)
void dhdpcie_get_etd_preserve_logs(dhd_pub_t *dhd, uint8 *ext_trap_data,
void *event_decode_data);
@@ -465,6 +468,9 @@ int dhd_bus_get_ewp_etb_config(struct dhd_bus *bus);
int dhd_bus_get_ewp_etb_dump(struct dhd_bus *bus, uint8 *buf, uint bufsize);
int dhd_bus_alloc_ewp_etb_config_mem(struct dhd_bus *bus);
void dhd_bus_dealloc_ewp_etb_config_mem(struct dhd_bus *bus);
+#ifdef DHD_COREDUMP
+extern void dhd_get_ewp_init_state(struct dhd_bus *bus, uint8 *init_state);
+#endif /* DHD_COREDUMP */
void dhd_bus_update_flow_watermark_stats(struct dhd_bus *bus, uint16 flowid, uint16 rd,
uint16 wr, uint16 ringsz, bool upd_watermark);
diff --git a/dhd_buzzz.h b/dhd_buzzz.h
index d0ce285..9bf5ea5 100644
--- a/dhd_buzzz.h
+++ b/dhd_buzzz.h
@@ -2,7 +2,7 @@
#define _DHD_BUZZZ_H_INCLUDED_
/*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cdc.c b/dhd_cdc.c
index 2654a84..a7fa15f 100644
--- a/dhd_cdc.c
+++ b/dhd_cdc.c
@@ -1,7 +1,7 @@
/*
* DHD Protocol Module for CDC and BDC.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cfg80211.c b/dhd_cfg80211.c
index 7b73c59..b2d7bbd 100644
--- a/dhd_cfg80211.c
+++ b/dhd_cfg80211.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver - Dongle Host Driver (DHD) related
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cfg80211.h b/dhd_cfg80211.h
index 8e08ab0..f1a404e 100644
--- a/dhd_cfg80211.h
+++ b/dhd_cfg80211.h
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver - Dongle Host Driver (DHD) related
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cfg_dscp_policy.c b/dhd_cfg_dscp_policy.c
index fa45fe9..8a630d3 100644
--- a/dhd_cfg_dscp_policy.c
+++ b/dhd_cfg_dscp_policy.c
@@ -12,7 +12,7 @@
*
* This file is used only if the DHD is built with the feature string "dscp_policy".
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cfg_dscp_policy.h b/dhd_cfg_dscp_policy.h
index bad9b7c..82f8a63 100644
--- a/dhd_cfg_dscp_policy.h
+++ b/dhd_cfg_dscp_policy.h
@@ -4,7 +4,7 @@
* Provides type definitions and function prototypes to manage the DSCP policy
* entries for the network-centric QoS Management in the DHD.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_cfg_dscp_policy_api.h b/dhd_cfg_dscp_policy_api.h
index 5339f40..f971132 100644
--- a/dhd_cfg_dscp_policy_api.h
+++ b/dhd_cfg_dscp_policy_api.h
@@ -1,7 +1,7 @@
/*
* DSCP Policy public header file, exports the APIs for other modules.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_common.c b/dhd_common.c
index 0cc10f0..9bfcb4f 100644
--- a/dhd_common.c
+++ b/dhd_common.c
@@ -1,7 +1,7 @@
/*
* Broadcom Dongle Host Driver (DHD), common DHD core.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_custom_cis.c b/dhd_custom_cis.c
index eda0ceb..13e4cb4 100644
--- a/dhd_custom_cis.c
+++ b/dhd_custom_cis.c
@@ -2,7 +2,7 @@
* Process CIS information from OTP for customer platform
* (Handle the MAC address and module information)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_custom_google.c b/dhd_custom_google.c
index 6902b27..0619f4d 100644
--- a/dhd_custom_google.c
+++ b/dhd_custom_google.c
@@ -1,7 +1,7 @@
/*
* Customer HW 2 dependant file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_custom_gpio.c b/dhd_custom_gpio.c
index 8c9a3b0..d60568b 100644
--- a/dhd_custom_gpio.c
+++ b/dhd_custom_gpio.c
@@ -1,7 +1,7 @@
/*
* Customer code to add GPIO control during WLAN start/stop
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_custom_memprealloc.c b/dhd_custom_memprealloc.c
index dbe7018..0efe702 100644
--- a/dhd_custom_memprealloc.c
+++ b/dhd_custom_memprealloc.c
@@ -1,7 +1,7 @@
/*
* Platform Dependent file for usage of Preallocted Memory
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_custom_msm.c b/dhd_custom_msm.c
index 7dcf81e..7901d5b 100644
--- a/dhd_custom_msm.c
+++ b/dhd_custom_msm.c
@@ -1,7 +1,7 @@
/*
* Platform Dependent file for Qualcomm MSM/APQ
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_dbg.h b/dhd_dbg.h
index abcc617..c60ad12 100644
--- a/dhd_dbg.h
+++ b/dhd_dbg.h
@@ -1,7 +1,7 @@
/*
* Debug/trace/assert driver definitions for Dongle Host Driver.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_dbg_ring.c b/dhd_dbg_ring.c
index fc16f3c..b7ab5b4 100644
--- a/dhd_dbg_ring.c
+++ b/dhd_dbg_ring.c
@@ -1,7 +1,7 @@
/*
* DHD debug ring API and structures - implementation
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_dbg_ring.h b/dhd_dbg_ring.h
index 310367d..c1284b7 100644
--- a/dhd_dbg_ring.h
+++ b/dhd_dbg_ring.h
@@ -1,7 +1,7 @@
/*
* DHD debug ring header file - interface
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_debug.c b/dhd_debug.c
index f7e981d..2b8b8c3 100644
--- a/dhd_debug.c
+++ b/dhd_debug.c
@@ -1,7 +1,7 @@
/*
* DHD debugability support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -1902,7 +1902,7 @@ __dhd_dbg_map_tx_status_to_pkt_fate(uint16 status)
#ifdef DBG_PKT_MON
static int do_iovar_aml_enable(dhd_pub_t *dhdp, uint val);
static void dhd_do_aml_disable(void *handle, void *event_info, u8 event);
-void dhd_schedule_aml_disable(dhd_pub_t *dhdp);
+void dhd_schedule_aml_disable(dhd_pub_t *dhdp, int ifidx);
static int
do_iovar_aml_enable(dhd_pub_t *dhdp, uint val)
@@ -1967,11 +1967,11 @@ static void dhd_do_aml_disable(void *handle, void *event_info, u8 event)
return;
}
-void dhd_schedule_aml_disable(dhd_pub_t *dhdp)
+void dhd_schedule_aml_disable(dhd_pub_t *dhdp, int ifidx)
{
- if (dhdp->dbg->pkt_mon.tx_pkt_state == PKT_MON_STOPPED &&
- dhdp->dbg->pkt_mon.rx_pkt_state == PKT_MON_STOPPED) {
- DHD_PRINT(("%s: scheduling aml iovar..\n", __FUNCTION__));
+ if (dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] == PKT_MON_STOPPED &&
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] == PKT_MON_STOPPED) {
+ DHD_PRINT(("%s: scheduling aml iovar..ifidx:%d\n", __FUNCTION__, ifidx));
dhd_deferred_schedule_work(dhdp->info->dhd_deferred_wq, NULL,
DHD_WQ_WORK_AML_IOVAR, dhd_do_aml_disable, DHD_WQ_WORK_PRIORITY_HIGH);
}
@@ -2054,7 +2054,7 @@ __dhd_dbg_dump_rx_pkt_info(dhd_pub_t *dhdp, dhd_dbg_rx_info_t *rx_pkt,
}
int
-dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
+dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx,
dbg_mon_tx_pkts_t tx_pkt_mon,
dbg_mon_tx_status_t tx_status_mon,
dbg_mon_rx_pkts_t rx_pkt_mon)
@@ -2072,21 +2072,26 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (PKT_MON_ATTACHED(tx_pkt_state) || PKT_MON_ATTACHED(tx_status_state) ||
PKT_MON_ATTACHED(rx_pkt_state)) {
DHD_PKT_MON(("%s(): packet monitor is already attached, "
- "tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
- __FUNCTION__, tx_pkt_state, tx_status_state, rx_pkt_state));
+ "ifidx:%d tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
+ __FUNCTION__, ifidx, tx_pkt_state, tx_status_state, rx_pkt_state));
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
/* return success as the intention was to initialize packet monitor */
return BCME_OK;
@@ -2097,7 +2102,7 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
tx_report = (dhd_dbg_tx_report_t *)MALLOCZ(dhdp->osh, alloc_len);
if (unlikely(!tx_report)) {
DHD_ERROR(("%s(): could not allocate memory for - "
- "dhd_dbg_tx_report_t\n", __FUNCTION__));
+ "dhd_dbg_tx_report_t ifidx:%d\n", __FUNCTION__, ifidx));
ret = -ENOMEM;
goto fail;
}
@@ -2106,23 +2111,23 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
tx_pkts = (dhd_dbg_tx_info_t *)MALLOCZ(dhdp->osh, alloc_len);
if (unlikely(!tx_pkts)) {
DHD_ERROR(("%s(): could not allocate memory for - "
- "dhd_dbg_tx_info_t\n", __FUNCTION__));
+ "dhd_dbg_tx_info_t ifidx:%d\n", __FUNCTION__, ifidx));
ret = -ENOMEM;
goto fail;
}
- dhdp->dbg->pkt_mon.tx_report = tx_report;
- dhdp->dbg->pkt_mon.tx_report->tx_pkts = tx_pkts;
+ dhdp->dbg->pkt_mon.tx_report[ifidx] = tx_report;
+ dhdp->dbg->pkt_mon.tx_report[ifidx]->tx_pkts = tx_pkts;
dhdp->dbg->pkt_mon.tx_pkt_mon = tx_pkt_mon;
dhdp->dbg->pkt_mon.tx_status_mon = tx_status_mon;
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_ATTACHED;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_ATTACHED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_ATTACHED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_ATTACHED;
/* allocate and initialze rx packet monitoring */
alloc_len = sizeof(*rx_report);
rx_report = (dhd_dbg_rx_report_t *)MALLOCZ(dhdp->osh, alloc_len);
if (unlikely(!rx_report)) {
DHD_ERROR(("%s(): could not allocate memory for - "
- "dhd_dbg_rx_report_t\n", __FUNCTION__));
+ "dhd_dbg_rx_report_t ifidx:%d\n", __FUNCTION__, ifidx));
ret = -ENOMEM;
goto fail;
}
@@ -2131,17 +2136,18 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
rx_pkts = (dhd_dbg_rx_info_t *)MALLOCZ(dhdp->osh, alloc_len);
if (unlikely(!rx_pkts)) {
DHD_ERROR(("%s(): could not allocate memory for - "
- "dhd_dbg_rx_info_t\n", __FUNCTION__));
+ "dhd_dbg_rx_info_t ifidx:%d\n", __FUNCTION__, ifidx));
ret = -ENOMEM;
goto fail;
}
- dhdp->dbg->pkt_mon.rx_report = rx_report;
- dhdp->dbg->pkt_mon.rx_report->rx_pkts = rx_pkts;
+ dhdp->dbg->pkt_mon.rx_report[ifidx] = rx_report;
+ dhdp->dbg->pkt_mon.rx_report[ifidx]->rx_pkts = rx_pkts;
dhdp->dbg->pkt_mon.rx_pkt_mon = rx_pkt_mon;
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_ATTACHED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_ATTACHED;
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
- DHD_PKT_MON(("%s(): packet monitor attach succeeded\n", __FUNCTION__));
+ DHD_PKT_MON(("%s(): packet monitor attach succeeded ifidx:%d\n",
+ __FUNCTION__, ifidx));
return ret;
fail:
@@ -2154,12 +2160,12 @@ fail:
alloc_len = sizeof(*tx_report);
MFREE(dhdp->osh, tx_report, alloc_len);
}
- dhdp->dbg->pkt_mon.tx_report = NULL;
- dhdp->dbg->pkt_mon.tx_report->tx_pkts = NULL;
+ dhdp->dbg->pkt_mon.tx_report[ifidx] = NULL;
+ dhdp->dbg->pkt_mon.tx_report[ifidx]->tx_pkts = NULL;
dhdp->dbg->pkt_mon.tx_pkt_mon = NULL;
dhdp->dbg->pkt_mon.tx_status_mon = NULL;
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_DETACHED;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_DETACHED;
/* rx packet monitoring */
if (rx_pkts) {
@@ -2170,18 +2176,19 @@ fail:
alloc_len = sizeof(*rx_report);
MFREE(dhdp->osh, rx_report, alloc_len);
}
- dhdp->dbg->pkt_mon.rx_report = NULL;
- dhdp->dbg->pkt_mon.rx_report->rx_pkts = NULL;
+ dhdp->dbg->pkt_mon.rx_report[ifidx] = NULL;
+ dhdp->dbg->pkt_mon.rx_report[ifidx]->rx_pkts = NULL;
dhdp->dbg->pkt_mon.rx_pkt_mon = NULL;
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_DETACHED;
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
- DHD_ERROR(("%s(): packet monitor attach failed\n", __FUNCTION__));
+ DHD_ERROR(("%s(): packet monitor attach failed ifidx:%d\n",
+ __FUNCTION__, ifidx));
return ret;
}
int
-dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp)
+dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx)
{
dhd_dbg_tx_report_t *tx_report;
dhd_dbg_rx_report_t *rx_report;
@@ -2191,35 +2198,48 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp)
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
+ return -EINVAL;
+ }
+
+#ifdef PCIE_FULL_DONGLE
+ if (!DHD_IF_ROLE_STA(dhdp, ifidx)) {
+ DHD_INFO(("%s(): unsupported role ifidx:%d role:%d\n", __FUNCTION__, ifidx,
+ DHD_IF_ROLE(dhdp, ifidx)));
return -EINVAL;
}
+#endif /* PCIE_FULL_DONGLE */
if (do_iovar_aml_enable(dhdp, 1) == BCME_OK) {
dhdp->aml_enable = TRUE;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (PKT_MON_DETACHED(tx_pkt_state) || PKT_MON_DETACHED(tx_status_state) ||
PKT_MON_DETACHED(rx_pkt_state)) {
DHD_PKT_MON(("%s(): packet monitor is not yet enabled, "
- "tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
- __FUNCTION__, tx_pkt_state, tx_status_state, rx_pkt_state));
+ "ifidx:%d tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
+ __FUNCTION__, ifidx, tx_pkt_state, tx_status_state, rx_pkt_state));
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
return -EINVAL;
}
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STARTING;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STARTING;
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STARTING;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STARTING;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STARTING;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STARTING;
- tx_report = dhdp->dbg->pkt_mon.tx_report;
- rx_report = dhdp->dbg->pkt_mon.rx_report;
+ tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx];
+ rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx];
if (!tx_report || !rx_report) {
DHD_PKT_MON(("%s(): tx_report=%p, rx_report=%p\n",
__FUNCTION__, tx_report, rx_report));
@@ -2228,9 +2248,9 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp)
}
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
/* Safe to free packets as state pkt_state is STARTING */
__dhd_dbg_free_tx_pkts(dhdp, tx_report->tx_pkts, tx_report->pkt_pos);
@@ -2240,20 +2260,20 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp)
/* reset array postion */
tx_report->pkt_pos = 0;
tx_report->status_pos = 0;
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STARTED;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STARTED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STARTED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STARTED;
rx_report->pkt_pos = 0;
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STARTED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STARTED;
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
- DHD_PKT_MON(("%s(): packet monitor started\n", __FUNCTION__));
+ DHD_PKT_MON(("%s(): packet monitor started ifidx:%d\n", __FUNCTION__, ifidx));
return BCME_OK;
}
int
-dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type type, uint8 mgmt_acked,
- bool aml)
+dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, frame_type type,
+ uint8 mgmt_acked, bool aml)
{
dhd_dbg_tx_report_t *tx_report;
dhd_dbg_tx_info_t *tx_pkts;
@@ -2263,15 +2283,28 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type typ
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
+#ifdef PCIE_FULL_DONGLE
+ if (!DHD_IF_ROLE_STA(dhdp, ifidx)) {
+ DHD_INFO(("%s(): unsupported role ifidx:%d role:%d\n", __FUNCTION__, ifidx,
+ DHD_IF_ROLE(dhdp, ifidx)));
+ return -EINVAL;
+ }
+#endif /* PCIE_FULL_DONGLE */
+
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
if (PKT_MON_STARTED(tx_pkt_state)) {
- tx_report = dhdp->dbg->pkt_mon.tx_report;
+ tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx];
pkt_pos = tx_report->pkt_pos;
if (!PKT_MON_PKT_FULL(pkt_pos)) {
@@ -2308,11 +2341,11 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type typ
if (aml) {
PKTFREE(dhdp->osh, pkt, TRUE);
}
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STOPPED;
DHD_PKT_MON(("%s(): tx pkt logging stopped, reached "
- "max limit\n", __FUNCTION__));
+ "max limit ifidx:%d\n", __FUNCTION__, ifidx));
if (dhdp->aml_enable) {
- dhd_schedule_aml_disable(dhdp);
+ dhd_schedule_aml_disable(dhdp, ifidx);
}
}
}
@@ -2322,7 +2355,7 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type typ
}
int
-dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
+dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid,
uint16 status)
{
dhd_dbg_tx_report_t *tx_report;
@@ -2336,15 +2369,28 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
return -EINVAL;
}
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
+ return -EINVAL;
+ }
+
+#ifdef PCIE_FULL_DONGLE
+ if (!DHD_IF_ROLE_STA(dhdp, ifidx)) {
+ DHD_INFO(("%s(): unsupported role ifidx:%d role:%d\n", __FUNCTION__, ifidx,
+ DHD_IF_ROLE(dhdp, ifidx)));
+ return -EINVAL;
+ }
+#endif /* PCIE_FULL_DONGLE */
+
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
if (PKT_MON_STARTED(tx_status_state)) {
- tx_report = dhdp->dbg->pkt_mon.tx_report;
+ tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx];
pkt_pos = tx_report->pkt_pos;
status_pos = tx_report->status_pos;
@@ -2391,7 +2437,7 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
}
}
} else {
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STOPPED;
DHD_PKT_MON(("%s(): tx_status logging stopped, reached "
"max limit\n", __FUNCTION__));
}
@@ -2402,7 +2448,7 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
}
int
-dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml)
+dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, bool aml)
{
dhd_dbg_rx_report_t *rx_report;
dhd_dbg_rx_info_t *rx_pkts;
@@ -2412,15 +2458,28 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml)
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
return -EINVAL;
}
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
+ return -EINVAL;
+ }
+
+#ifdef PCIE_FULL_DONGLE
+ if (!DHD_IF_ROLE_STA(dhdp, ifidx)) {
+ DHD_INFO(("%s(): unsupported role ifidx:%d role:%d\n", __FUNCTION__, ifidx,
+ DHD_IF_ROLE(dhdp, ifidx)));
+ return -EINVAL;
+ }
+#endif /* PCIE_FULL_DONGLE */
+
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (PKT_MON_STARTED(rx_pkt_state)) {
- rx_report = dhdp->dbg->pkt_mon.rx_report;
+ rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx];
pkt_pos = rx_report->pkt_pos;
if (!PKT_MON_PKT_FULL(pkt_pos)) {
@@ -2444,11 +2503,11 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml)
if (aml) {
PKTFREE(dhdp->osh, pkt, TRUE);
}
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STOPPED;
DHD_PKT_MON(("%s(): rx pkt logging stopped, reached "
- "max limit\n", __FUNCTION__));
+ "max limit ifidx:%d\n", __FUNCTION__, ifidx));
if (dhdp->aml_enable) {
- dhd_schedule_aml_disable(dhdp);
+ dhd_schedule_aml_disable(dhdp, ifidx);
}
}
}
@@ -2458,7 +2517,7 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml)
}
int
-dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp)
+dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx)
{
dhd_dbg_pkt_mon_state_t tx_pkt_state;
dhd_dbg_pkt_mon_state_t tx_status_state;
@@ -2466,15 +2525,20 @@ dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp)
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (PKT_MON_DETACHED(tx_pkt_state) || PKT_MON_DETACHED(tx_status_state) ||
PKT_MON_DETACHED(rx_pkt_state)) {
@@ -2484,12 +2548,12 @@ dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp)
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
return -EINVAL;
}
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STOPPED;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STOPPED;
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STOPPED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STOPPED;
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
- DHD_PKT_MON(("%s(): packet monitor stopped\n", __FUNCTION__));
+ DHD_PKT_MON(("%s(): packet monitor stopped ifidx:%d\n", __FUNCTION__, ifidx));
return BCME_OK;
}
@@ -2519,7 +2583,8 @@ __dhd_dbg_convert_fate(wifi_tx_packet_fate fate)
}
int
-dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
+dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf,
uint16 req_count, uint16 *resp_count)
{
dhd_dbg_tx_report_t *tx_report;
@@ -2537,25 +2602,30 @@ dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
BCM_REFERENCE(cptr);
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
if (!PKT_MON_ATTACHED(tx_pkt_state) ||
!PKT_MON_ATTACHED(tx_status_state)) {
DHD_PKT_MON(("%s(): packet monitor is not yet enabled, "
- "tx_pkt_state=%d, tx_status_state=%d\n", __FUNCTION__,
- tx_pkt_state, tx_status_state));
+ "tx_pkt_state=%d, tx_status_state=%d ifidx:%d\n",
+ __FUNCTION__, tx_pkt_state, tx_status_state, ifidx));
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
return -EINVAL;
}
count = 0;
- tx_report = dhdp->dbg->pkt_mon.tx_report;
+ tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx];
ori_tx_pkt = tx_report->tx_pkts;
pkt_count = MIN(req_count, tx_report->status_pos);
@@ -2652,7 +2722,8 @@ dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
}
int
-dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
+dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf,
uint16 req_count, uint16 *resp_count)
{
dhd_dbg_rx_report_t *rx_report;
@@ -2669,22 +2740,27 @@ dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
BCM_REFERENCE(cptr);
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (!PKT_MON_ATTACHED(rx_pkt_state)) {
DHD_PKT_MON(("%s(): packet fetch is not allowed , "
- "rx_pkt_state=%d\n", __FUNCTION__, rx_pkt_state));
+ "rx_pkt_state=%d ifidx:%d\n", __FUNCTION__, rx_pkt_state, ifidx));
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
return -EINVAL;
}
count = 0;
- rx_report = dhdp->dbg->pkt_mon.rx_report;
+ rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx];
ori_rx_pkt = rx_report->rx_pkts;
pkt_count = MIN(req_count, rx_report->pkt_pos);
@@ -2766,7 +2842,7 @@ dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
}
int
-dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp)
+dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp, int ifidx)
{
dhd_dbg_tx_report_t *tx_report;
dhd_dbg_rx_report_t *rx_report;
@@ -2776,64 +2852,138 @@ dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp)
unsigned long flags;
if (!dhdp || !dhdp->dbg) {
- DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__,
- dhdp, (dhdp ? dhdp->dbg : NULL)));
+ DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n",
+ __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx));
+ return -EINVAL;
+ }
+
+ if (ifidx >= PKT_MON_IF_MAX) {
+ DHD_ERROR(("%s: out of bound ifidx:%d\n", __FUNCTION__, ifidx));
return -EINVAL;
}
DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags);
- tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state;
- tx_status_state = dhdp->dbg->pkt_mon.tx_status_state;
- rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state;
+ tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx];
+ tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx];
+ rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx];
if (PKT_MON_DETACHED(tx_pkt_state) || PKT_MON_DETACHED(tx_status_state) ||
PKT_MON_DETACHED(rx_pkt_state)) {
- DHD_PKT_MON(("%s(): packet monitor is already detached, "
- "tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
- __FUNCTION__, tx_pkt_state, tx_status_state, rx_pkt_state));
+ DHD_PKT_MON(("%s(): packet monitor is already detached, "
+ "ifidx:%d tx_pkt_state=%d, tx_status_state=%d, rx_pkt_state=%d\n",
+ __FUNCTION__, ifidx, tx_pkt_state, tx_status_state, rx_pkt_state));
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
return -EINVAL;
}
- tx_report = dhdp->dbg->pkt_mon.tx_report;
- rx_report = dhdp->dbg->pkt_mon.rx_report;
+ tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx];
+ rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx];
/* free and de-initalize tx packet monitoring */
- dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_DETACHED;
- dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_DETACHED;
if (tx_report) {
if (tx_report->tx_pkts) {
__dhd_dbg_free_tx_pkts(dhdp, tx_report->tx_pkts,
tx_report->pkt_pos);
MFREE(dhdp->osh, tx_report->tx_pkts,
(sizeof(*tx_report->tx_pkts) * MAX_FATE_LOG_LEN));
- dhdp->dbg->pkt_mon.tx_report->tx_pkts = NULL;
+ dhdp->dbg->pkt_mon.tx_report[ifidx]->tx_pkts = NULL;
}
MFREE(dhdp->osh, tx_report, sizeof(*tx_report));
- dhdp->dbg->pkt_mon.tx_report = NULL;
+ dhdp->dbg->pkt_mon.tx_report[ifidx] = NULL;
}
dhdp->dbg->pkt_mon.tx_pkt_mon = NULL;
dhdp->dbg->pkt_mon.tx_status_mon = NULL;
/* free and de-initalize rx packet monitoring */
- dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_DETACHED;
+ dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_DETACHED;
if (rx_report) {
if (rx_report->rx_pkts) {
__dhd_dbg_free_rx_pkts(dhdp, rx_report->rx_pkts,
rx_report->pkt_pos);
MFREE(dhdp->osh, rx_report->rx_pkts,
(sizeof(*rx_report->rx_pkts) * MAX_FATE_LOG_LEN));
- dhdp->dbg->pkt_mon.rx_report->rx_pkts = NULL;
+ dhdp->dbg->pkt_mon.rx_report[ifidx]->rx_pkts = NULL;
}
MFREE(dhdp->osh, rx_report, sizeof(*rx_report));
- dhdp->dbg->pkt_mon.rx_report = NULL;
+ dhdp->dbg->pkt_mon.rx_report[ifidx] = NULL;
}
dhdp->dbg->pkt_mon.rx_pkt_mon = NULL;
DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags);
- DHD_PKT_MON(("%s(): packet monitor detach succeeded\n", __FUNCTION__));
+ DHD_PKT_MON(("%s(): packet monitor detach succeeded ifidx:%d\n",
+ __FUNCTION__, ifidx));
return BCME_OK;
}
+
+void
+dhd_dbg_monitor_mgmt_str(uint8 subtype, char *buf, uint32 buflen)
+{
+ char *str = NULL;
+
+ switch (subtype) {
+ case FC_SUBTYPE_ASSOC_REQ:
+ str = "ASSOC REQ";
+ break;
+ case FC_SUBTYPE_ASSOC_RESP:
+ str = "ASSOC RESP";
+ break;
+ case FC_SUBTYPE_REASSOC_REQ:
+ str = "REASSOC REQ";
+ break;
+ case FC_SUBTYPE_REASSOC_RESP:
+ str = "REASSOC RESP";
+ break;
+ case FC_SUBTYPE_PROBE_REQ:
+ str = "PROBE REQ";
+ break;
+ case FC_SUBTYPE_PROBE_RESP:
+ str = "PROBE RESP";
+ break;
+ case FC_SUBTYPE_AUTH:
+ str = "AUTH";
+ break;
+ default:
+ str = "MGMT NOT EXPECTED";
+ break;
+ }
+ (void)strlcpy(buf, str, buflen);
+}
+
+void
+dhd_dbg_monitor_eapol_str(msg_eapol_t type, char *buf, uint32 buflen)
+{
+ char *str = NULL;
+
+ switch (type) {
+ case EAPOL_OTHER:
+ str = "EAPOL OTHER";
+ break;
+ case EAPOL_4WAY_M1:
+ str = "4WAY M1";
+ break;
+ case EAPOL_4WAY_M2:
+ str = "4WAY M2";
+ break;
+ case EAPOL_4WAY_M3:
+ str = "4WAY M3";
+ break;
+ case EAPOL_4WAY_M4:
+ str = "4WAY M4";
+ break;
+ case EAPOL_GROUPKEY_M1:
+ str = "GROUP M1";
+ break;
+ case EAPOL_GROUPKEY_M2:
+ str = "GROUP M2";
+ break;
+ default:
+ str = "EAPOL NOT EXPECTED";
+ break;
+ }
+ (void)strlcpy(buf, str, buflen);
+}
#endif /* DBG_PKT_MON */
#if defined(DBG_PKT_MON) || defined(DHD_PKT_LOGGING)
@@ -2844,19 +2994,23 @@ dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp)
* completion header.
*/
bool
-dhd_dbg_process_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
+dhd_dbg_process_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid,
uint16 status)
{
bool pkt_fate = TRUE;
if (dhdp->d11_tx_status) {
pkt_fate = (status == WLFC_CTL_PKTFLAG_DISCARD) ? TRUE : FALSE;
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_TX_STATUS(dhdp, ifidx, pkt, pktid, status);
+#else
DHD_DBG_PKT_MON_TX_STATUS(dhdp, pkt, pktid, status);
+#endif /* DHD_PKT_MON_DUAL_STA */
}
return pkt_fate;
}
#else /* DBG_PKT_MON || DHD_PKT_LOGGING */
bool
-dhd_dbg_process_tx_status(dhd_pub_t *dhdp, void *pkt,
+dhd_dbg_process_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, uint16 status)
{
return TRUE;
diff --git a/dhd_debug.h b/dhd_debug.h
index bd4fb80..8d2d5e5 100644
--- a/dhd_debug.h
+++ b/dhd_debug.h
@@ -1,7 +1,7 @@
/*
* DHD debugability header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -26,6 +26,7 @@
#include <event_log.h>
#include <bcmutils.h>
#include <dhd_dbg_ring.h>
+#include <dhd_linux_pktdump.h>
enum {
/* Feature set */
@@ -685,19 +686,25 @@ typedef struct dhd_dbg_rx_report
typedef void (*dbg_pullreq_t)(void *os_priv, const int ring_id);
typedef void (*dbg_urgent_noti_t) (dhd_pub_t *dhdp, const void *data, const uint32 len);
-typedef int (*dbg_mon_tx_pkts_t) (dhd_pub_t *dhdp, void *pkt, uint32 pktid,
+typedef int (*dbg_mon_tx_pkts_t) (dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid,
frame_type type, uint8 mgmt_acked, bool aml);
-typedef int (*dbg_mon_tx_status_t) (dhd_pub_t *dhdp, void *pkt,
+typedef int (*dbg_mon_tx_status_t) (dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, uint16 status);
-typedef int (*dbg_mon_rx_pkts_t) (dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml);
+typedef int (*dbg_mon_rx_pkts_t) (dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, bool aml);
+
+#ifdef DHD_PKT_MON_DUAL_STA
+#define PKT_MON_IF_MAX 2u
+#else
+#define PKT_MON_IF_MAX 1u
+#endif /* DHD_PKT_MON_DUAL_STA */
typedef struct dhd_dbg_pkt_mon
{
- dhd_dbg_tx_report_t *tx_report;
- dhd_dbg_rx_report_t *rx_report;
- dhd_dbg_pkt_mon_state_t tx_pkt_state;
- dhd_dbg_pkt_mon_state_t tx_status_state;
- dhd_dbg_pkt_mon_state_t rx_pkt_state;
+ dhd_dbg_tx_report_t *tx_report[PKT_MON_IF_MAX];
+ dhd_dbg_rx_report_t *rx_report[PKT_MON_IF_MAX];
+ dhd_dbg_pkt_mon_state_t tx_pkt_state[PKT_MON_IF_MAX];
+ dhd_dbg_pkt_mon_state_t tx_status_state[PKT_MON_IF_MAX];
+ dhd_dbg_pkt_mon_state_t rx_pkt_state[PKT_MON_IF_MAX];
/* call backs */
dbg_mon_tx_pkts_t tx_pkt_mon;
@@ -743,32 +750,65 @@ typedef struct dhd_dbg {
(((status_count) >= (pkt_count)) || ((status_count) >= MAX_FATE_LOG_LEN))
#ifdef DBG_PKT_MON
+#ifdef DHD_PKT_MON_DUAL_STA
+#define DHD_DBG_PKT_MON_TX(dhdp, ifidx, pkt, pktid, type, mgmt_acked, aml) \
+ do { \
+ if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.tx_pkt_mon && \
+ (pkt) && (ifidx < PKT_MON_IF_MAX)) { \
+ (dhdp)->dbg->pkt_mon.tx_pkt_mon((dhdp), (ifidx), (pkt), \
+ (pktid), (type), (mgmt_acked), (aml)); \
+ } \
+ } while (0);
+#define DHD_DBG_PKT_MON_TX_STATUS(dhdp, ifidx, pkt, pktid, status) \
+ do { \
+ if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.tx_status_mon && \
+ (pkt) && (ifidx < PKT_MON_IF_MAX)) { \
+ (dhdp)->dbg->pkt_mon.tx_status_mon((dhdp), (ifidx), (pkt), \
+ (pktid), (status)); \
+ } \
+ } while (0);
+#define DHD_DBG_PKT_MON_RX(dhdp, ifidx, pkt, type, aml) \
+ do { \
+ if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.rx_pkt_mon && \
+ (pkt) && (ifidx < PKT_MON_IF_MAX)) { \
+ if (ntoh16((pkt)->protocol) != ETHER_TYPE_BRCM) { \
+ (dhdp)->dbg->pkt_mon.rx_pkt_mon((dhdp), (ifidx), (pkt), \
+ (type), (aml)); \
+ } \
+ } \
+ } while (0);
+#define DHD_DBG_PKT_MON_START(dhdp, ifidx) \
+ dhd_os_dbg_start_pkt_monitor((dhdp), (ifidx));
+#define DHD_DBG_PKT_MON_STOP(dhdp, ifidx) \
+ dhd_os_dbg_stop_pkt_monitor((dhdp), (ifidx));
+#else /* DHD_PKT_MON_DUAL_STA */
#define DHD_DBG_PKT_MON_TX(dhdp, pkt, pktid, type, mgmt_acked, aml) \
do { \
if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.tx_pkt_mon && (pkt)) { \
- (dhdp)->dbg->pkt_mon.tx_pkt_mon((dhdp), (pkt), \
+ (dhdp)->dbg->pkt_mon.tx_pkt_mon((dhdp), 0, (pkt), \
(pktid), (type), (mgmt_acked), (aml)); \
} \
} while (0);
#define DHD_DBG_PKT_MON_TX_STATUS(dhdp, pkt, pktid, status) \
do { \
if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.tx_status_mon && (pkt)) { \
- (dhdp)->dbg->pkt_mon.tx_status_mon((dhdp), (pkt), (pktid), (status)); \
+ (dhdp)->dbg->pkt_mon.tx_status_mon((dhdp), 0, (pkt), (pktid), (status)); \
} \
} while (0);
#define DHD_DBG_PKT_MON_RX(dhdp, pkt, type, aml) \
do { \
if ((dhdp) && (dhdp)->dbg && (dhdp)->dbg->pkt_mon.rx_pkt_mon && (pkt)) { \
if (ntoh16((pkt)->protocol) != ETHER_TYPE_BRCM) { \
- (dhdp)->dbg->pkt_mon.rx_pkt_mon((dhdp), (pkt), (type), (aml)); \
+ (dhdp)->dbg->pkt_mon.rx_pkt_mon((dhdp), 0, (pkt), (type), (aml)); \
} \
} \
} while (0);
#define DHD_DBG_PKT_MON_START(dhdp) \
- dhd_os_dbg_start_pkt_monitor((dhdp));
+ dhd_os_dbg_start_pkt_monitor((dhdp), 0);
#define DHD_DBG_PKT_MON_STOP(dhdp) \
- dhd_os_dbg_stop_pkt_monitor((dhdp));
+ dhd_os_dbg_stop_pkt_monitor((dhdp), 0);
+#endif /* DHD_PKT_MON_DUAL_STA */
#else
#define DHD_DBG_PKT_MON_TX(dhdp, pkt, pktid, type, mgmt_acked, aml)
#define DHD_DBG_PKT_MON_TX_STATUS(dhdp, pkt, pktid, status)
@@ -884,26 +924,29 @@ void dhd_dbg_read_ring_into_trace_buf(dhd_dbg_ring_t *ring, trace_buf_info_t *tr
#endif /* SHOW_LOGTRACE */
#ifdef DBG_PKT_MON
-extern int dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp,
+extern int dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx,
dbg_mon_tx_pkts_t tx_pkt_mon,
dbg_mon_tx_status_t tx_status_mon,
dbg_mon_rx_pkts_t rx_pkt_mon);
-extern int dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp);
-extern int dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt,
+extern int dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx);
+extern int dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml);
-extern int dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt,
+extern int dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, uint16 status);
-extern int dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type,
+extern int dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type,
bool aml);
-extern int dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp);
-extern int dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
+extern int dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx);
+extern int dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx, void __user *user_buf,
uint16 req_count, uint16 *resp_count);
-extern int dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
+extern int dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx, void __user *user_buf,
uint16 req_count, uint16 *resp_count);
-extern int dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp);
+extern int dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp, int ifidx);
+extern void dhd_dbg_monitor_mgmt_str(uint8 subtype, char *buf, uint32 buflen);
+extern void dhd_dbg_monitor_eapol_str(msg_eapol_t type, char *buf, uint32 buflen);
+extern void dhd_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx);
#endif /* DBG_PKT_MON */
-extern bool dhd_dbg_process_tx_status(dhd_pub_t *dhdp, void *pkt,
+extern bool dhd_dbg_process_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, uint16 status);
/* os wrapper function */
@@ -928,18 +971,26 @@ extern int dhd_os_dbg_get_feature(dhd_pub_t *dhdp, int32 *features);
#ifdef DBG_PKT_MON
extern int dhd_os_dbg_attach_pkt_monitor(dhd_pub_t *dhdp);
-extern int dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp);
-extern int dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt,
+extern int dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx);
+extern int dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml);
-extern int dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt,
+extern int dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt,
uint32 pktid, uint16 status);
-extern int dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt,
+extern int dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt,
frame_type type, bool aml);
-extern int dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp);
+extern int dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx);
+#ifdef DHD_PKT_MON_DUAL_STA
+extern int dhd_os_dbg_attach_pkt_monitor_dev(dhd_pub_t *dhdp, struct net_device *ndev);
+extern int dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count);
+extern int dhd_os_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count);
+#else
extern int dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp,
void __user *user_buf, uint16 req_count, uint16 *resp_count);
extern int dhd_os_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp,
void __user *user_buf, uint16 req_count, uint16 *resp_count);
+#endif /* DHD_PKT_MON_DUAL_STA */
extern int dhd_os_dbg_detach_pkt_monitor(dhd_pub_t *dhdp);
#endif /* DBG_PKT_MON */
diff --git a/dhd_debug_linux.c b/dhd_debug_linux.c
index a696faa..dcb8503 100644
--- a/dhd_debug_linux.c
+++ b/dhd_debug_linux.c
@@ -1,7 +1,7 @@
/*
* DHD debugability Linux os layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -457,62 +457,114 @@ dhd_os_push_push_ring_data(dhd_pub_t *dhdp, int ring_id, void *data, int32 data_
int
dhd_os_dbg_attach_pkt_monitor(dhd_pub_t *dhdp)
{
- return dhd_dbg_attach_pkt_monitor(dhdp, dhd_os_dbg_monitor_tx_pkts,
- dhd_os_dbg_monitor_tx_status, dhd_os_dbg_monitor_rx_pkts);
+ int i, ret;
+ for (i = 0; i < PKT_MON_IF_MAX; i++) {
+ ret = dhd_dbg_attach_pkt_monitor(dhdp, i, dhd_os_dbg_monitor_tx_pkts,
+ dhd_os_dbg_monitor_tx_status, dhd_os_dbg_monitor_rx_pkts);
+ if (unlikely(ret)) {
+ DHD_ERROR(("%s - failed to attach pkt mon idx:%d\n", __func__, i));
+ return ret;
+ }
+ }
+ return BCME_OK;
}
int
-dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp)
+dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx)
{
- return dhd_dbg_start_pkt_monitor(dhdp);
+ return dhd_dbg_start_pkt_monitor(dhdp, ifidx);
}
int
-dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
+dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid,
frame_type type, uint8 mgmt_acked, bool aml)
{
- return dhd_dbg_monitor_tx_pkts(dhdp, pkt, pktid, type, mgmt_acked,
+ return dhd_dbg_monitor_tx_pkts(dhdp, ifidx, pkt, pktid, type, mgmt_acked,
aml);
}
int
-dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid,
+dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid,
uint16 status)
{
- return dhd_dbg_monitor_tx_status(dhdp, pkt, pktid, status);
+ return dhd_dbg_monitor_tx_status(dhdp, ifidx, pkt, pktid, status);
}
int
-dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type,
+dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type,
bool aml)
{
- return dhd_dbg_monitor_rx_pkts(dhdp, pkt, type, aml);
+ return dhd_dbg_monitor_rx_pkts(dhdp, ifidx, pkt, type, aml);
}
int
-dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp)
+dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx)
{
- return dhd_dbg_stop_pkt_monitor(dhdp);
+ return dhd_dbg_stop_pkt_monitor(dhdp, ifidx);
}
+#ifdef DHD_PKT_MON_DUAL_STA
int
-dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
- uint16 req_count, uint16 *resp_count)
+dhd_os_dbg_attach_pkt_monitor_dev(dhd_pub_t *dhdp, struct net_device *ndev)
{
- return dhd_dbg_monitor_get_tx_pkts(dhdp, user_buf, req_count, resp_count);
+ int ifidx, ret;
+
+ ifidx = dhd_net2idx(dhdp->info, ndev);
+ if (ifidx == DHD_BAD_IF) {
+ DHD_ERROR(("%s: bad ifidx:%d\n", __FUNCTION__, ifidx));
+ return -EINVAL;
+ }
+
+ ret = dhd_dbg_attach_pkt_monitor(dhdp, ifidx, dhd_os_dbg_monitor_tx_pkts,
+ dhd_os_dbg_monitor_tx_status, dhd_os_dbg_monitor_rx_pkts);
+ if (unlikely(ret)) {
+ DHD_ERROR(("%s - failed to attach pkt mon idx:%d\n", __func__, ifidx));
+ return ret;
+ }
+ return BCME_OK;
}
int
-dhd_os_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf,
- uint16 req_count, uint16 *resp_count)
+dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count)
{
- return dhd_dbg_monitor_get_rx_pkts(dhdp, user_buf, req_count, resp_count);
+ return dhd_dbg_monitor_get_tx_pkts(dhdp, ifidx, user_buf, req_count, resp_count);
}
int
+dhd_os_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count)
+{
+ return dhd_dbg_monitor_get_rx_pkts(dhdp, ifidx, user_buf, req_count, resp_count);
+}
+#else
+int
+dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count)
+{
+ return dhd_dbg_monitor_get_tx_pkts(dhdp, 0, user_buf, req_count, resp_count);
+}
+
+int
+dhd_os_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count)
+{
+ return dhd_dbg_monitor_get_rx_pkts(dhdp, 0, user_buf, req_count, resp_count);
+}
+#endif /* DHD_PKT_MON_DUAL_STA */
+
+int
dhd_os_dbg_detach_pkt_monitor(dhd_pub_t *dhdp)
{
- return dhd_dbg_detach_pkt_monitor(dhdp);
+ int i, ret;
+ for (i = 0; i < PKT_MON_IF_MAX; i++) {
+ ret = dhd_dbg_detach_pkt_monitor(dhdp, i);
+ if (ret) {
+ DHD_ERROR(("%s - failed to detach pkt mon idx:%d\n", __func__, i));
+ return ret;
+ }
+ }
+ return BCME_OK;
}
#endif /* DBG_PKT_MON */
diff --git a/dhd_event_log_filter.c b/dhd_event_log_filter.c
index 2d0db6a..93ef86d 100644
--- a/dhd_event_log_filter.c
+++ b/dhd_event_log_filter.c
@@ -1,7 +1,7 @@
/*
* Wifi dongle status Filter and Report
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_event_log_filter.h b/dhd_event_log_filter.h
index 290b97f..a226319 100644
--- a/dhd_event_log_filter.h
+++ b/dhd_event_log_filter.h
@@ -1,7 +1,7 @@
/*
* Wifi dongle status Filter and Report
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_flowring.c b/dhd_flowring.c
index aeb31d3..cd711b7 100644
--- a/dhd_flowring.c
+++ b/dhd_flowring.c
@@ -4,7 +4,7 @@
* Flow rings are transmit traffic (=propagating towards antenna) related entities
*
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_flowring.h b/dhd_flowring.h
index 44c3d0b..37007cd 100644
--- a/dhd_flowring.h
+++ b/dhd_flowring.h
@@ -6,7 +6,7 @@
* Provides type definitions and function prototypes used to create, delete and manage flow rings at
* high level.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_ip.c b/dhd_ip.c
index b175a12..d536c44 100644
--- a/dhd_ip.c
+++ b/dhd_ip.c
@@ -1,7 +1,7 @@
/*
* IP Packet Parser Module.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_ip.h b/dhd_ip.h
index 6866896..e94ab12 100644
--- a/dhd_ip.h
+++ b/dhd_ip.h
@@ -3,7 +3,7 @@
*
* Provides type definitions and function prototypes used to parse ip packet.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux.c b/dhd_linux.c
index c257308..df645bb 100644
--- a/dhd_linux.c
+++ b/dhd_linux.c
@@ -1,7 +1,7 @@
/*
* Basically selected code segments from usb-cdc.c and usb-rndis.c
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -282,6 +282,10 @@ static void dhd_blk_tsfl_handler(struct work_struct * work);
#include <dhd_mesh_route.h>
#endif /* defined(DHD_MESH) */
+#ifdef DBG_PKT_MON
+#include <802.11.h>
+#endif /* DBG_PKT_MON */
+
#if defined(DHD_TCP_WINSIZE_ADJUST)
static uint target_ports[MAX_TARGET_PORTS] = {20, 0, 0, 0, 0};
static uint dhd_use_tcp_window_size_adjust = FALSE;
@@ -2509,9 +2513,6 @@ static int dhd_set_suspend(int value, dhd_pub_t *dhd)
*/
dhd_enable_packet_filter(1, dhd);
#endif /* PKT_FILTER_SUPPORT */
-#ifdef APF
- dhd_dev_apf_enable_filter(dhd_linux_get_primary_netdev(dhd));
-#endif /* APF */
#ifdef ARP_OFFLOAD_SUPPORT
if (dhd->arpoe_enable) {
dhd_arp_offload_enable(dhd, TRUE);
@@ -2610,9 +2611,6 @@ static int dhd_set_suspend(int value, dhd_pub_t *dhd)
/* disable pkt filter */
dhd_enable_packet_filter(0, dhd);
#endif /* PKT_FILTER_SUPPORT */
-#ifdef APF
- dhd_dev_apf_disable_filter(dhd_linux_get_primary_netdev(dhd));
-#endif /* APF */
#ifdef PASS_ALL_MCAST_PKTS
allmulti = 1;
for (i = 0; i < DHD_MAX_IFS; i++) {
@@ -5295,14 +5293,20 @@ static bool dhd_check_hang(struct net_device *net, dhd_pub_t *dhdp, int error)
}
#if defined(DBG_PKT_MON) && defined(PCIE_FULL_DONGLE)
+#define PKT_MON_TYPESTR_MAX 30
void
-dhd_80211_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx)
+dhd_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx)
{
/* Distinguish rx/tx frame */
wl_aml_header_v1_t hdr;
bool wpa_sup;
struct sk_buff *skb = pkt;
frame_type type;
+ struct dot11_management_header *d11hdr;
+ uint8 subtype;
+ char type_str[PKT_MON_TYPESTR_MAX] = {0};
+ msg_eapol_t eapol_type;
+ bool ack, direction;
#ifdef DHD_PKT_LOGGING
struct ether_header *eh;
uint32 pktid;
@@ -5314,8 +5318,25 @@ dhd_80211_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx)
PKTPULL(dhdp->osh, skb, sizeof(hdr));
wpa_sup = !!(hdr.flags & WL_AML_F_EAPOL);
type = wpa_sup ? FRAME_TYPE_ETHERNET_II : FRAME_TYPE_80211_MGMT;
+ if (type == FRAME_TYPE_80211_MGMT) {
+ d11hdr = (struct dot11_management_header *)PKTDATA(dhdp->osh, skb);
+ subtype = FC_SUBTYPE(d11hdr->fc);
+ dhd_dbg_monitor_mgmt_str(subtype, type_str, sizeof(type_str));
+ } else if (type == FRAME_TYPE_ETHERNET_II) {
+ eapol_type = dhd_is_4way_msg(PKTDATA(dhdp->osh, skb));
+ dhd_dbg_monitor_eapol_str(eapol_type, type_str, sizeof(type_str));
+ }
+ ack = !!(hdr.flags & WL_AML_F_ACKED);
+ direction = !!(hdr.flags & WL_AML_F_DIRECTION);
+
+ if (DHD_PKT_MON_DUMP_ON()) {
+ DHD_PKT_MON(("%s: fw driven pkt [%s] %s %s status:%d ifidx:%d length:%d\n",
+ __FUNCTION__, direction ? "TXS" : "RX",
+ wpa_sup ? "EAPOL" : "80211", type_str, ack,
+ ifidx, PKTLEN(dhdp->osh, skb)));
+ }
- if (hdr.flags & WL_AML_F_DIRECTION) {
+ if (direction) {
bool ack = !!(hdr.flags & WL_AML_F_ACKED);
#ifdef DHD_PKT_LOGGING
/* Send Tx-ed 4HS packet in dongle to packet logging buffer */
@@ -5328,9 +5349,13 @@ dhd_80211_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx)
#endif /* DHD_PKT_LOGGING */
/* Send Tx-ed mgmt frame and 4HS packet in dongle to upper layer */
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_TX(dhdp, ifidx, skb, 0, type, (uint8)ack, TRUE);
+#else
DHD_DBG_PKT_MON_TX(dhdp, skb, 0, type, (uint8)ack, TRUE);
+#endif /* DHD_PKT_MON_DUAL_STA */
- /* skb can be null here. do null check if skb is used */
+ /* skb can be null here. do not refer to skb */
} else {
#ifdef DHD_PKT_LOGGING
/* Send Rx-ed 4HS packet in dongle to packet logging buffer */
@@ -5342,9 +5367,13 @@ dhd_80211_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx)
#endif /* DHD_PKT_LOGGING */
/* Send Rx-ed mgmt frame and 4HS packet in dongle to upper layer */
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_RX(dhdp, ifidx, (struct sk_buff *)skb, type, TRUE);
+#else
DHD_DBG_PKT_MON_RX(dhdp, (struct sk_buff *)skb, type, TRUE);
+#endif /* DHD_PKT_MON_DUAL_STA */
- /* skb can be null here. do null check if skb is used */
+ /* skb can be null here. do not refer to skb */
}
}
#endif /* DBG_PKT_MON && PCIE_FULL_DONGLE */
@@ -6897,6 +6926,9 @@ dhd_force_collect_init_fail_dumps(dhd_pub_t *dhdp)
dhdp->collect_sdtc = TRUE;
#endif /* DHD_SDTC_ETB_DUMP */
dhdp->memdump_type = DUMP_TYPE_DONGLE_INIT_FAILURE;
+#ifdef DHD_COREDUMP
+ dhd_get_ewp_init_state(dhdp->bus, &dhdp->ewp_init_state);
+#endif /* DHD_COREDUMP */
dhd_bus_mem_dump(dhdp);
} else {
DHD_PRINT(("%s:Not collecting memdump, memdump_enabled=%d, busstate=%d\n",
@@ -17864,16 +17896,6 @@ dhd_dev_apf_add_filter(struct net_device *ndev, u8* program,
DHD_APF_LOCK(ndev);
- /* delete, if filter already exists */
- if (dhdp->apf_set) {
- ret = _dhd_apf_delete_filter(ndev, PKT_FILTER_APF_ID);
- if (unlikely(ret)) {
- DHD_ERROR(("%s: Failed to delete APF filter\n", __FUNCTION__));
- goto exit;
- }
- dhdp->apf_set = FALSE;
- }
-
ret = _dhd_apf_add_filter(ndev, PKT_FILTER_APF_ID, program, program_len);
if (ret) {
DHD_ERROR(("%s: Failed to add APF filter\n", __FUNCTION__));
@@ -20245,6 +20267,10 @@ dhd_mem_dump(void *handle, void *event_info, u8 event)
char lr_fn[DHD_FUNC_STR_LEN] = "\0";
trap_t *tr;
bool collect_coredump = FALSE;
+ char trap_code[DHD_TRAP_CODE_LEN] = {0};
+ char trap_subcode[DHD_TRAP_CODE_LEN] = {0};
+ int written_len;
+ uint8 ewp_init_state;
#endif /* DHD_COREDUMP */
uint32 memdump_type;
bool set_linkdwn_cto = FALSE;
@@ -20264,6 +20290,9 @@ dhd_mem_dump(void *handle, void *event_info, u8 event)
/* keep it locally to avoid overwriting in other contexts */
memdump_type = dhdp->memdump_type;
+#ifdef DHD_COREDUMP
+ ewp_init_state = dhdp->ewp_init_state;
+#endif /* DHD_COREDUMP */
DHD_GENERAL_LOCK(dhdp, flags);
if (DHD_BUS_CHECK_DOWN_OR_DOWN_IN_PROGRESS(dhdp)) {
@@ -20420,13 +20449,27 @@ dhd_mem_dump(void *handle, void *event_info, u8 event)
bzero(dhdp->memdump_str, DHD_MEMDUMP_LONGSTR_LEN);
dhd_convert_memdump_type_to_str(memdump_type, dhdp->memdump_str,
DHD_MEMDUMP_LONGSTR_LEN, dhdp->debug_dump_subcmd);
+ written_len = strlen(dhdp->memdump_str);
if (memdump_type == DUMP_TYPE_DONGLE_TRAP &&
dhdp->dongle_trap_occured == TRUE) {
+
+ if (dhdp->extended_trap_data) {
+ dhdpcie_get_etd_trapcode_str(dhdp, trap_code, trap_subcode,
+ DHD_TRAP_CODE_LEN);
+ snprintf(&dhdp->memdump_str[written_len],
+ DHD_MEMDUMP_LONGSTR_LEN - written_len,
+ "_%s_%s", trap_code, trap_subcode);
+ }
+
tr = &dhdp->last_trap_info;
dhd_lookup_map(dhdp->osh, map_path,
ltoh32(tr->epc), pc_fn, ltoh32(tr->r14), lr_fn);
- sprintf(&dhdp->memdump_str[strlen(dhdp->memdump_str)], "_%.79s_%.79s",
- pc_fn, lr_fn);
+ written_len = strlen(dhdp->memdump_str);
+ snprintf(&dhdp->memdump_str[written_len], DHD_MEMDUMP_LONGSTR_LEN - written_len,
+ "_%.79s_%.79s", pc_fn, lr_fn);
+ } else if (memdump_type == DUMP_TYPE_DONGLE_INIT_FAILURE) {
+ snprintf(&dhdp->memdump_str[written_len], DHD_MEMDUMP_LONGSTR_LEN - written_len,
+ "_0x%x", ewp_init_state);
}
DHD_PRINT(("%s: dump reason: %s\n", __FUNCTION__, dhdp->memdump_str));
diff --git a/dhd_linux.h b/dhd_linux.h
index 4ec7e5f..a3398ed 100644
--- a/dhd_linux.h
+++ b/dhd_linux.h
@@ -1,7 +1,7 @@
/*
* DHD Linux header file (dhd_linux exports for cfg80211 and other components)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -73,6 +73,7 @@
#define ALL_ADDR_VAL (PC_FOUND_BIT | LR_FOUND_BIT)
#define READ_NUM_BYTES 1000
#define DHD_FUNC_STR_LEN 80
+#define DHD_TRAP_CODE_LEN 12u
#define DHD_COREDUMP_MAGIC 0xDDCEDACF
#define TLV_TYPE_LENGTH_SIZE (8u)
diff --git a/dhd_linux_exportfs.c b/dhd_linux_exportfs.c
index a9ef069..48f3cab 100644
--- a/dhd_linux_exportfs.c
+++ b/dhd_linux_exportfs.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD), Linux-specific network interface
* Basically selected code segments from usb-cdc.c and usb-rndis.c
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_lb.c b/dhd_linux_lb.c
index f234c8a..ee15f62 100644
--- a/dhd_linux_lb.c
+++ b/dhd_linux_lb.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD), Linux-specific network interface
* Basically selected code segments from usb-cdc.c and usb-rndis.c
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_pktdump.c b/dhd_linux_pktdump.c
index aab7df1..f8a5aa3 100644
--- a/dhd_linux_pktdump.c
+++ b/dhd_linux_pktdump.c
@@ -1,7 +1,7 @@
/*
* Packet dump helper functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_pktdump.h b/dhd_linux_pktdump.h
index 52bd41b..c9aae5a 100644
--- a/dhd_linux_pktdump.h
+++ b/dhd_linux_pktdump.h
@@ -1,7 +1,7 @@
/*
* Header file for the Packet dump helper functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_platdev.c b/dhd_linux_platdev.c
index 41c92d5..f9e7fdd 100644
--- a/dhd_linux_platdev.c
+++ b/dhd_linux_platdev.c
@@ -1,7 +1,7 @@
/*
* Linux platform device for DHD WLAN adapter
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_priv.h b/dhd_linux_priv.h
index 3514d57..d224768 100644
--- a/dhd_linux_priv.h
+++ b/dhd_linux_priv.h
@@ -1,7 +1,7 @@
/*
* DHD Linux header file - contains private structure definition of the Linux specific layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_rx.c b/dhd_linux_rx.c
index 4298628..f493458 100644
--- a/dhd_linux_rx.c
+++ b/dhd_linux_rx.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD),
* Linux-specific network interface for receive(rx) path
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -773,7 +773,12 @@ dhd_rx_frame(dhd_pub_t *dhdp, int ifidx, void *pktbuf, int numpkt, uint8 chan)
skb->len = len;
/* TODO: re-look into dropped packets. */
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_RX(dhdp, ifidx, skb, FRAME_TYPE_ETHERNET_II, FALSE);
+#else
DHD_DBG_PKT_MON_RX(dhdp, skb, FRAME_TYPE_ETHERNET_II, FALSE);
+#endif /* DHD_PKT_MON_DUAL_STA */
+
if (ntoh16(skb->protocol) == ETHER_TYPE_BRCM) {
DHD_LOG_ROUTE_EVENTS(dhdp->logger, skb, skb->len);
}
diff --git a/dhd_linux_sched.c b/dhd_linux_sched.c
index d7d116b..5fe1b92 100644
--- a/dhd_linux_sched.c
+++ b/dhd_linux_sched.c
@@ -1,7 +1,7 @@
/*
* Expose some of the kernel scheduler routines
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_sock_qos.h b/dhd_linux_sock_qos.h
index 8abb171..7fd6aa8 100644
--- a/dhd_linux_sock_qos.h
+++ b/dhd_linux_sock_qos.h
@@ -4,7 +4,7 @@
* Provides type definitions and function prototypes to call into
* DHD's QOS on Socket Flow module.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_tx.c b/dhd_linux_tx.c
index d668fba..a052456 100644
--- a/dhd_linux_tx.c
+++ b/dhd_linux_tx.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD),
* Linux-specific network interface for transmit(tx) path
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_tx.h b/dhd_linux_tx.h
index 53ac66d..e243e8a 100644
--- a/dhd_linux_tx.h
+++ b/dhd_linux_tx.h
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD),
* Linux-specific network interface for transmit(tx) path
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_wq.c b/dhd_linux_wq.c
index aad3caa..699159e 100644
--- a/dhd_linux_wq.c
+++ b/dhd_linux_wq.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD), Generic work queue framework
* Generic interface to handle dhd deferred work events
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_linux_wq.h b/dhd_linux_wq.h
index 8794e48..cceba83 100644
--- a/dhd_linux_wq.h
+++ b/dhd_linux_wq.h
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD), Generic work queue framework
* Generic interface to handle dhd deferred work events
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_log_dump.c b/dhd_log_dump.c
index eea3f27..78f619c 100644
--- a/dhd_log_dump.c
+++ b/dhd_log_dump.c
@@ -1,7 +1,7 @@
/*
* log_dump - debugability support for dumping logs to file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_log_dump.h b/dhd_log_dump.h
index 467beba..23bd398 100644
--- a/dhd_log_dump.h
+++ b/dhd_log_dump.h
@@ -1,7 +1,7 @@
/*
* log_dump - debugability support for dumping logs to file - header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_logger.h b/dhd_logger.h
index 46ba2a7..844d332 100644
--- a/dhd_logger.h
+++ b/dhd_logger.h
@@ -8,7 +8,7 @@
*
* The interface is OS independent/common.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_mschdbg.c b/dhd_mschdbg.c
index 8d23bd7..062b3f3 100644
--- a/dhd_mschdbg.c
+++ b/dhd_mschdbg.c
@@ -1,7 +1,7 @@
/*
* DHD debugability support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_mschdbg.h b/dhd_mschdbg.h
index 4f1c279..54f1561 100644
--- a/dhd_mschdbg.h
+++ b/dhd_mschdbg.h
@@ -1,7 +1,7 @@
/*
* DHD debugability header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_msgbuf.c b/dhd_msgbuf.c
index 41b69d9..6d42469 100644
--- a/dhd_msgbuf.c
+++ b/dhd_msgbuf.c
@@ -3,7 +3,7 @@
* Provides type definitions and function prototypes used to link the
* DHD OS, bus, and protocol modules.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -1124,9 +1124,6 @@ static void dhd_prot_txstatus_process_aggr_wi(dhd_pub_t *dhd, void *msg);
#if defined(WL_MONITOR)
extern bool dhd_monitor_enabled(dhd_pub_t *dhd, int ifidx);
extern void dhd_rx_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx);
-#if defined(DBG_PKT_MON)
-extern void dhd_80211_mon_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx);
-#endif /* DBG_PKT_MON */
#endif /* WL_MONITOR */
/* Configure a soft doorbell per D2H ring */
@@ -8332,7 +8329,8 @@ BCMFASTPATH(dhd_prot_process_msgbuf_rxcpl)(dhd_pub_t *dhd, int ringtype, uint32
} else {
if (msg->flags & BCMPCIE_PKT_FLAGS_FRAME_802_11) {
DHD_TRACE(("Received 802.11 packet for PKT MON\n"));
- dhd_80211_mon_pkt(dhd, msg, pkt, ifidx);
+ dhd_dbg_monitor_pkt(dhd, msg, pkt,
+ msg->cmn_hdr.if_id);
continue;
}
#endif /* DBG_PKT_MON */
@@ -9277,8 +9275,9 @@ BCMFASTPATH(dhd_prot_txstatus_process_each_aggr_item)(dhd_pub_t *dhd, msgbuf_rin
dhd->dma_stats.txdata--;
dhd->dma_stats.txdata_sz -= len;
#endif /* DMAMAP_STATS */
- pkt_fate = dhd_dbg_process_tx_status(dhd, pkt, pktid,
- ltoh16(txstatus->compl_aggr_hdr.status) & WLFC_CTL_PKTFLAG_MASK);
+ pkt_fate = dhd_dbg_process_tx_status(dhd, ltoh32(txstatus->compl_aggr_hdr.if_id),
+ pkt, pktid,
+ ltoh16(txstatus->compl_aggr_hdr.status) & WLFC_CTL_PKTFLAG_MASK);
#ifdef DHD_PKT_LOGGING
if (dhd->d11_tx_status) {
uint16 status = ltoh16(txstatus->compl_aggr_hdr.status) &
@@ -9527,7 +9526,7 @@ BCMFASTPATH(dhd_prot_txstatus_process)(dhd_pub_t *dhd, void *msg)
dhd->dma_stats.txdata--;
dhd->dma_stats.txdata_sz -= len;
#endif /* DMAMAP_STATS */
- pkt_fate = dhd_dbg_process_tx_status(dhd, pkt, pktid,
+ pkt_fate = dhd_dbg_process_tx_status(dhd, flow_info->ifindex, pkt, pktid,
ltoh16(txstatus->compl_hdr.status) & WLFC_CTL_PKTFLAG_MASK);
#ifdef DHD_PKT_LOGGING
if (dhd->d11_tx_status) {
@@ -10082,7 +10081,11 @@ BCMFASTPATH(dhd_prot_txdata)(dhd_pub_t *dhd, void *PKTBUF, uint8 ifidx)
pktlen = PKTLEN(dhd->osh, PKTBUF);
/* TODO: re-look into dropped packets */
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_TX(dhd, ifidx, PKTBUF, pktid, FRAME_TYPE_ETHERNET_II, 0, FALSE);
+#else
DHD_DBG_PKT_MON_TX(dhd, PKTBUF, pktid, FRAME_TYPE_ETHERNET_II, 0, FALSE);
+#endif /* DHD_PKT_MON_DUAL_STA */
dhd_handle_pktdata(dhd, ifidx, PKTBUF, pktdata, pktid,
pktlen, NULL, &dhd_udr,
diff --git a/dhd_pcie.c b/dhd_pcie.c
index 7821b92..3f1c98c 100644
--- a/dhd_pcie.c
+++ b/dhd_pcie.c
@@ -1,7 +1,7 @@
/*
* DHD Bus Module for PCIE
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -17357,6 +17357,51 @@ dhdpcie_set_pmu_fisctrlsts(struct dhd_bus *bus)
}
#endif /* DHD_SSSR_DUMP */
+#ifdef DHD_COREDUMP
+void
+dhd_get_ewp_init_state(dhd_bus_t *bus, uint8 *init_state)
+{
+ int ret = BCME_OK;
+ pciedev_shared_t *sh;
+ ewp_info_t ewp_info;
+
+ /* Initialize state to 0xff */
+ *init_state = -1;
+
+ if (!bus) {
+ DHD_ERROR(("%s: bus null\n", __FUNCTION__));
+ return;
+ }
+
+ sh = bus->pcie_sh;
+ if (!sh) {
+ DHD_ERROR(("%s: sh null\n", __FUNCTION__));
+ return;
+ }
+
+ /* check sanity of ewp_info_addr */
+ if (IS_HWADDR_INVALID(sh->ewp_info_addr)) {
+ DHD_ERROR(("%s: bad ewp_info_addr(%x) \n", __FUNCTION__,
+ sh->ewp_info_addr));
+ return;
+ }
+
+ (void)memset_s(&ewp_info, sizeof(ewp_info), 0, sizeof(ewp_info));
+
+ /* read the ewp_info_t structure */
+ ret = dhdpcie_bus_membytes(bus, FALSE, DHD_PCIE_MEM_BAR1, (ulong)sh->ewp_info_addr,
+ (uint8 *)&ewp_info, sizeof(ewp_info));
+ if (ret < 0) {
+ DHD_ERROR(("%s: Error reading ewp_info structure from dongle \n",
+ __FUNCTION__));
+ return;
+ }
+
+ *init_state = ewp_info.init_state;
+ return;
+}
+#endif /* DHD_COREDUMP */
+
#if defined(__linux__)
/*
* Add any quirks post bus_init here
@@ -19369,6 +19414,59 @@ dhdpcie_get_sssr_saqm_dump(dhd_pub_t *dhd, uint *buf, uint fifo_size,
return BCME_OK;
}
+#ifdef DHD_COREDUMP
+void
+dhdpcie_get_etd_trapcode_str(dhd_pub_t *dhdp, char *trap_code, char *trap_subcode, int buflen)
+{
+ uint32 *ext_data;
+ hnd_ext_trap_hdr_t *hdr;
+ const bcm_tlv_t *tlv;
+
+ ext_data = dhdp->extended_trap_data;
+
+ /* Initialize code string to 0x0 */
+ snprintf(trap_code, buflen, "0x%x", TAG_TRAP_NONE);
+ snprintf(trap_subcode, buflen, "0x%x", 0);
+
+ /* return if there is no extended trap data */
+ if (!ext_data || !(dhdp->dongle_trap_data & D2H_DEV_EXT_TRAP_DATA)) {
+ DHD_ERROR(("%s: Not case for filling trap code (0x%x)\n",
+ __FUNCTION__, dhdp->dongle_trap_data));
+ return;
+ }
+
+ /* First word is original trap_data */
+ ext_data++;
+
+ /* Followed by the extended trap data header */
+ hdr = (hnd_ext_trap_hdr_t *)ext_data;
+
+ /* length sanity check */
+ if (hdr->len == 0 || (int16)hdr->len == -1) {
+ DHD_ERROR(("%s: invalid len:%u\n", __FUNCTION__, hdr->len));
+ return;
+ }
+
+ /* Extract TAG_TRAP_CODE */
+ tlv = bcm_parse_tlvs(hdr->data, hdr->len, TAG_TRAP_CODE);
+ if (tlv) {
+ snprintf(trap_code, buflen, "0x%x", *(uint32 *)tlv->data);
+ DHD_PRINT(("%s: ETD TRAP_CODE:0x%x len:%d\n",
+ __FUNCTION__, *(uint32 *)tlv->data, tlv->len));
+ }
+
+ /* Extract TAG_TRAP_SUBCODE */
+ tlv = bcm_parse_tlvs(hdr->data, hdr->len, TAG_TRAP_SUBCODE);
+ if (tlv) {
+ snprintf(trap_subcode, buflen, "0x%x", *(uint32 *)tlv->data);
+ DHD_PRINT(("%s: ETD TRAP_SUBCODE:0x%x len:%d\n",
+ __FUNCTION__, *(uint32 *)tlv->data, tlv->len));
+ }
+
+ return;
+}
+#endif /* DHD_COREDUMP */
+
#if defined(BCMPCIE) && defined(EWP_ETD_PRSRV_LOGS)
void
dhdpcie_get_etd_preserve_logs(dhd_pub_t *dhd,
diff --git a/dhd_pcie.h b/dhd_pcie.h
index 37824a4..172a9c5 100644
--- a/dhd_pcie.h
+++ b/dhd_pcie.h
@@ -1,7 +1,7 @@
/*
* Linux DHD Bus Module for PCIE
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_pcie_linux.c b/dhd_pcie_linux.c
index 5a625ef..9e9900e 100644
--- a/dhd_pcie_linux.c
+++ b/dhd_pcie_linux.c
@@ -1,7 +1,7 @@
/*
* Linux DHD Bus Module for PCIE
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_pktlog.c b/dhd_pktlog.c
index 688df59..22b4f4d 100644
--- a/dhd_pktlog.c
+++ b/dhd_pktlog.c
@@ -1,7 +1,7 @@
/*
* DHD debugability packet logging support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_pktlog.h b/dhd_pktlog.h
index 2155693..c6a4299 100644
--- a/dhd_pktlog.h
+++ b/dhd_pktlog.h
@@ -1,7 +1,7 @@
/*
* DHD debugability packet logging header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_plat.h b/dhd_plat.h
index 0c42811..0e4465b 100644
--- a/dhd_plat.h
+++ b/dhd_plat.h
@@ -1,7 +1,7 @@
/*
* DHD Linux platform header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_pno.c b/dhd_pno.c
index 7c09d06..068867b 100644
--- a/dhd_pno.c
+++ b/dhd_pno.c
@@ -2,7 +2,7 @@
* Broadcom Dongle Host Driver (DHD)
* Prefered Network Offload and Wi-Fi Location Service(WLS) code.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_pno.h b/dhd_pno.h
index 464e14d..693d468 100644
--- a/dhd_pno.h
+++ b/dhd_pno.h
@@ -2,7 +2,7 @@
* Header file of Broadcom Dongle Host Driver (DHD)
* Prefered Network Offload code and Wi-Fi Location Service(WLS) code.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_proto.h b/dhd_proto.h
index 99786af..5a195ec 100644
--- a/dhd_proto.h
+++ b/dhd_proto.h
@@ -4,7 +4,7 @@
* Provides type definitions and function prototypes used to link the
* DHD OS, bus, and protocol modules.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_rtt.c b/dhd_rtt.c
index d5cad4d..b93d657 100644
--- a/dhd_rtt.c
+++ b/dhd_rtt.c
@@ -1,7 +1,7 @@
/*
* Broadcom Dongle Host Driver (DHD), RTT
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_rtt.h b/dhd_rtt.h
index fce6522..79bdfe6 100644
--- a/dhd_rtt.h
+++ b/dhd_rtt.h
@@ -1,7 +1,7 @@
/*
* Broadcom Dongle Host Driver (DHD), RTT
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_sdio.c b/dhd_sdio.c
index 54c68d4..5ca4af3 100644
--- a/dhd_sdio.c
+++ b/dhd_sdio.c
@@ -1,7 +1,7 @@
/*
* DHD Bus Module for SDIO
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_statlog.c b/dhd_statlog.c
index 7beb7ad..e802e5c 100644
--- a/dhd_statlog.c
+++ b/dhd_statlog.c
@@ -1,7 +1,7 @@
/*
* DHD debugability: Status Information Logging support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_statlog.h b/dhd_statlog.h
index c69b609..89c1d38 100644
--- a/dhd_statlog.h
+++ b/dhd_statlog.h
@@ -1,7 +1,7 @@
/*
* DHD debugability: Header file for the Status Information Logging
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_wlfc.c b/dhd_wlfc.c
index 8ae138a..658bb47 100644
--- a/dhd_wlfc.c
+++ b/dhd_wlfc.c
@@ -1,7 +1,7 @@
/*
* DHD PROP_TXSTATUS Module.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/dhd_wlfc.h b/dhd_wlfc.h
index 994510c..e523dca 100644
--- a/dhd_wlfc.h
+++ b/dhd_wlfc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/frag.c b/frag.c
index 8a4991e..a41a1fd 100644
--- a/frag.c
+++ b/frag.c
@@ -2,7 +2,7 @@
* IE/TLV fragmentation/defragmentation support for
* Broadcom 802.11bang Networking Device Driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/fwpkg_utils.c b/fwpkg_utils.c
index 700367b..e438e0e 100644
--- a/fwpkg_utils.c
+++ b/fwpkg_utils.c
@@ -1,7 +1,7 @@
/*
* Firmware package functionality
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/hal_nci_cmn.c b/hal_nci_cmn.c
index 09fface..eeb58cb 100644
--- a/hal_nci_cmn.c
+++ b/hal_nci_cmn.c
@@ -2,7 +2,7 @@
* Shared code between the legacy nci implementation which depended on the EROM and the
* implementation which depends on vlsi_data.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/hnd_pktpool.c b/hnd_pktpool.c
index 042a882..edcaac3 100644
--- a/hnd_pktpool.c
+++ b/hnd_pktpool.c
@@ -1,7 +1,7 @@
/*
* HND generic packet pool operation primitives
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/hnd_pktq.c b/hnd_pktq.c
index 8a959b1..86f41a9 100644
--- a/hnd_pktq.c
+++ b/hnd_pktq.c
@@ -1,7 +1,7 @@
/*
* HND generic pktq operation primitives
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/hndpmu_dhd.c b/hndpmu_dhd.c
index 479e30f..925323c 100644
--- a/hndpmu_dhd.c
+++ b/hndpmu_dhd.c
@@ -1,7 +1,7 @@
/*
* Misc utility routines for DHD's accessing PMU core.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/hndpmu_priv.h b/hndpmu_priv.h
index 2e0f54a..023dff8 100644
--- a/hndpmu_priv.h
+++ b/hndpmu_priv.h
@@ -1,7 +1,7 @@
/*
* PMU support interface private to hndpmu.c and hndpmu_dhd.c.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11.h b/include/802.11.h
index 6dffe86..b45586c 100644
--- a/include/802.11.h
+++ b/include/802.11.h
@@ -7,7 +7,7 @@
* WFA related work should be placed in 802.11wfa.h.
* Broadcom specific work should be placed in 802.11brcm.h.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11ac.h b/include/802.11ac.h
index 566aea2..4cea8f1 100644
--- a/include/802.11ac.h
+++ b/include/802.11ac.h
@@ -5,7 +5,7 @@
* VHT - Very High Throughput
* OPER_MODE - Operating Mode
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11ah.h b/include/802.11ah.h
index b8f6dfe..9a066a5 100644
--- a/include/802.11ah.h
+++ b/include/802.11ah.h
@@ -2,7 +2,7 @@
* Basic types and constants relating to 802.11ah standard.
* This is a portion of 802.11ah definition. The rest are in 802.11.h.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11ax.h b/include/802.11ax.h
index 1fe2428..125c8cf 100644
--- a/include/802.11ax.h
+++ b/include/802.11ax.h
@@ -2,7 +2,7 @@
* Basic types and constants relating to 802.11ax/HE STA
* This is a portion of 802.11ax definition. The rest are in 802.11.h.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11az.h b/include/802.11az.h
index 658dd67..b40af68 100644
--- a/include/802.11az.h
+++ b/include/802.11az.h
@@ -6,7 +6,7 @@
* FTM - Fine Timing Measuremant
* PASN - Preassociation security negotiation
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11brcm.h b/include/802.11brcm.h
index 35e0fd9..3471d06 100644
--- a/include/802.11brcm.h
+++ b/include/802.11brcm.h
@@ -1,7 +1,7 @@
/*
* Broadcom proprietary types and constants relating to 802.11
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11cust.h b/include/802.11cust.h
index 943136b..6fe5041 100644
--- a/include/802.11cust.h
+++ b/include/802.11cust.h
@@ -1,7 +1,7 @@
/*
* Customer specific types and constants relating to 802.11
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11e.h b/include/802.11e.h
index be4b693..a0cb628 100644
--- a/include/802.11e.h
+++ b/include/802.11e.h
@@ -1,7 +1,7 @@
/*
* 802.11e protocol header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11k.h b/include/802.11k.h
index 35d5f21..ca598da 100644
--- a/include/802.11k.h
+++ b/include/802.11k.h
@@ -8,7 +8,7 @@
* RM - same as RRM?
* NGBR - Neighbor Report
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11n.h b/include/802.11n.h
index d058d3b..042f428 100644
--- a/include/802.11n.h
+++ b/include/802.11n.h
@@ -6,7 +6,7 @@
* OBSS - Overlapping BSS
* EXTCH/EXT_CH - Extension Channel
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11owe.h b/include/802.11owe.h
index fcd1ac6..2528d70 100644
--- a/include/802.11owe.h
+++ b/include/802.11owe.h
@@ -2,7 +2,7 @@
* Fundamental types and constants relating to OWE (RFC 8110 and WFA spec) -
* "Opportunistic Wireless Encryption"
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11s.h b/include/802.11s.h
index b3d2b3d..0e8bab6 100644
--- a/include/802.11s.h
+++ b/include/802.11s.h
@@ -2,7 +2,7 @@
* Fundamental types and constants relating to 802.11s -
* "Mesh Networking"
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11u.h b/include/802.11u.h
index c0b8c0b..2ce750f 100644
--- a/include/802.11u.h
+++ b/include/802.11u.h
@@ -4,7 +4,7 @@
*
* IW - InterWorking
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11v.h b/include/802.11v.h
index 7961b70..250ba4a 100644
--- a/include/802.11v.h
+++ b/include/802.11v.h
@@ -8,7 +8,7 @@
* BSSTRANS - BSS Management Transition
* TIMBC - TIM Broadcast
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11w.h b/include/802.11w.h
index e003f1a..d975bca 100644
--- a/include/802.11w.h
+++ b/include/802.11w.h
@@ -2,7 +2,7 @@
* Fundamental types and constants relating to 802.11w -
* "Protected Management Frames"
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11wapi.h b/include/802.11wapi.h
index de6e923..f98e05f 100644
--- a/include/802.11wapi.h
+++ b/include/802.11wapi.h
@@ -1,7 +1,7 @@
/*
* WAPI specific types and constants relating to 802.11
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11wfa.h b/include/802.11wfa.h
index 11526c8..caa8aef 100644
--- a/include/802.11wfa.h
+++ b/include/802.11wfa.h
@@ -3,7 +3,7 @@
* Also, see WFA QoS Management spec:
* https://drive.google.com/file/d/1dj4D92kUhLKrImWkOJZ0__Meg9fZm9fL/view?usp=share_link
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.11z.h b/include/802.11z.h
index 9e31acc..f433116 100644
--- a/include/802.11z.h
+++ b/include/802.11z.h
@@ -4,7 +4,7 @@
*
* TDLS - Tunneled DLS
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.1d.h b/include/802.1d.h
index ff81a73..c66548c 100644
--- a/include/802.1d.h
+++ b/include/802.1d.h
@@ -1,7 +1,7 @@
/*
* Fundamental types and constants relating to 802.1D
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/802.3.h b/include/802.3.h
index bef4682..280e7c2 100644
--- a/include/802.3.h
+++ b/include/802.3.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to 802.3
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/aidmp.h b/include/aidmp.h
index 97da3d9..5683dca 100644
--- a/include/aidmp.h
+++ b/include/aidmp.h
@@ -1,7 +1,7 @@
/*
* Broadcom AMBA Interconnect definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcm_l2_filter.h b/include/bcm_l2_filter.h
index 32f0756..4ce44f3 100644
--- a/include/bcm_l2_filter.h
+++ b/include/bcm_l2_filter.h
@@ -1,7 +1,7 @@
/*
* L2 Filter handling functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcm_mpool_pub.h b/include/bcm_mpool_pub.h
index 3fc0a1a..590afbc 100644
--- a/include/bcm_mpool_pub.h
+++ b/include/bcm_mpool_pub.h
@@ -35,7 +35,7 @@
* and instrumentation on top of the heap, without modifying the heap
* allocation implementation.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcm_ring.h b/include/bcm_ring.h
index 96ddd51..877d0c2 100644
--- a/include/bcm_ring.h
+++ b/include/bcm_ring.h
@@ -6,7 +6,7 @@
*
* NOTE: A ring of size N, may only hold N-1 elements.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcm_wifishark.h b/include/bcm_wifishark.h
index 05efe60..07b7f43 100644
--- a/include/bcm_wifishark.h
+++ b/include/bcm_wifishark.h
@@ -1,7 +1,7 @@
/*
* Common header file for DHD logger and bcmwifi_dissector component.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmarp.h b/include/bcmarp.h
index 8c73aa2..408e2d8 100644
--- a/include/bcmarp.h
+++ b/include/bcmarp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to ARP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmbloom.h b/include/bcmbloom.h
index 216eee8..a04e497 100644
--- a/include/bcmbloom.h
+++ b/include/bcmbloom.h
@@ -1,7 +1,7 @@
/*
* Bloom filter support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmcapext.h b/include/bcmcapext.h
index 52a6be5..cf7796e 100644
--- a/include/bcmcapext.h
+++ b/include/bcmcapext.h
@@ -1,7 +1,7 @@
/*
* bcm capext header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmcdc.h b/include/bcmcdc.h
index ed27688..e21c2ce 100644
--- a/include/bcmcdc.h
+++ b/include/bcmcdc.h
@@ -4,7 +4,7 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmdefs.h b/include/bcmdefs.h
index 1d26469..4fd115b 100644
--- a/include/bcmdefs.h
+++ b/include/bcmdefs.h
@@ -1,7 +1,7 @@
/*
* Misc system wide definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmdevs.h b/include/bcmdevs.h
index 1847ddd..b00a1a1 100644
--- a/include/bcmdevs.h
+++ b/include/bcmdevs.h
@@ -1,7 +1,7 @@
/*
* Broadcom device-specific manifest constants.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmdevs_legacy.h b/include/bcmdevs_legacy.h
index b73df33..a4541e3 100644
--- a/include/bcmdevs_legacy.h
+++ b/include/bcmdevs_legacy.h
@@ -1,7 +1,7 @@
/*
* Broadcom device-specific manifest constants used by DHD, but deprecated in firmware.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmdhcp.h b/include/bcmdhcp.h
index 1efbbff..4a03bba 100644
--- a/include/bcmdhcp.h
+++ b/include/bcmdhcp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to DHCP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmendian.h b/include/bcmendian.h
index fdf72d0..055ba69 100644
--- a/include/bcmendian.h
+++ b/include/bcmendian.h
@@ -1,7 +1,7 @@
/*
* Byte order utilities
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmerror.h b/include/bcmerror.h
index c4ff6d4..b5869bf 100644
--- a/include/bcmerror.h
+++ b/include/bcmerror.h
@@ -1,7 +1,7 @@
/*
* Common header file for all error codes.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmeth.h b/include/bcmeth.h
index c56353f..310c687 100644
--- a/include/bcmeth.h
+++ b/include/bcmeth.h
@@ -1,7 +1,7 @@
/*
* Broadcom Ethernettype protocol definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmevent.h b/include/bcmevent.h
index a6b2af9..8917b86 100644
--- a/include/bcmevent.h
+++ b/include/bcmevent.h
@@ -3,7 +3,7 @@
*
* Dependencies: bcmeth.h
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmicmp.h b/include/bcmicmp.h
index d10c6c8..1ce5d61 100644
--- a/include/bcmicmp.h
+++ b/include/bcmicmp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to ICMP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmigmp.h b/include/bcmigmp.h
index 2a6bd5b..03ba00d 100644
--- a/include/bcmigmp.h
+++ b/include/bcmigmp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to IGMP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmiov.h b/include/bcmiov.h
index 6931c3d..97c5d4f 100644
--- a/include/bcmiov.h
+++ b/include/bcmiov.h
@@ -4,7 +4,7 @@
* To be used in firmware and host apps or dhd - reducing code size,
* duplication, and maintenance overhead.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmip.h b/include/bcmip.h
index 0c56336..6db98ae 100644
--- a/include/bcmip.h
+++ b/include/bcmip.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to IP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmipv6.h b/include/bcmipv6.h
index 5b53491..f2843fc 100644
--- a/include/bcmipv6.h
+++ b/include/bcmipv6.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to Neighbor Discovery Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmmsgbuf.h b/include/bcmmsgbuf.h
index 50c2d36..02d9828 100644
--- a/include/bcmmsgbuf.h
+++ b/include/bcmmsgbuf.h
@@ -4,7 +4,7 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmnvram.h b/include/bcmnvram.h
index 9dc2b22..216370f 100644
--- a/include/bcmnvram.h
+++ b/include/bcmnvram.h
@@ -1,7 +1,7 @@
/*
* NVRAM variable manipulation
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmpcie.h b/include/bcmpcie.h
index cc95195..f11c4f7 100644
--- a/include/bcmpcie.h
+++ b/include/bcmpcie.h
@@ -3,7 +3,7 @@
* Software-specific definitions shared between device and host side
* Explains the shared area between host and dongle
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmpcispi.h b/include/bcmpcispi.h
index dd55189..c34c764 100644
--- a/include/bcmpcispi.h
+++ b/include/bcmpcispi.h
@@ -1,7 +1,7 @@
/*
* Broadcom PCI-SPI Host Controller Register Definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmperf.h b/include/bcmperf.h
index b4771d8..ae7c732 100644
--- a/include/bcmperf.h
+++ b/include/bcmperf.h
@@ -1,7 +1,7 @@
/*
* Performance counters software interface.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmproto.h b/include/bcmproto.h
index 8be62aa..688c1d0 100644
--- a/include/bcmproto.h
+++ b/include/bcmproto.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to IP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmrand.h b/include/bcmrand.h
index c59f834..fc476ff 100644
--- a/include/bcmrand.h
+++ b/include/bcmrand.h
@@ -1,7 +1,7 @@
/*
* bcmrand.h.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmsdbus.h b/include/bcmsdbus.h
index 90c0a98..d109d3f 100644
--- a/include/bcmsdbus.h
+++ b/include/bcmsdbus.h
@@ -2,7 +2,7 @@
* Definitions for API from sdio common code (bcmsdh) to individual
* host controller drivers.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmsdh.h b/include/bcmsdh.h
index 32772e2..102d27b 100644
--- a/include/bcmsdh.h
+++ b/include/bcmsdh.h
@@ -3,7 +3,7 @@
* export functions to client drivers
* abstract OS and BUS specific details of SDIO
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmsdh_sdmmc.h b/include/bcmsdh_sdmmc.h
index 8345cbf..d960160 100644
--- a/include/bcmsdh_sdmmc.h
+++ b/include/bcmsdh_sdmmc.h
@@ -1,7 +1,7 @@
/*
* BCMSDH Function Driver for the native SDIO/MMC driver in the Linux Kernel
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmsdpcm.h b/include/bcmsdpcm.h
index 2573b56..60854ca 100644
--- a/include/bcmsdpcm.h
+++ b/include/bcmsdpcm.h
@@ -2,7 +2,7 @@
* Broadcom SDIO/PCMCIA
* Software-specific definitions shared between device and host side
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmspi.h b/include/bcmspi.h
index ca64229..6491d53 100644
--- a/include/bcmspi.h
+++ b/include/bcmspi.h
@@ -1,7 +1,7 @@
/*
* Broadcom SPI Low-Level Hardware Driver API
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmspibrcm.h b/include/bcmspibrcm.h
index 241aa03..2684da7 100644
--- a/include/bcmspibrcm.h
+++ b/include/bcmspibrcm.h
@@ -1,7 +1,7 @@
/*
* SD-SPI Protocol Conversion - BCMSDH->gSPI Translation Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmsrom_fmt.h b/include/bcmsrom_fmt.h
index 8f379d4..df3a186 100644
--- a/include/bcmsrom_fmt.h
+++ b/include/bcmsrom_fmt.h
@@ -1,7 +1,7 @@
/*
* SROM format definition.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmstdlib_s.h b/include/bcmstdlib_s.h
index 459ce86..db6a94e 100644
--- a/include/bcmstdlib_s.h
+++ b/include/bcmstdlib_s.h
@@ -1,7 +1,7 @@
/*
* Broadcom Secure Standard Library.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmtcp.h b/include/bcmtcp.h
index 573b300..09f90c9 100644
--- a/include/bcmtcp.h
+++ b/include/bcmtcp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to TCP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmtlv.h b/include/bcmtlv.h
index 57410c0..24e7ecd 100644
--- a/include/bcmtlv.h
+++ b/include/bcmtlv.h
@@ -1,7 +1,7 @@
/*
* TLV and XTLV support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmudp.h b/include/bcmudp.h
index b920003..65eabe9 100644
--- a/include/bcmudp.h
+++ b/include/bcmudp.h
@@ -1,7 +1,7 @@
/*
* Fundamental constants relating to UDP Protocol
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmutils.h b/include/bcmutils.h
index fcd9925..ea4d851 100644
--- a/include/bcmutils.h
+++ b/include/bcmutils.h
@@ -1,7 +1,7 @@
/*
* Misc useful os-independent macros and functions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmwifi_channels.h b/include/bcmwifi_channels.h
index cad62bb..905f574 100644
--- a/include/bcmwifi_channels.h
+++ b/include/bcmwifi_channels.h
@@ -3,7 +3,7 @@
* This header file housing the define and function prototype use by
* both the wl driver, tools & Apps.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmwifi_rates.h b/include/bcmwifi_rates.h
index 6c7e694..9d24681 100644
--- a/include/bcmwifi_rates.h
+++ b/include/bcmwifi_rates.h
@@ -1,7 +1,7 @@
/*
* Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/bcmwifi_rspec.h b/include/bcmwifi_rspec.h
index c0044f7..1044c62 100644
--- a/include/bcmwifi_rspec.h
+++ b/include/bcmwifi_rspec.h
@@ -1,7 +1,7 @@
/*
* Common OS-independent driver header for rate management.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/brcm_nl80211.h b/include/brcm_nl80211.h
index 3cba705..a8aed83 100644
--- a/include/brcm_nl80211.h
+++ b/include/brcm_nl80211.h
@@ -1,7 +1,7 @@
/*
* Definitions for nl80211 vendor command/event access to host driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dbus.h b/include/dbus.h
index ca5651a..27d07a5 100644
--- a/include/dbus.h
+++ b/include/dbus.h
@@ -2,7 +2,7 @@
* Dongle BUS interface Abstraction layer
* target serial buses like USB, SDIO, SPI, etc.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dhd_daemon.h b/include/dhd_daemon.h
index d92796b..3bde2ea 100644
--- a/include/dhd_daemon.h
+++ b/include/dhd_daemon.h
@@ -1,7 +1,7 @@
/*
* Header file for DHD daemon to handle timeouts
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dhdioctl.h b/include/dhdioctl.h
index 88f212a..07668a5 100644
--- a/include/dhdioctl.h
+++ b/include/dhdioctl.h
@@ -5,7 +5,7 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dngl_rtlv.h b/include/dngl_rtlv.h
index d49d8ca..d0fa55b 100644
--- a/include/dngl_rtlv.h
+++ b/include/dngl_rtlv.h
@@ -1,7 +1,7 @@
/*
* Interface definitions for reversed TLVs
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dngl_stats.h b/include/dngl_stats.h
index 453955f..e1d4780 100644
--- a/include/dngl_stats.h
+++ b/include/dngl_stats.h
@@ -2,7 +2,7 @@
* Common stats definitions for clients of dongle
* ports
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dngl_wlhdr.h b/include/dngl_wlhdr.h
index 33b664e..f7511f2 100644
--- a/include/dngl_wlhdr.h
+++ b/include/dngl_wlhdr.h
@@ -1,7 +1,7 @@
/*
* Dongle WL Header definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dnglevent.h b/include/dnglevent.h
index acc1adf..c4f4934 100644
--- a/include/dnglevent.h
+++ b/include/dnglevent.h
@@ -3,7 +3,7 @@
*
* Dependencies: bcmeth.h
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dnglioctl.h b/include/dnglioctl.h
index 2d60499..a9f0dcc 100644
--- a/include/dnglioctl.h
+++ b/include/dnglioctl.h
@@ -1,7 +1,7 @@
/*
* HND Run Time Environment ioctl.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/dscp_policy.h b/include/dscp_policy.h
index 2d8da60..664e5ca 100644
--- a/include/dscp_policy.h
+++ b/include/dscp_policy.h
@@ -6,7 +6,7 @@
* https://docs.google.com/document/d/1nZ6X_4cVLsQ7unevm4PIDLbDhEFNcRj0d-9y0I0IAYw/edit?usp=sharing
* https://drive.google.com/file/d/1ndJEqXsMsliy_B9A8ZME9uwwc5vsrlxR/view?usp=sharing
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/eap.h b/include/eap.h
index 470f9c0..7e84985 100644
--- a/include/eap.h
+++ b/include/eap.h
@@ -4,7 +4,7 @@
* See
* RFC 2284: PPP Extensible Authentication Protocol (EAP)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/eapol.h b/include/eapol.h
index 63614bc..584d77e 100644
--- a/include/eapol.h
+++ b/include/eapol.h
@@ -5,7 +5,7 @@
* IEEE Std 802.1X-2001
* IEEE 802.1X RADIUS Usage Guidelines
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/epivers.h b/include/epivers.h
index f797167..2841d26 100644
--- a/include/epivers.h
+++ b/include/epivers.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -29,25 +29,25 @@
#define EPI_RC_NUMBER 243
-#define EPI_INCREMENTAL_NUMBER 21
+#define EPI_INCREMENTAL_NUMBER 26
#define EPI_BUILD_NUMBER 0
-#define EPI_VERSION 103, 10, 243, 21
+#define EPI_VERSION 103, 10, 243, 26
-#define EPI_VERSION_NUM 0x670af315
+#define EPI_VERSION_NUM 0x670af31a
#define EPI_VERSION_DEV 103.10.243
/* Driver Version String, ASCII, 32 chars max */
#if defined (WLTEST)
-#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692 WLTEST)"
+#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405 WLTEST)"
#elif (defined (BCMDBG_ASSERT) && \
!defined (BCMDBG_ASSERT_DISABLED) && \
!defined (ASSERT_FP_DISABLE))
-#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692 ASSRT)"
+#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405 ASSRT)"
#else
-#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692)"
+#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405)"
#endif /* BCMINTERNAL */
#endif /* _epivers_h_ */
diff --git a/include/etd.h b/include/etd.h
index 603620a..6af338c 100644
--- a/include/etd.h
+++ b/include/etd.h
@@ -1,7 +1,7 @@
/*
* Extended Trap data component interface file.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -78,9 +78,98 @@ typedef enum {
TAG_TRAP_AXI_HOST_INFO = 25u, /* AXI Host log */
TAG_TRAP_AXI_SR_ERROR = 26u, /* AXI SR error log */
TAG_TRAP_MEM_BIT_FLIP = 27u, /* Memory 1-Bit Flip error */
+ TAG_TRAP_SUBCODE = 28u, /* The trap subcode */
TAG_TRAP_LAST /* This must be the last entry */
} hnd_ext_tag_trap_t;
+/* sub codes corresponding to TAG_TRAP_PHY comes from phy_crash_reason_t */
+
+/* sub codes corresponding to TAG_TRAP_PSM_WD. All other subcodes are internal */
+typedef enum etd_subcode_psmwd {
+ ETDSC_PSMWD_MN_TXCRS_HIGH = 10, /* waiting due to txcrs high sensing */
+ ETDSC_PSMWD_ER_TXERR_WAIT = 19, /* waiting due to txerr recovery */
+ ETDSC_PSMWD_BACKPLANE_REG_WRITE = 11, /* reg write timing out */
+ ETDSC_PSMWD_BACKPLANE_REG_READ = 12, /* reg read timing out */
+} etd_subcode_psmwd_t;
+
+/* sub codes corr to TAG_TRAP_MAC_WAKE, PHYTXERR_THRESH. All other subcodes are internal */
+typedef enum etd_subcode_psmassert {
+ ETDSC_PSMAS_TXEN_AT_SLEEP = 1, /* uCode going to sleep will TX pending */
+ ETDSC_PSMAS_ASSERT2_AVAILABLE = 2, /* PSDU Length zero due to faulty
+ * trigger frame params
+ */
+ ETDSC_PSMAS_HTC_OFFSET_UNSUPPORTED = 3, /* HTC Offset indicated by FW
+ * is not supported for bitsub
+ */
+ ETDSC_PSMAS_ASSERT_IQEST_HANG = 4, /* IQEst failure */
+ ETDSC_PSMAS_FCBS_RADIO_PD_ERROR = 11, /* radio pwr down err during band switch */
+ ETDSC_PSMAS_FCBS_RADIO_PU_ERROR = 12, /* radio power up err during band switch */
+ ETDSC_PSMAS_RX_AMSDU_HDR_ERROR = 13, /* AMSDU header error during rx */
+ ETDSC_PSMAS_BMC_CORRUPT_ERROR = 14, /* Memory corruption error */
+ ETDSC_PSMAS_RESETCCA_RST2RX_ERR = 29, /* PHYSM didnt come to RX post resetcca */
+ ETDSC_PSMAS_BAD_BP_ACCESS = 30, /* Assert to catch BP access failure */
+ ETDSC_PSMAS_DUAL_BTCX_ANT_INVALID = 51, /* Ant. requested by BT is invalid. */
+ ETDSC_PSMAS_PHYERR_TXCRS_HI = 100, /* TX CRS High for more than 20ms during
+ * PHY TX error handling
+ */
+ ETDSC_PSMAS_MACCLEANUP_TXCRS_HI = 101, /* TX CRS High after mac cleanup */
+ ETDSC_PSMAS_PREWDS_ASSERT = 102, /* PreWDS assert */
+ ETDSC_PSMAS_SENSORC_CX_WRONG_TX_CHAIN = 103, /* TX attempted with inhibited TX Chain */
+} etd_subcode_psmassert_t;
+
+/* sub codes corresponding to TAG_TRAP_ERR_ATTN. This is of the format:
+ * 31.........16 15 ........ 0
+ * wlan err attn codes cmn err attn codes
+ */
+#define ETDSC_ERR_ATTN_CMN_MASK (0xFFFFu)
+#define ETDSC_ERR_ATTN_CMN_SHIFT (0x0u)
+#define ETDSC_ERR_ATTN_FN0_MASK (0xFFFF0000u)
+#define ETDSC_ERR_ATTN_FN0_SHIFT (0x16u)
+
+/* cmn */
+#define ETDSC_PCIE_ERR_ATTN_CMN_UNKNOWNTYPE (0x1u << 9u) /* Unknown Header Type err
+ * at User Tx Detected.
+ */
+#define ETDSC_PCIE_ERR_ATTN_CMN_BOUNDARY4K (0x1u << 8u) /* boundary cross
+ * violation
+ */
+#define ETDSC_PCIE_ERR_ATTN_CMN_MRRS (0x1u << 7u) /* MRRS violation Error */
+#define ETDSC_PCIE_ERR_ATTN_CMN_MPS (0x1u << 6u) /* Max Payload Size
+ * Violation
+ */
+#define ETDSC_PCIE_ERR_ATTN_CMN_TTX_BRIDGE_FORWARD (0x1u << 5u) /* UserIF violation */
+#define ETDSC_PCIE_ERR_ATTN_CMN_TTX_TXINTF_OVERFLOW (0x1u << 4u) /* Too many requests made
+ * at User tx without
+ * waiting for Ack.
+ */
+#define ETDSC_PCIE_ERR_ATTN_CMN_PHY (0x1u << 3u) /* PL LayerErr detected */
+#define ETDSC_PCIE_ERR_ATTN_CMN_DL (0x1u << 2u) /* DL layerErr detected */
+#define ETDSC_PCIE_ERR_ATTN_CMN_TTX_TAG_IN_USE (0x1u << 1u) /* Tx Read req resuing a
+ * Tag that has not yet
+ * been completed.
+ */
+#define ETDSC_PCIE_ERR_ATTN_CMN_TRX_UNEXP_RTAG (0x1u << 0u) /* Tx Completion req
+ * providing
+ * an Rtag that is wrong.
+ */
+
+/* wlan */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_TTX_REQ_DURING_D3 (0x1u << 10u) /* wlan tx req even though
+ * in non-D0 state.
+ */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_PRI_SIG_TARGET_ABORT (0x1u << 9u) /* targetAbortError Status
+ * for wlan.
+ */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_UNSPPORT (0x1u << 8u) /* Unsupported Req Err */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_ECRC (0x1u << 7u) /* ECRC Error TLP */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_MALF_TLP (0x1u << 6u) /* Malformed TLP */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_RX_OFLOW (0x1u << 5u) /* Receiver Overflow */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_UNEXP_CPL (0x1u << 4u) /* Unexpected Completion */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_MASTER_ABRT (0x1u << 3u) /* Receive UR Completion */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_CPL_TIMEOUT (0x1u << 2u) /* Completer Timeout. */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_FC_PRTL (0x1u << 1u) /* Flow Control Prot Err */
+#define ETDSC_PCIE_ERR_ATTN_WLAN_PSND_TLP (0x1u << 0u) /* Poisoned Err Status */
+
typedef struct hnd_ext_trap_bp_err
{
uint32 error;
@@ -681,7 +770,7 @@ void etd_set_trap_ext_swflag(uint32 flag);
void etd_notify_trap_ext_callback(trap_t *tr);
reg_dump_config_t *etd_get_reg_dump_config_tbl(void);
uint etd_get_reg_dump_config_len(void);
-
+void BCMPOSTTRAPFN(etd_write_trap_reason_subcode)(uint32 tsc);
extern bool _etd_enab;
#if defined(ROM_ENAB_RUNTIME_CHECK)
diff --git a/include/ethernet.h b/include/ethernet.h
index 97fac2a..1168963 100644
--- a/include/ethernet.h
+++ b/include/ethernet.h
@@ -1,7 +1,7 @@
/*
* From FreeBSD 2.2.7: Fundamental constants relating to ethernet.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_log.h b/include/event_log.h
index c204d4b..4553cde 100644
--- a/include/event_log.h
+++ b/include/event_log.h
@@ -1,7 +1,7 @@
/*
* EVENT_LOG system definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_log_api_strings.h b/include/event_log_api_strings.h
index d61e569..b60c3e4 100644
--- a/include/event_log_api_strings.h
+++ b/include/event_log_api_strings.h
@@ -3,7 +3,7 @@
* The strings defined in this file are "API" strings and therefore can't be changed without
* consulting the consumers of these strings
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_log_payload.h b/include/event_log_payload.h
index 7360d1b..14b7a5a 100644
--- a/include/event_log_payload.h
+++ b/include/event_log_payload.h
@@ -4,7 +4,7 @@
* This file describes the payloads of event log entries that are data buffers
* rather than formatted string entries. The contents are generally XTLVs.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_log_set.h b/include/event_log_set.h
index 0006980..e5725d8 100644
--- a/include/event_log_set.h
+++ b/include/event_log_set.h
@@ -1,7 +1,7 @@
/*
* EVENT_LOG system definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_log_tag.h b/include/event_log_tag.h
index d3118be..caa0fec 100644
--- a/include/event_log_tag.h
+++ b/include/event_log_tag.h
@@ -1,7 +1,7 @@
/*
* EVENT_LOG system definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/event_trace.h b/include/event_trace.h
index e26f9fc..a3a7ed2 100644
--- a/include/event_trace.h
+++ b/include/event_trace.h
@@ -1,7 +1,7 @@
/*
* Trace log blocks sent over HBUS
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/ewp.h b/include/ewp.h
index 5fc78ef..12f38f8 100644
--- a/include/ewp.h
+++ b/include/ewp.h
@@ -3,7 +3,7 @@
*
* Software-specific EWP definitions shared between device and host side
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/fils.h b/include/fils.h
index 84a6306..7301994 100644
--- a/include/fils.h
+++ b/include/fils.h
@@ -1,7 +1,7 @@
/*
* Fundamental types and constants relating to FILS AUTHENTICATION
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/frag.h b/include/frag.h
index 7a220f1..fdeb447 100644
--- a/include/frag.h
+++ b/include/frag.h
@@ -2,7 +2,7 @@
* IE/TLV (de)fragmentation declarations/definitions for
* Broadcom 802.11abgn Networking Device Driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/ftm_ioctl.h b/include/ftm_ioctl.h
index e87e86f..dc23146 100644
--- a/include/ftm_ioctl.h
+++ b/include/ftm_ioctl.h
@@ -1,7 +1,7 @@
/*
* FTM module IOCTL structure definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/fwpkg_utils.h b/include/fwpkg_utils.h
index bde4bf3..b1da5e2 100644
--- a/include/fwpkg_utils.h
+++ b/include/fwpkg_utils.h
@@ -1,7 +1,7 @@
/*
* Firmware package defines
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hal_nci_cmn.h b/include/hal_nci_cmn.h
index 33a9baa..a60d88b 100644
--- a/include/hal_nci_cmn.h
+++ b/include/hal_nci_cmn.h
@@ -2,7 +2,7 @@
* Shared code between the legacy nci implementation which depended on the EROM and the
* implementation which depends on vlsi_data.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnd_armtrap.h b/include/hnd_armtrap.h
index 5db2411..fa8d3d2 100644
--- a/include/hnd_armtrap.h
+++ b/include/hnd_armtrap.h
@@ -1,7 +1,7 @@
/*
* HND arm trap handling.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnd_cons.h b/include/hnd_cons.h
index 5b98fa8..7734ad4 100644
--- a/include/hnd_cons.h
+++ b/include/hnd_cons.h
@@ -1,7 +1,7 @@
/*
* Console support for RTE - for host use only.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnd_debug.h b/include/hnd_debug.h
index e274e41..5442426 100644
--- a/include/hnd_debug.h
+++ b/include/hnd_debug.h
@@ -1,7 +1,7 @@
/*
* HND Run Time Environment debug info area
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnd_pktpool.h b/include/hnd_pktpool.h
index 75d013a..cc66729 100644
--- a/include/hnd_pktpool.h
+++ b/include/hnd_pktpool.h
@@ -1,7 +1,7 @@
/*
* HND generic packet pool operation primitives
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnd_pktq.h b/include/hnd_pktq.h
index 806559a..8481c4a 100644
--- a/include/hnd_pktq.h
+++ b/include/hnd_pktq.h
@@ -1,7 +1,7 @@
/*
* HND generic pktq operation primitives
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hnddap.h b/include/hnddap.h
index fce70f8..ee4ba9a 100644
--- a/include/hnddap.h
+++ b/include/hnddap.h
@@ -1,7 +1,7 @@
/*
* DAP(Debug Access Port) interface.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hndlhl.h b/include/hndlhl.h
index df6bffd..ae70826 100644
--- a/include/hndlhl.h
+++ b/include/hndlhl.h
@@ -1,7 +1,7 @@
/*
* HND SiliconBackplane PMU support.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hndoobr.h b/include/hndoobr.h
index 1e532a7..a2268e6 100644
--- a/include/hndoobr.h
+++ b/include/hndoobr.h
@@ -1,7 +1,7 @@
/*
* HND OOBR interface header
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hndpmu_dhd.h b/include/hndpmu_dhd.h
index 88d2e88..ec045f7 100644
--- a/include/hndpmu_dhd.h
+++ b/include/hndpmu_dhd.h
@@ -1,7 +1,7 @@
/*
* PMU core access APIs for DHD.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/hndsoc.h b/include/hndsoc.h
index fcf73c0..bf17924 100644
--- a/include/hndsoc.h
+++ b/include/hndsoc.h
@@ -1,7 +1,7 @@
/*
* Broadcom HND chip & on-chip-interconnect-related definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/linux_osl.h b/include/linux_osl.h
index 56e2aaf..c45b8ca 100644
--- a/include/linux_osl.h
+++ b/include/linux_osl.h
@@ -1,7 +1,7 @@
/*
* Linux OS Independent Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/linux_pkt.h b/include/linux_pkt.h
index 71a5554..04a20b5 100644
--- a/include/linux_pkt.h
+++ b/include/linux_pkt.h
@@ -1,7 +1,7 @@
/*
* Linux Packet (skb) interface
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/linuxerrmap.h b/include/linuxerrmap.h
index beb4172..27516a6 100644
--- a/include/linuxerrmap.h
+++ b/include/linuxerrmap.h
@@ -1,7 +1,7 @@
/*
* Linux Error mappings
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/linuxver.h b/include/linuxver.h
index b3a3c6c..a2d3f16 100644
--- a/include/linuxver.h
+++ b/include/linuxver.h
@@ -2,7 +2,7 @@
* Linux-specific abstractions to gain some independence from linux kernel versions.
* Pave over some 2.2 versus 2.4 versus 2.6 kernel differences.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/lpflags.h b/include/lpflags.h
index 38bcf08..1b1c13e 100644
--- a/include/lpflags.h
+++ b/include/lpflags.h
@@ -1,7 +1,7 @@
/*
* Chip related low power flags
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/mbo.h b/include/mbo.h
index f65b1a9..dcbf4bd 100644
--- a/include/mbo.h
+++ b/include/mbo.h
@@ -1,7 +1,7 @@
/*
* Fundamental types and constants relating to WFA MBO
* (Multiband Operation)
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/miniopt.h b/include/miniopt.h
index d095d66..f11cc80 100644
--- a/include/miniopt.h
+++ b/include/miniopt.h
@@ -1,7 +1,7 @@
/*
* Command line options parser.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/msf.h b/include/msf.h
index 1fa746d..6c08d4e 100644
--- a/include/msf.h
+++ b/include/msf.h
@@ -1,7 +1,7 @@
/*
* Common interface to MSF (multi-segment format) definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/msgtrace.h b/include/msgtrace.h
index ccc379f..287623a 100644
--- a/include/msgtrace.h
+++ b/include/msgtrace.h
@@ -1,7 +1,7 @@
/*
* Trace messages sent over HBUS
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/nan.h b/include/nan.h
index 24a4def..c8b345f 100644
--- a/include/nan.h
+++ b/include/nan.h
@@ -2,7 +2,7 @@
* Fundamental types and constants relating to WFA NAN
* (Neighbor Awareness Networking)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/nci.h b/include/nci.h
index 9ef8a9e..dee6557 100644
--- a/include/nci.h
+++ b/include/nci.h
@@ -2,7 +2,7 @@
* Misc utility routines for accessing chip-specific features
* of the BOOKER NCI (non coherent interconnect) based Broadcom chips.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/osl.h b/include/osl.h
index 3362411..3aff008 100644
--- a/include/osl.h
+++ b/include/osl.h
@@ -1,7 +1,7 @@
/*
* OS Abstraction Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/osl_decl.h b/include/osl_decl.h
index 5ee4a24..3fd8f5b 100644
--- a/include/osl_decl.h
+++ b/include/osl_decl.h
@@ -1,7 +1,7 @@
/*
* osl forward declarations
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/osl_ext.h b/include/osl_ext.h
index 67d11b7..ce76d30 100644
--- a/include/osl_ext.h
+++ b/include/osl_ext.h
@@ -2,7 +2,7 @@
* OS Abstraction Layer Extension - the APIs defined by the "extension" API
* are only supported by a subset of all operating systems.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/p2p.h b/include/p2p.h
index 75394d8..adb18ae 100644
--- a/include/p2p.h
+++ b/include/p2p.h
@@ -1,7 +1,7 @@
/*
* Fundamental types and constants relating to WFA P2P (aka WiFi Direct)
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/packed_section_end.h b/include/packed_section_end.h
index 70cc6ef..6224198 100644
--- a/include/packed_section_end.h
+++ b/include/packed_section_end.h
@@ -15,7 +15,7 @@
* #include <packed_section_end.h>
*
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/packed_section_start.h b/include/packed_section_start.h
index b3890b5..ecb39fd 100644
--- a/include/packed_section_start.h
+++ b/include/packed_section_start.h
@@ -15,7 +15,7 @@
* #include <packed_section_end.h>
*
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/pcicfg.h b/include/pcicfg.h
index 2f7bf89..5f7094b 100644
--- a/include/pcicfg.h
+++ b/include/pcicfg.h
@@ -1,7 +1,7 @@
/*
* pcicfg.h: PCI configuration constants and structures.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/pcie_core.h b/include/pcie_core.h
index 8177157..90b7264 100644
--- a/include/pcie_core.h
+++ b/include/pcie_core.h
@@ -1,7 +1,7 @@
/*
* BCM43XX PCIE core hardware definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/phy_event_log_payload.h b/include/phy_event_log_payload.h
index 1217df2..81d3f8b 100644
--- a/include/phy_event_log_payload.h
+++ b/include/phy_event_log_payload.h
@@ -4,7 +4,7 @@
* This file describes the payloads of PHY related event log entries that are data buffers
* rather than formatted string entries.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbchipc.h b/include/sbchipc.h
index b0ca95d..d27fe05 100644
--- a/include/sbchipc.h
+++ b/include/sbchipc.h
@@ -5,7 +5,7 @@
* JTAG, 0/1/2 UARTs, clock frequency control, a watchdog interrupt timer,
* GPIO interface, extbus, and support for serial and parallel flashes.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbconfig.h b/include/sbconfig.h
index 163562e..74b5247 100644
--- a/include/sbconfig.h
+++ b/include/sbconfig.h
@@ -1,7 +1,7 @@
/*
* Broadcom SiliconBackplane hardware register definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbgci.h b/include/sbgci.h
index 95f62ed..29c3b68 100644
--- a/include/sbgci.h
+++ b/include/sbgci.h
@@ -1,7 +1,7 @@
/*
* SiliconBackplane GCI core hardware definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbhndarm.h b/include/sbhndarm.h
index 9617782..e1de740 100644
--- a/include/sbhndarm.h
+++ b/include/sbhndarm.h
@@ -1,7 +1,7 @@
/*
* Broadcom SiliconBackplane ARM definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbhnddma.h b/include/sbhnddma.h
index 4ae8a7b..e097dea 100644
--- a/include/sbhnddma.h
+++ b/include/sbhnddma.h
@@ -2,7 +2,7 @@
* Generic Broadcom Home Networking Division (HND) DMA engine HW interface
* This supports the following chips: BCM42xx, 44xx, 47xx .
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbpcmcia.h b/include/sbpcmcia.h
index fb1bfde..078f6d4 100644
--- a/include/sbpcmcia.h
+++ b/include/sbpcmcia.h
@@ -1,7 +1,7 @@
/*
* BCM43XX Sonics SiliconBackplane PCMCIA core hardware definitions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbsdio.h b/include/sbsdio.h
index 27e3b0f..61af47c 100644
--- a/include/sbsdio.h
+++ b/include/sbsdio.h
@@ -4,7 +4,7 @@
*
* SDIO core support 1bit, 4 bit SDIO mode as well as SPI mode.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbsdpcmdev.h b/include/sbsdpcmdev.h
index f19af87..a2f97c4 100644
--- a/include/sbsdpcmdev.h
+++ b/include/sbsdpcmdev.h
@@ -2,7 +2,7 @@
* Broadcom SiliconBackplane SDIO/PCMCIA hardware-specific
* device core support
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbsocram.h b/include/sbsocram.h
index 17536db..14735f2 100644
--- a/include/sbsocram.h
+++ b/include/sbsocram.h
@@ -1,7 +1,7 @@
/*
* BCM47XX Sonics SiliconBackplane embedded ram core
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbsreng.h b/include/sbsreng.h
index a583952..ddf5a7a 100644
--- a/include/sbsreng.h
+++ b/include/sbsreng.h
@@ -1,7 +1,7 @@
/*
* Header file for save-restore HW
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sbsysmem.h b/include/sbsysmem.h
index b5f6457..8444a14 100644
--- a/include/sbsysmem.h
+++ b/include/sbsysmem.h
@@ -1,7 +1,7 @@
/*
* SiliconBackplane System Memory core
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sdio.h b/include/sdio.h
index 4110291..4eedd0b 100644
--- a/include/sdio.h
+++ b/include/sdio.h
@@ -2,7 +2,7 @@
* SDIO spec header file
* Protocol and standard (common) device definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sdioh.h b/include/sdioh.h
index e5ae7ed..f9a0969 100644
--- a/include/sdioh.h
+++ b/include/sdioh.h
@@ -2,7 +2,7 @@
* SDIO Host Controller Spec header file
* Register map and definitions for the Standard Host Controller
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sdiovar.h b/include/sdiovar.h
index 3aa94da..6faeb5c 100644
--- a/include/sdiovar.h
+++ b/include/sdiovar.h
@@ -2,7 +2,7 @@
* Structure used by apps whose drivers access SDIO drivers.
* Pulled out separately so dhdu and wlu can both use it.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/sdspi.h b/include/sdspi.h
index c0658ac..47f5238 100644
--- a/include/sdspi.h
+++ b/include/sdspi.h
@@ -1,7 +1,7 @@
/*
* SD-SPI Protocol Standard
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/siutils.h b/include/siutils.h
index 6e3010a..8a3ce0a 100644
--- a/include/siutils.h
+++ b/include/siutils.h
@@ -2,7 +2,7 @@
* Misc utility routines for accessing the SOC Interconnects
* of Broadcom HNBU chips.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/spid.h b/include/spid.h
index 96e96c7..a534554 100644
--- a/include/spid.h
+++ b/include/spid.h
@@ -1,7 +1,7 @@
/*
* SPI device spec header file
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/trxhdr.h b/include/trxhdr.h
index fdb9752..d8c98c9 100644
--- a/include/trxhdr.h
+++ b/include/trxhdr.h
@@ -1,7 +1,7 @@
/*
* TRX image file header format.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/typedefs.h b/include/typedefs.h
index 606501b..2af9654 100644
--- a/include/typedefs.h
+++ b/include/typedefs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/verhoeff_chksum.h b/include/verhoeff_chksum.h
index 52fddf9..0718665 100644
--- a/include/verhoeff_chksum.h
+++ b/include/verhoeff_chksum.h
@@ -1,7 +1,7 @@
/*
* Broadcom Verhoeff Checksum Library.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/vlan.h b/include/vlan.h
index 7f7a7e9..8c6d0e7 100644
--- a/include/vlan.h
+++ b/include/vlan.h
@@ -1,7 +1,7 @@
/*
* 802.1Q VLAN protocol definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wldev_common.h b/include/wldev_common.h
index dd312c8..2020ae0 100644
--- a/include/wldev_common.h
+++ b/include/wldev_common.h
@@ -1,7 +1,7 @@
/*
* Common function shared by Linux WEXT, cfg80211 and p2p drivers
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wlfc_proto.h b/include/wlfc_proto.h
index 3ff2171..c8d7577 100644
--- a/include/wlfc_proto.h
+++ b/include/wlfc_proto.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wlioctl.h b/include/wlioctl.h
index 9b10e0f..a7e74ef 100644
--- a/include/wlioctl.h
+++ b/include/wlioctl.h
@@ -6,7 +6,7 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wlioctl_defs.h b/include/wlioctl_defs.h
index dcbf918..cfc1f1b 100644
--- a/include/wlioctl_defs.h
+++ b/include/wlioctl_defs.h
@@ -4,7 +4,7 @@
*
* Definitions subject to change without notice.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wlioctl_utils.h b/include/wlioctl_utils.h
index 83e7f12..dd5256f 100644
--- a/include/wlioctl_utils.h
+++ b/include/wlioctl_utils.h
@@ -1,7 +1,7 @@
/*
* Custom OID/ioctl related helper functions.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wpa.h b/include/wpa.h
index 1c8b2af..1207b2d 100644
--- a/include/wpa.h
+++ b/include/wpa.h
@@ -1,7 +1,7 @@
/*
* Fundamental types and constants relating to WPA
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/include/wps.h b/include/wps.h
index 9c1c948..77b32f0 100644
--- a/include/wps.h
+++ b/include/wps.h
@@ -1,7 +1,7 @@
/*
* WPS IE definitions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/linux_osl.c b/linux_osl.c
index 3f672cf..b88b17a 100644
--- a/linux_osl.c
+++ b/linux_osl.c
@@ -1,7 +1,7 @@
/*
* Linux OS Independent Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/linux_osl_priv.h b/linux_osl_priv.h
index c575450..956d0cb 100644
--- a/linux_osl_priv.h
+++ b/linux_osl_priv.h
@@ -1,7 +1,7 @@
/*
* Private header file for Linux OS Independent Layer
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/linux_pkt.c b/linux_pkt.c
index 4b6b3d7..e7ddb7e 100644
--- a/linux_pkt.c
+++ b/linux_pkt.c
@@ -1,7 +1,7 @@
/*
* Linux Packet (skb) interface
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/linuxerrmap.c b/linuxerrmap.c
index 32fde67..87ccf07 100644
--- a/linuxerrmap.c
+++ b/linuxerrmap.c
@@ -1,7 +1,7 @@
/*
* Linux Error codes
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/nciutils.c b/nciutils.c
index 31d0fe5..5f95f69 100644
--- a/nciutils.c
+++ b/nciutils.c
@@ -3,7 +3,7 @@
* of the BOOKER NCI (non coherent interconnect) based Broadcom chips.
* Note: this file is used for both dongle and DHD builds.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/nciutils_host.c b/nciutils_host.c
index b5d9064..0471cb8 100644
--- a/nciutils_host.c
+++ b/nciutils_host.c
@@ -3,7 +3,7 @@
* of the BOOKER NCI (non coherent interconnect) based Broadcom chips.
* For DHD only.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/pcie_core_host.c b/pcie_core_host.c
index c11d2ca..ec861ee 100644
--- a/pcie_core_host.c
+++ b/pcie_core_host.c
@@ -1,7 +1,7 @@
/*
* Contains PCIe related functions that are required for host builds.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/siutils.c b/siutils.c
index 7a3139b..796e259 100644
--- a/siutils.c
+++ b/siutils.c
@@ -3,7 +3,7 @@
* of the SiliconBackplane-based Broadcom chips.
* Note: this file is used for both dongle and DHD builds.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/siutils_host.c b/siutils_host.c
index 93c87ce..18d1624 100644
--- a/siutils_host.c
+++ b/siutils_host.c
@@ -3,7 +3,7 @@
* of the SiliconBackplane-based Broadcom chips.
* For DHD only.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/siutils_priv.h b/siutils_priv.h
index af5057f..bc25fbb 100644
--- a/siutils_priv.h
+++ b/siutils_priv.h
@@ -1,7 +1,7 @@
/*
* Include file private to the SOC Interconnect support files.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/verhoeff_chksum.c b/verhoeff_chksum.c
index 943e631..55bd6bd 100644
--- a/verhoeff_chksum.c
+++ b/verhoeff_chksum.c
@@ -1,7 +1,7 @@
/*
* Broadcom Verhoeff Checksum Library.
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wb_regon_coordinator.c b/wb_regon_coordinator.c
index 07f401c..3e9b99c 100644
--- a/wb_regon_coordinator.c
+++ b/wb_regon_coordinator.c
@@ -1,7 +1,7 @@
/*
* DHD WiFi BT RegON Coordinator - WBRC
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wb_regon_coordinator.h b/wb_regon_coordinator.h
index 819dfee..2f21ba3 100644
--- a/wb_regon_coordinator.h
+++ b/wb_regon_coordinator.h
@@ -1,7 +1,7 @@
/*
* DHD BT WiFi Coex RegON Coordinator - Interface
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wifi_stats.h b/wifi_stats.h
index eccc694..8667acf 100644
--- a/wifi_stats.h
+++ b/wifi_stats.h
@@ -2,7 +2,7 @@
* Common stats definitions for clients of dongle
* ports
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_android.c b/wl_android.c
index 5f4fdb3..f018224 100644
--- a/wl_android.c
+++ b/wl_android.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver - Android related functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_android.h b/wl_android.h
index 4607d4f..6c34acf 100644
--- a/wl_android.h
+++ b/wl_android.h
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver - Android related functions
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfg80211.c b/wl_cfg80211.c
index f44c074..ffc8db2 100644
--- a/wl_cfg80211.c
+++ b/wl_cfg80211.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -7642,10 +7642,14 @@ wl_sync_fw_assoc_states(struct bcm_cfg80211 *cfg,
void
wl_pkt_mon_start(struct bcm_cfg80211 *cfg, struct net_device *dev)
{
+ dhd_pub_t *dhdp = (dhd_pub_t *)(cfg->pub);
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_START(dhdp, dhd_net2idx(dhdp->info, dev));
+#else
if ((dev == bcmcfg_to_prmry_ndev(cfg))) {
- dhd_pub_t *dhdp = (dhd_pub_t *)(cfg->pub);
DHD_DBG_PKT_MON_START(dhdp);
}
+#endif /* DHD_PKT_MON_DUAL_STA */
}
#endif /* DBG_PKT_MON && BCMDONGLEHOST */
@@ -7840,9 +7844,13 @@ wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
#ifdef DBG_PKT_MON
/* Start pkt monitor here to avoid probe auth and assoc lost */
+#ifdef DHD_PKT_MON_DUAL_STA
+ wl_pkt_mon_start(cfg, dev);
+#else
if (dev == bcmcfg_to_prmry_ndev(cfg)) {
wl_pkt_mon_start(cfg, dev);
}
+#endif /* DHD_PKT_MON_DUAL_STA */
#endif /* DBG_PKT_MON */
if (assoc_info.reassoc) {
/* Handle roam to same ESS */
@@ -8003,9 +8011,13 @@ wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev,
if (act) {
#ifdef DBG_PKT_MON
/* Stop packet monitor */
+#ifdef DHD_PKT_MON_DUAL_STA
+ DHD_DBG_PKT_MON_STOP(dhdp, dhd_net2idx(dhdp->info, dev));
+#else
if (dev == bcmcfg_to_prmry_ndev(cfg)) {
DHD_DBG_PKT_MON_STOP(dhdp);
}
+#endif /* DHD_PKT_MON_DUAL_STA */
#endif /* DBG_PKT_MON */
/*
* Cancel ongoing scan to sync up with sme state machine of cfg80211.
@@ -10092,6 +10104,14 @@ wl_apply_per_sta_conn_suspend_settings(struct bcm_cfg80211 *cfg,
}
}
#endif /* CONFIG_SILENT_ROAM */
+
+#ifdef APF
+ if (suspend) {
+ dhd_dev_apf_enable_filter(dev);
+ } else {
+ dhd_dev_apf_disable_filter(dev);
+ }
+#endif /* APF */
return BCME_OK;
}
@@ -11046,6 +11066,7 @@ wl_cfg80211_send_action_frame(struct wiphy *wiphy, struct net_device *dev,
#ifdef BCMDONGLEHOST
dhd_pub_t *dhd = (dhd_pub_t *)(cfg->pub);
#endif /* BCMDONGLEHOST */
+ u8 gas_frame_type = WL_PUB_AF_STYPE_INVALID;
int32 requested_dwell = af_params->dwell_time;
@@ -11098,7 +11119,7 @@ wl_cfg80211_send_action_frame(struct wiphy *wiphy, struct net_device *dev,
cfg->need_wait_afrx = false;
}
} else if (wl_cfg80211_is_dpp_gas_action(
- (void *)action_frame->data, action_frame->len)) {
+ (void *)action_frame->data, action_frame->len, &gas_frame_type)) {
config_af_params.max_tx_retry = WL_AF_TX_MAX_RETRY;
af_params->dwell_time = WL_MED_DWELL_TIME;
cfg->need_wait_afrx = true;
@@ -11107,6 +11128,9 @@ wl_cfg80211_send_action_frame(struct wiphy *wiphy, struct net_device *dev,
if (requested_dwell == 0) {
/* Use minimal dwell to take care of Ack */
af_params->dwell_time = WL_MIN_DWELL_TIME;
+ if (gas_frame_type == WL_PUB_AF_GAS_IRESP) {
+ af_params->dwell_time = WL_GAS_IRESP_DWELL_TIME;
+ }
}
} else if ((action == P2P_PUB_AF_ACTION) &&
(action_frame_len >= sizeof(wifi_p2p_pub_act_frame_t))) {
@@ -11192,10 +11216,8 @@ wl_cfg80211_send_action_frame(struct wiphy *wiphy, struct net_device *dev,
}
#endif
- /* if scan is ongoing, abort current scan. */
- if (wl_get_drv_status_all(cfg, SCANNING)) {
- wl_cfgscan_cancel_scan(cfg);
- }
+ /* abort current scan/listen . */
+ wl_cfgscan_cancel_scan(cfg);
/* Abort P2P listen */
if (discover_cfgdev(cfgdev, cfg)) {
@@ -14378,10 +14400,12 @@ wl_post_linkdown_ops(struct bcm_cfg80211 *cfg,
s32 ret = BCME_OK;
dhd_pub_t *dhdp = (dhd_pub_t *)(cfg->pub);
char cmd[WLC_IOCTL_SMLEN];
+ int ifidx;
/* Common Code for connect failure & link down */
BCM_REFERENCE(dhdp);
BCM_REFERENCE(cmd);
+ BCM_REFERENCE(ifidx);
WL_INFORM_MEM(("link down. connection state bit status: [%u:%u:%u:%u]\n",
wl_get_drv_status(cfg, CONNECTING, ndev),
@@ -14401,10 +14425,15 @@ wl_post_linkdown_ops(struct bcm_cfg80211 *cfg,
wl_clr_drv_status(cfg, DISCONNECTING, ndev);
#ifdef DBG_PKT_MON
+#ifdef DHD_PKT_MON_DUAL_STA
+ ifidx = dhd_net2idx(dhdp->info, ndev);
+ DHD_DBG_PKT_MON_STOP(dhdp, ifidx);
+#else
if (ndev == bcmcfg_to_prmry_ndev(cfg)) {
/* Stop packet monitor */
DHD_DBG_PKT_MON_STOP(dhdp);
}
+#endif /* DHD_PKT_MON_DUAL_STA */
#endif /* DHD_PKT_MON */
/* Flush preserve logs */
@@ -15906,8 +15935,11 @@ wl_notify_roam_prep_status(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev,
dhd_pub_t *dhdp = (dhd_pub_t *)(cfg->pub);
u32 status = ntoh32(e->status);
u32 reason = ntoh32(e->reason);
+ int ifidx;
BCM_REFERENCE(sec);
+ BCM_REFERENCE(ifidx);
+
ndev = cfgdev_to_wlc_ndev(cfgdev, cfg);
if (status == WLC_E_STATUS_SUCCESS && reason != WLC_E_REASON_INITIAL_ASSOC) {
@@ -15929,10 +15961,16 @@ wl_notify_roam_prep_status(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev,
#endif /* CONFIG_SILENT_ROAM */
#ifdef DBG_PKT_MON
+#ifdef DHD_PKT_MON_DUAL_STA
+ ifidx = dhd_net2idx(dhdp->info, ndev);
+ DHD_DBG_PKT_MON_STOP(dhdp, ifidx);
+ DHD_DBG_PKT_MON_START(dhdp, ifidx);
+#else
if (ndev == bcmcfg_to_prmry_ndev(cfg)) {
DHD_DBG_PKT_MON_STOP(dhdp);
DHD_DBG_PKT_MON_START(dhdp);
}
+#endif /* DHD_PKT_MON_DUAL_STA */
#endif /* DBG_PKT_MON */
#ifdef DHD_LOSSLESS_ROAMING
sec = wl_read_prof(cfg, ndev, WL_PROF_SEC);
@@ -17142,9 +17180,11 @@ wl_notify_rx_mgmt_frame(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev,
u8 bsscfgidx;
u32 mgmt_frame_len;
chanspec_t chspec;
+ u8 gas_frame_type = WL_PUB_AF_STYPE_INVALID;
#if defined(BCMDONGLEHOST) && defined(TDLS_MSG_ONLY_WFD) && defined(WLTDLS)
dhd_pub_t *dhdp = (dhd_pub_t *)(cfg->pub);
#endif /* BCMDONGLEHOST && TDLS_MSG_ONLY_WFD && WLTDLS */
+
if (ntoh32(e->datalen) < sizeof(wl_event_rx_frame_data_t)) {
WL_ERR(("wrong datalen:%d\n", ntoh32(e->datalen)));
return -EINVAL;
@@ -17247,7 +17287,7 @@ wl_notify_rx_mgmt_frame(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev,
(&mgmt_frame[DOT11_MGMT_HDR_LEN]);
(void) p2p_act_frm;
} else if (wl_cfg80211_is_dpp_gas_action(&mgmt_frame[DOT11_MGMT_HDR_LEN],
- mgmt_frame_len - DOT11_MGMT_HDR_LEN)) {
+ mgmt_frame_len - DOT11_MGMT_HDR_LEN, &gas_frame_type)) {
wl_clr_drv_status(cfg, WAITING_NEXT_ACT_FRM, ndev);
/* Stop waiting for next AF. */
@@ -26027,6 +26067,10 @@ get_dpp_pa_ftype(enum wl_dpp_ftype ftype)
return "DPP_AUTH_RESP";
case DPP_AUTH_CONF:
return "DPP_AUTH_CONF";
+ case DPP_CONFIGURATION_RESULT:
+ return "DPP_CONFIGURATION_RESULT";
+ case DPP_CONFIGURATION_STATUS_RESULT:
+ return "DPP_CONFIGURATION_STATUS_RESULT";
default:
return "Unkown DPP frame";
}
@@ -26068,7 +26112,7 @@ bool wl_cfg80211_find_gas_subtype(u8 subtype, u16 adv_id, u8* data, s32 len)
return false;
}
-bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len)
+bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len, u8 *gas_frame_type)
{
wl_dpp_gas_af_t *act_frm = (wl_dpp_gas_af_t *)frame;
u32 len;
@@ -26084,10 +26128,12 @@ bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len)
ie = (bcm_tlv_t *)act_frm->query_data;
/* We are interested only in MNG ADV ID. Skip any other id. */
ie = bcm_parse_tlvs(ie, len, DOT11_MNG_ADVERTISEMENT_ID);
+ *gas_frame_type = WL_PUB_AF_GAS_IREQ;
} else if (act_frm->action == WL_PUB_AF_GAS_IRESP) {
ie = (bcm_tlv_t *)&act_frm->query_data[WL_GAS_RESP_OFFSET];
/* We are interested only in MNG ADV ID. Skip any other id. */
ie = bcm_parse_tlvs(ie, len, DOT11_MNG_ADVERTISEMENT_ID);
+ *gas_frame_type = WL_PUB_AF_GAS_IRESP;
} else {
return false;
}
diff --git a/wl_cfg80211.h b/wl_cfg80211.h
index f8ea094..b6f56bf 100644
--- a/wl_cfg80211.h
+++ b/wl_cfg80211.h
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -735,44 +735,45 @@ do { \
* It exceed the original 1024 limitation
* so change WL_EXTRA_LEN_MAX to 2048
*/
-#define WL_IOCTL_LEN_MAX 2048
-#define WL_EXTRA_BUF_MAX 2048
-#define WL_SCAN_ERSULTS_LAST (WL_SCAN_RESULTS_NO_MEM+1)
-#define WL_AP_MAX 256
-#define WL_FILE_NAME_MAX 256
-#define WL_DEFAULT_DWELL_TIME 200
-#define WL_MED_DWELL_TIME 400
-#define WL_MIN_DWELL_TIME 100
-#define WL_LONG_DWELL_TIME 1000
+#define WL_IOCTL_LEN_MAX 2048u
+#define WL_EXTRA_BUF_MAX 2048u
+#define WL_SCAN_ERSULTS_LAST (WL_SCAN_RESULTS_NO_MEM+1)
+#define WL_AP_MAX 256u
+#define WL_FILE_NAME_MAX 256u
+#define WL_DEFAULT_DWELL_TIME 200u
+#define WL_MED_DWELL_TIME 400u
+#define WL_MIN_DWELL_TIME 100u
+#define WL_GAS_IRESP_DWELL_TIME 200u
+#define WL_LONG_DWELL_TIME 1000u
#ifdef WL_MLO
-#define IFACE_MAX_CNT 7
+#define IFACE_MAX_CNT 7u
#else
-#define IFACE_MAX_CNT 5
+#define IFACE_MAX_CNT 5u
#endif /* WL_MLO */
-#define WL_SCAN_CONNECT_DWELL_TIME_MS 100
-#define WL_SCAN_JOIN_PROBE_INTERVAL_MS 20
-#define WL_SCAN_JOIN_ACTIVE_DWELL_TIME_MS 320
-#define WL_BCAST_SCAN_JOIN_ACTIVE_DWELL_TIME_MS 80
-#define WL_SCAN_JOIN_PASSIVE_DWELL_TIME_MS 400
-#define WL_AF_TX_MAX_RETRY 5
-#define WL_AF_TX_MIN_RETRY 3
+#define WL_SCAN_CONNECT_DWELL_TIME_MS 100u
+#define WL_SCAN_JOIN_PROBE_INTERVAL_MS 20u
+#define WL_SCAN_JOIN_ACTIVE_DWELL_TIME_MS 320u
+#define WL_BCAST_SCAN_JOIN_ACTIVE_DWELL_TIME_MS 80u
+#define WL_SCAN_JOIN_PASSIVE_DWELL_TIME_MS 400u
+#define WL_AF_TX_MAX_RETRY 5u
+#define WL_AF_TX_MIN_RETRY 3u
-#define WL_AF_SEARCH_TIME_MAX 450
-#define WL_AF_TX_EXTRA_TIME_MAX 200
+#define WL_AF_SEARCH_TIME_MAX 450u
+#define WL_AF_TX_EXTRA_TIME_MAX 200u
-#define WL_SCAN_TIMER_INTERVAL_MS 10000 /* Scan timeout */
+#define WL_SCAN_TIMER_INTERVAL_MS 10000u /* Scan timeout */
/* For devices in non-rsdb mode , need to add 2G scan time also */
#define WL_SCAN_TIMER_INTERVAL_MS_NON_RSDB 2000u
-#define WL_RSDB_MODE_MIMO 0
-#define WL_RSDB_MODE_RSDB 1u
+#define WL_RSDB_MODE_MIMO 0u
+#define WL_RSDB_MODE_RSDB 1u
#ifdef WL_NAN
-#define WL_SCAN_TIMER_INTERVAL_MS_NAN 15000 /* Scan timeout */
+#define WL_SCAN_TIMER_INTERVAL_MS_NAN 15000u /* Scan timeout */
#endif /* WL_NAN */
#ifdef WL_6G_BAND
/* additional scan timeout for 6GHz, 6000msec */
-#define WL_SCAN_TIMER_INTERVAL_MS_6G 6000
+#define WL_SCAN_TIMER_INTERVAL_MS_6G 6000u
#define CHSPEC_TO_WLC_BAND(chspec) (CHSPEC_IS2G(chspec) ? WLC_BAND_2G : CHSPEC_IS5G(chspec) ? \
WLC_BAND_5G : WLC_BAND_6G)
@@ -947,16 +948,17 @@ entry = container_of((ptr), type, member); \
/* DPP Public Action Frame types */
enum wl_dpp_ftype {
- DPP_AUTH_REQ = 0,
- DPP_AUTH_RESP = 1,
- DPP_AUTH_CONF = 2,
- DPP_PEER_DISC_REQ = 5,
- DPP_PEER_DISC_RESP = 6,
- DPP_PKEX_EX_REQ = 7,
- DPP_PKEX_EX_RESP = 8,
- DPP_PKEX_COMMIT_REVEAL_REQ = 9,
- DPP_PKEX_COMMIT_REVEAL_RESP = 10,
- DPP_CONFIGURATION_RESULT = 11
+ DPP_AUTH_REQ = 0,
+ DPP_AUTH_RESP = 1,
+ DPP_AUTH_CONF = 2,
+ DPP_PEER_DISC_REQ = 5,
+ DPP_PEER_DISC_RESP = 6,
+ DPP_PKEX_EX_REQ = 7,
+ DPP_PKEX_EX_RESP = 8,
+ DPP_PKEX_COMMIT_REVEAL_REQ = 9,
+ DPP_PKEX_COMMIT_REVEAL_RESP = 10,
+ DPP_CONFIGURATION_RESULT = 11,
+ DPP_CONFIGURATION_STATUS_RESULT = 12
};
/* DPP Public Action Frame */
@@ -3757,7 +3759,7 @@ extern s32 wl_cfg80211_suspend(struct bcm_cfg80211 *cfg);
#endif /* !OEM_ANDROID */
bool wl_cfg80211_is_dpp_frame(void *frame, u32 frame_len);
const char *get_dpp_pa_ftype(enum wl_dpp_ftype ftype);
-bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len);
+bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len, u8 *frame_type);
extern bool wl_cfg80211_find_gas_subtype(u8 subtype, u16 adv_id, u8* data, s32 len);
#ifdef ESCAN_CHANNEL_CACHE
extern void update_roam_cache(struct bcm_cfg80211 *cfg, int ioctl_ver);
diff --git a/wl_cfg_btcoex.c b/wl_cfg_btcoex.c
index 7179f72..202bda9 100644
--- a/wl_cfg_btcoex.c
+++ b/wl_cfg_btcoex.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver - Dongle Host Driver (DHD) related
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfg_cellavoid.c b/wl_cfg_cellavoid.c
index 445eaee..0130f58 100644
--- a/wl_cfg_cellavoid.c
+++ b/wl_cfg_cellavoid.c
@@ -1,7 +1,7 @@
/*
* Cellular channel avoidance implementation
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfg_cellavoid.h b/wl_cfg_cellavoid.h
index 5f0dbe8..c238085 100644
--- a/wl_cfg_cellavoid.h
+++ b/wl_cfg_cellavoid.h
@@ -1,7 +1,7 @@
/*
* Cellular channel avoidance implementation
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgnan.c b/wl_cfgnan.c
index 47145dc..7b16468 100644
--- a/wl_cfgnan.c
+++ b/wl_cfgnan.c
@@ -1,7 +1,7 @@
/*
* Neighbor Awareness Networking
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgnan.h b/wl_cfgnan.h
index 96c5c82..45c3b0b 100644
--- a/wl_cfgnan.h
+++ b/wl_cfgnan.h
@@ -1,7 +1,7 @@
/*
* Neighbor Awareness Networking
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgp2p.c b/wl_cfgp2p.c
index 9b4b15a..bfa70e8 100644
--- a/wl_cfgp2p.c
+++ b/wl_cfgp2p.c
@@ -1,7 +1,7 @@
/*
* Linux cfgp2p driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -178,6 +178,7 @@ bool wl_cfgp2p_is_p2p_action(void *frame, u32 frame_len)
bool wl_cfgp2p_is_gas_action(void *frame, u32 frame_len)
{
wifi_p2psd_gas_pub_act_frame_t *sd_act_frm;
+ u8 gas_frame_type = WL_PUB_AF_STYPE_INVALID;
if (frame == NULL)
return false;
@@ -188,7 +189,7 @@ bool wl_cfgp2p_is_gas_action(void *frame, u32 frame_len)
if (sd_act_frm->category != P2PSD_ACTION_CATEGORY)
return false;
- if (wl_cfg80211_is_dpp_gas_action(frame, frame_len)) {
+ if (wl_cfg80211_is_dpp_gas_action(frame, frame_len, &gas_frame_type)) {
return true;
}
diff --git a/wl_cfgp2p.h b/wl_cfgp2p.h
index 86807bf..4788ad0 100644
--- a/wl_cfgp2p.h
+++ b/wl_cfgp2p.h
@@ -1,7 +1,7 @@
/*
* Linux cfgp2p driver
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgscan.c b/wl_cfgscan.c
index 6b32834..1fae40c 100644
--- a/wl_cfgscan.c
+++ b/wl_cfgscan.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 driver scan related code
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -2932,6 +2932,13 @@ static void _wl_cfgscan_cancel_scan(struct bcm_cfg80211 *cfg)
}
}
+ if (cfg->loc.in_progress) {
+ /* listen on channel uses passive scan */
+ wl_cfgscan_scan_abort(cfg);
+ WL_INFORM_MEM(("listen on channel aborted! \n"));
+ /* fall through to check scan states */
+ }
+
if (!cfg->scan_request && !cfg->sched_scan_req) {
/* No scans in progress */
WL_INFORM_MEM(("No scan in progress\n"));
diff --git a/wl_cfgscan.h b/wl_cfgscan.h
index 6eccbff..baf1754 100644
--- a/wl_cfgscan.h
+++ b/wl_cfgscan.h
@@ -1,7 +1,7 @@
/*
* Header for Linux cfg80211 scan
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgvendor.c b/wl_cfgvendor.c
index 943be3c..872a9b6 100644
--- a/wl_cfgvendor.c
+++ b/wl_cfgvendor.c
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 Vendor Extension Code
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -9992,7 +9992,11 @@ static int wl_cfgvendor_dbg_start_pkt_fate_monitoring(struct wiphy *wiphy,
dhd_pub_t *dhd_pub = cfg->pub;
int ret;
+#ifdef DHD_PKT_MON_DUAL_STA
+ ret = dhd_os_dbg_attach_pkt_monitor_dev(dhd_pub, wdev_to_ndev(wdev));
+#else
ret = dhd_os_dbg_attach_pkt_monitor(dhd_pub);
+#endif /* DHD_PKT_MON_DUAL_STA */
if (unlikely(ret)) {
WL_ERR(("failed to start pkt fate monitoring, ret=%d", ret));
}
@@ -10000,11 +10004,21 @@ static int wl_cfgvendor_dbg_start_pkt_fate_monitoring(struct wiphy *wiphy,
return ret;
}
+#ifdef DHD_PKT_MON_DUAL_STA
+typedef int (*dbg_mon_get_pkts_t) (dhd_pub_t *dhdp, int ifidx,
+ void __user *user_buf, uint16 req_count, uint16 *resp_count);
+#else
typedef int (*dbg_mon_get_pkts_t) (dhd_pub_t *dhdp, void __user *user_buf,
uint16 req_count, uint16 *resp_count);
+#endif /* DHD_PKT_MON_DUAL_STA */
+#ifdef DHD_PKT_MON_DUAL_STA
+static int __wl_cfgvendor_dbg_get_pkt_fates(struct wiphy *wiphy, struct wireless_dev *wdev,
+ const void *data, int len, dbg_mon_get_pkts_t dbg_mon_get_pkts)
+#else
static int __wl_cfgvendor_dbg_get_pkt_fates(struct wiphy *wiphy,
const void *data, int len, dbg_mon_get_pkts_t dbg_mon_get_pkts)
+#endif /* DHD_PKT_MON_DUAL_STA */
{
struct bcm_cfg80211 *cfg = wiphy_priv(wiphy);
dhd_pub_t *dhd_pub = cfg->pub;
@@ -10013,6 +10027,23 @@ static int __wl_cfgvendor_dbg_get_pkt_fates(struct wiphy *wiphy,
void __user *user_buf = NULL;
uint16 req_count = 0, resp_count = 0;
int ret, tmp, type, mem_needed;
+#ifdef DHD_PKT_MON_DUAL_STA
+ struct net_device *ndev = wdev_to_ndev(wdev);
+ int ifidx;
+
+ if (!ndev) {
+ WL_ERR(("ndev is null\n"));
+ ret = -EINVAL;
+ goto exit;
+ }
+
+ ifidx = dhd_net2idx(dhd_pub->info, ndev);
+ if (ifidx == DHD_BAD_IF || ifidx >= PKT_MON_IF_MAX) {
+ WL_ERR(("invalid ifidx:%d\n", ifidx));
+ ret = -EINVAL;
+ goto exit;
+ }
+#endif /* DHD_PKT_MON_DUAL_STA */
nla_for_each_attr(iter, data, len, tmp) {
type = nla_type(iter);
@@ -10037,7 +10068,11 @@ static int __wl_cfgvendor_dbg_get_pkt_fates(struct wiphy *wiphy,
goto exit;
}
+#ifdef DHD_PKT_MON_DUAL_STA
+ ret = dbg_mon_get_pkts(dhd_pub, ifidx, user_buf, req_count, &resp_count);
+#else
ret = dbg_mon_get_pkts(dhd_pub, user_buf, req_count, &resp_count);
+#endif /* DHD_PKT_MON_DUAL_STA */
if (unlikely(ret)) {
WL_ERR(("failed to get packets, ret:%d \n", ret));
goto exit;
@@ -10076,8 +10111,13 @@ static int wl_cfgvendor_dbg_get_tx_pkt_fates(struct wiphy *wiphy,
{
int ret;
+#ifdef DHD_PKT_MON_DUAL_STA
+ ret = __wl_cfgvendor_dbg_get_pkt_fates(wiphy, wdev, data, len,
+ dhd_os_dbg_monitor_get_tx_pkts);
+#else
ret = __wl_cfgvendor_dbg_get_pkt_fates(wiphy, data, len,
dhd_os_dbg_monitor_get_tx_pkts);
+#endif /* DHD_PKT_MON_DUAL_STA */
if (unlikely(ret)) {
WL_ERR(("failed to get tx packets, ret:%d \n", ret));
}
@@ -10090,8 +10130,13 @@ static int wl_cfgvendor_dbg_get_rx_pkt_fates(struct wiphy *wiphy,
{
int ret;
+#ifdef DHD_PKT_MON_DUAL_STA
+ ret = __wl_cfgvendor_dbg_get_pkt_fates(wiphy, wdev, data, len,
+ dhd_os_dbg_monitor_get_rx_pkts);
+#else
ret = __wl_cfgvendor_dbg_get_pkt_fates(wiphy, data, len,
dhd_os_dbg_monitor_get_rx_pkts);
+#endif /* DHD_PKT_MON_DUAL_STA */
if (unlikely(ret)) {
WL_ERR(("failed to get rx packets, ret:%d \n", ret));
}
diff --git a/wl_cfgvendor.h b/wl_cfgvendor.h
index ab95783..61ffaac 100644
--- a/wl_cfgvendor.h
+++ b/wl_cfgvendor.h
@@ -1,7 +1,7 @@
/*
* Linux cfg80211 Vendor Extension Code
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgvif.c b/wl_cfgvif.c
index 7bca124..f075167 100644
--- a/wl_cfgvif.c
+++ b/wl_cfgvif.c
@@ -1,7 +1,7 @@
/*
* Wifi Virtual Interface implementaion
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_cfgvif.h b/wl_cfgvif.h
index fee676f..60eaa0d 100644
--- a/wl_cfgvif.h
+++ b/wl_cfgvif.h
@@ -1,7 +1,7 @@
/*
* Wifi Virtual Interface implementaion
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_linux_mon.c b/wl_linux_mon.c
index 1c3b2e5..641bbc4 100644
--- a/wl_linux_mon.c
+++ b/wl_linux_mon.c
@@ -1,7 +1,7 @@
/*
* Broadcom Dongle Host Driver (DHD), Linux monitor network interface
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wl_roam.c b/wl_roam.c
index 84ddbd1..42d1a4a 100644
--- a/wl_roam.c
+++ b/wl_roam.c
@@ -1,7 +1,7 @@
/*
* Linux roam cache
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
diff --git a/wldev_common.c b/wldev_common.c
index 572c252..b234755 100644
--- a/wldev_common.c
+++ b/wldev_common.c
@@ -1,7 +1,7 @@
/*
* Common function shared by Linux WEXT, cfg80211 and p2p drivers
*
- * Copyright (C) 2023, Broadcom.
+ * Copyright (C) 2024, Broadcom.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
@@ -817,7 +817,6 @@ int wldev_get_datarate(struct net_device *dev, int *datarate)
extern chanspec_t
wl_chspec_driver_to_host(chanspec_t chanspec);
-#define WL_EXTRA_BUF_MAX 2048
int wldev_get_mode(
struct net_device *dev, uint8 *cap, uint8 caplen)
{