From 04ed02a95d06df36b6bc790174432f33243bfc28 Mon Sep 17 00:00:00 2001 From: Hana Huang Date: Thu, 29 Feb 2024 01:26:19 +0000 Subject: Revert "bcmdhd: DHD QPR3 release for bcm4398, 2024.02.01 Version : 103.10.243.26" This reverts commit 6f9df113eeb0fe67289bfa0a7201314e4bdc9705. Reason for revert: We got urgent SSR in P23 Bug:327185608 Change-Id: I3b11541b870dd3d0a6bd02eed6f9dbc096f629b1 --- Kbuild | 4 +- Kconfig | 2 +- Makefile | 2 +- aiutils.c | 2 +- bcm_app_utils.c | 2 +- bcm_l2_filter.c | 2 +- bcmbloom.c | 2 +- bcmcapext.c | 2 +- bcmevent.c | 2 +- bcmsdh.c | 2 +- bcmsdh_linux.c | 2 +- bcmsdh_sdmmc.c | 2 +- bcmsdh_sdmmc_linux.c | 2 +- bcmsdspi.h | 2 +- bcmsdspi_linux.c | 2 +- bcmsdstd.h | 2 +- bcmspibrcm.c | 2 +- bcmstdlib_s.c | 2 +- bcmutils.c | 2 +- bcmwifi_channels.c | 2 +- bcmxtlv.c | 2 +- dhd.h | 5 +- dhd_bitpack.h | 2 +- dhd_bus.h | 8 +- dhd_buzzz.h | 2 +- dhd_cdc.c | 2 +- dhd_cfg80211.c | 2 +- dhd_cfg80211.h | 2 +- dhd_cfg_dscp_policy.c | 2 +- dhd_cfg_dscp_policy.h | 2 +- dhd_cfg_dscp_policy_api.h | 2 +- dhd_common.c | 2 +- dhd_custom_cis.c | 2 +- dhd_custom_google.c | 2 +- dhd_custom_gpio.c | 2 +- dhd_custom_memprealloc.c | 2 +- dhd_custom_msm.c | 2 +- dhd_dbg.h | 2 +- dhd_dbg_ring.c | 2 +- dhd_dbg_ring.h | 2 +- dhd_debug.c | 398 ++++++++++++---------------------------- dhd_debug.h | 109 +++-------- dhd_debug_linux.c | 92 ++-------- dhd_event_log_filter.c | 2 +- dhd_event_log_filter.h | 2 +- dhd_flowring.c | 2 +- dhd_flowring.h | 2 +- dhd_ip.c | 2 +- dhd_ip.h | 2 +- dhd_linux.c | 89 +++------ dhd_linux.h | 3 +- dhd_linux_exportfs.c | 2 +- dhd_linux_lb.c | 2 +- dhd_linux_pktdump.c | 2 +- dhd_linux_pktdump.h | 2 +- dhd_linux_platdev.c | 2 +- dhd_linux_priv.h | 2 +- dhd_linux_rx.c | 7 +- dhd_linux_sched.c | 2 +- dhd_linux_sock_qos.h | 2 +- dhd_linux_tx.c | 2 +- dhd_linux_tx.h | 2 +- dhd_linux_wq.c | 2 +- dhd_linux_wq.h | 2 +- dhd_log_dump.c | 2 +- dhd_log_dump.h | 2 +- dhd_logger.h | 2 +- dhd_mschdbg.c | 2 +- dhd_mschdbg.h | 2 +- dhd_msgbuf.c | 19 +- dhd_pcie.c | 100 +--------- dhd_pcie.h | 2 +- dhd_pcie_linux.c | 2 +- dhd_pktlog.c | 2 +- dhd_pktlog.h | 2 +- dhd_plat.h | 2 +- dhd_pno.c | 2 +- dhd_pno.h | 2 +- dhd_proto.h | 2 +- dhd_rtt.c | 2 +- dhd_rtt.h | 2 +- dhd_sdio.c | 2 +- dhd_statlog.c | 2 +- dhd_statlog.h | 2 +- dhd_wlfc.c | 2 +- dhd_wlfc.h | 2 +- frag.c | 2 +- fwpkg_utils.c | 2 +- hal_nci_cmn.c | 2 +- hnd_pktpool.c | 2 +- hnd_pktq.c | 2 +- hndpmu_dhd.c | 2 +- hndpmu_priv.h | 2 +- include/802.11.h | 2 +- include/802.11ac.h | 2 +- include/802.11ah.h | 2 +- include/802.11ax.h | 2 +- include/802.11az.h | 2 +- include/802.11brcm.h | 2 +- include/802.11cust.h | 2 +- include/802.11e.h | 2 +- include/802.11k.h | 2 +- include/802.11n.h | 2 +- include/802.11owe.h | 2 +- include/802.11s.h | 2 +- include/802.11u.h | 2 +- include/802.11v.h | 2 +- include/802.11w.h | 2 +- include/802.11wapi.h | 2 +- include/802.11wfa.h | 2 +- include/802.11z.h | 2 +- include/802.1d.h | 2 +- include/802.3.h | 2 +- include/aidmp.h | 2 +- include/bcm_l2_filter.h | 2 +- include/bcm_mpool_pub.h | 2 +- include/bcm_ring.h | 2 +- include/bcm_wifishark.h | 2 +- include/bcmarp.h | 2 +- include/bcmbloom.h | 2 +- include/bcmcapext.h | 2 +- include/bcmcdc.h | 2 +- include/bcmdefs.h | 2 +- include/bcmdevs.h | 2 +- include/bcmdevs_legacy.h | 2 +- include/bcmdhcp.h | 2 +- include/bcmendian.h | 2 +- include/bcmerror.h | 2 +- include/bcmeth.h | 2 +- include/bcmevent.h | 2 +- include/bcmicmp.h | 2 +- include/bcmigmp.h | 2 +- include/bcmiov.h | 2 +- include/bcmip.h | 2 +- include/bcmipv6.h | 2 +- include/bcmmsgbuf.h | 2 +- include/bcmnvram.h | 2 +- include/bcmpcie.h | 2 +- include/bcmpcispi.h | 2 +- include/bcmperf.h | 2 +- include/bcmproto.h | 2 +- include/bcmrand.h | 2 +- include/bcmsdbus.h | 2 +- include/bcmsdh.h | 2 +- include/bcmsdh_sdmmc.h | 2 +- include/bcmsdpcm.h | 2 +- include/bcmspi.h | 2 +- include/bcmspibrcm.h | 2 +- include/bcmsrom_fmt.h | 2 +- include/bcmstdlib_s.h | 2 +- include/bcmtcp.h | 2 +- include/bcmtlv.h | 2 +- include/bcmudp.h | 2 +- include/bcmutils.h | 2 +- include/bcmwifi_channels.h | 2 +- include/bcmwifi_rates.h | 2 +- include/bcmwifi_rspec.h | 2 +- include/brcm_nl80211.h | 2 +- include/dbus.h | 2 +- include/dhd_daemon.h | 2 +- include/dhdioctl.h | 2 +- include/dngl_rtlv.h | 2 +- include/dngl_stats.h | 2 +- include/dngl_wlhdr.h | 2 +- include/dnglevent.h | 2 +- include/dnglioctl.h | 2 +- include/dscp_policy.h | 2 +- include/eap.h | 2 +- include/eapol.h | 2 +- include/epivers.h | 14 +- include/etd.h | 93 +--------- include/ethernet.h | 2 +- include/event_log.h | 2 +- include/event_log_api_strings.h | 2 +- include/event_log_payload.h | 2 +- include/event_log_set.h | 2 +- include/event_log_tag.h | 2 +- include/event_trace.h | 2 +- include/ewp.h | 2 +- include/fils.h | 2 +- include/frag.h | 2 +- include/ftm_ioctl.h | 2 +- include/fwpkg_utils.h | 2 +- include/hal_nci_cmn.h | 2 +- include/hnd_armtrap.h | 2 +- include/hnd_cons.h | 2 +- include/hnd_debug.h | 2 +- include/hnd_pktpool.h | 2 +- include/hnd_pktq.h | 2 +- include/hnddap.h | 2 +- include/hndlhl.h | 2 +- include/hndoobr.h | 2 +- include/hndpmu_dhd.h | 2 +- include/hndsoc.h | 2 +- include/linux_osl.h | 2 +- include/linux_pkt.h | 2 +- include/linuxerrmap.h | 2 +- include/linuxver.h | 2 +- include/lpflags.h | 2 +- include/mbo.h | 2 +- include/miniopt.h | 2 +- include/msf.h | 2 +- include/msgtrace.h | 2 +- include/nan.h | 2 +- include/nci.h | 2 +- include/osl.h | 2 +- include/osl_decl.h | 2 +- include/osl_ext.h | 2 +- include/p2p.h | 2 +- include/packed_section_end.h | 2 +- include/packed_section_start.h | 2 +- include/pcicfg.h | 2 +- include/pcie_core.h | 2 +- include/phy_event_log_payload.h | 2 +- include/sbchipc.h | 2 +- include/sbconfig.h | 2 +- include/sbgci.h | 2 +- include/sbhndarm.h | 2 +- include/sbhnddma.h | 2 +- include/sbpcmcia.h | 2 +- include/sbsdio.h | 2 +- include/sbsdpcmdev.h | 2 +- include/sbsocram.h | 2 +- include/sbsreng.h | 2 +- include/sbsysmem.h | 2 +- include/sdio.h | 2 +- include/sdioh.h | 2 +- include/sdiovar.h | 2 +- include/sdspi.h | 2 +- include/siutils.h | 2 +- include/spid.h | 2 +- include/trxhdr.h | 2 +- include/typedefs.h | 2 +- include/verhoeff_chksum.h | 2 +- include/vlan.h | 2 +- include/wldev_common.h | 2 +- include/wlfc_proto.h | 2 +- include/wlioctl.h | 2 +- include/wlioctl_defs.h | 2 +- include/wlioctl_utils.h | 2 +- include/wpa.h | 2 +- include/wps.h | 2 +- linux_osl.c | 2 +- linux_osl_priv.h | 2 +- linux_pkt.c | 2 +- linuxerrmap.c | 2 +- nciutils.c | 2 +- nciutils_host.c | 2 +- pcie_core_host.c | 2 +- siutils.c | 2 +- siutils_host.c | 2 +- siutils_priv.h | 2 +- verhoeff_chksum.c | 2 +- wb_regon_coordinator.c | 2 +- wb_regon_coordinator.h | 2 +- wifi_stats.h | 2 +- wl_android.c | 2 +- wl_android.h | 2 +- wl_cfg80211.c | 64 +------ wl_cfg80211.h | 76 ++++---- wl_cfg_btcoex.c | 2 +- wl_cfg_cellavoid.c | 2 +- wl_cfg_cellavoid.h | 2 +- wl_cfgnan.c | 2 +- wl_cfgnan.h | 2 +- wl_cfgp2p.c | 5 +- wl_cfgp2p.h | 2 +- wl_cfgscan.c | 9 +- wl_cfgscan.h | 2 +- wl_cfgvendor.c | 47 +---- wl_cfgvendor.h | 2 +- wl_cfgvif.c | 2 +- wl_cfgvif.h | 2 +- wl_linux_mon.c | 2 +- wl_roam.c | 2 +- wldev_common.c | 3 +- 276 files changed, 528 insertions(+), 1131 deletions(-) diff --git a/Kbuild b/Kbuild index cdf21ff..6b88299 100644 --- a/Kbuild +++ b/Kbuild @@ -1,6 +1,6 @@ # bcmdhd # -# Copyright (C) 2024, Broadcom. +# Copyright (C) 2023, 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 -DDHD_PKT_MON_DUAL_STA +DHDCFLAGS += -DDBG_PKT_MON -DDBG_PKT_MON_INIT_DEFAULT DHDCFLAGS += -DDNGL_EVENT_SUPPORT -DPARSE_DONGLE_HOST_EVENT DHDCFLAGS += -DWL_CFGVENDOR_SEND_ALERT_EVENT diff --git a/Kconfig b/Kconfig index 55ab76a..6952777 100644 --- a/Kconfig +++ b/Kconfig @@ -1,5 +1,5 @@ # -# Copyright (C) 2024, Broadcom. +# Copyright (C) 2023, Broadcom. # # Unless 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 df5079b..8651638 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2024, Broadcom. +# Copyright (C) 2023, Broadcom. # # Unless 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 bcb3088..dd5a97b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 67192d8..bb21c47 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0193fe2..8c2afb8 100644 --- a/bcm_l2_filter.c +++ b/bcm_l2_filter.c @@ -1,7 +1,7 @@ /* * L2 Filter handling functions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b53359c..a279a48 100644 --- a/bcmbloom.c +++ b/bcmbloom.c @@ -1,7 +1,7 @@ /* * Bloom filter support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6a81fe8..ac78088 100644 --- a/bcmcapext.c +++ b/bcmcapext.c @@ -1,7 +1,7 @@ /* * wlu capext procesing. Shared between DHD and WLU tool. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4a5cff5..76101b6 100644 --- a/bcmevent.c +++ b/bcmevent.c @@ -1,7 +1,7 @@ /* * bcmevent read-only data shared by kernel or app layers * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 da9e398..a5fd258 100644 --- a/bcmsdh.c +++ b/bcmsdh.c @@ -2,7 +2,7 @@ * BCMSDH interface glue * implement bcmsdh API for SDIOH driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3d99bf8..c1beab2 100644 --- a/bcmsdh_linux.c +++ b/bcmsdh_linux.c @@ -1,7 +1,7 @@ /* * SDIO access interface for drivers - linux specific (pci only) * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 9c6455d..27700c9 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 be1d6ce..d5a076a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f8badf9..4480d46 100644 --- a/bcmsdspi.h +++ b/bcmsdspi.h @@ -1,7 +1,7 @@ /* * SD-SPI Protocol Conversion - BCMSDH->SPI Translation Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 bd398e6..4a4a751 100644 --- a/bcmsdspi_linux.c +++ b/bcmsdspi_linux.c @@ -1,7 +1,7 @@ /* * Broadcom SPI Host Controller Driver - Linux Per-port * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2c21b3b..105b7d3 100644 --- a/bcmsdstd.h +++ b/bcmsdstd.h @@ -1,7 +1,7 @@ /* * 'Standard' SDIO HOST CONTROLLER driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d1bf263..01fe106 100644 --- a/bcmspibrcm.c +++ b/bcmspibrcm.c @@ -1,7 +1,7 @@ /* * Broadcom BCMSDH to gSPI Protocol Conversion Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ebc3619..74060d3 100644 --- a/bcmstdlib_s.c +++ b/bcmstdlib_s.c @@ -1,7 +1,7 @@ /* * Broadcom Secure Standard Library. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 110704b..32cf6d1 100644 --- a/bcmutils.c +++ b/bcmutils.c @@ -1,7 +1,7 @@ /* * Driver O/S-independent utility routines * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cb50ce1..58fd987 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a7be0ab..057cc14 100644 --- a/bcmxtlv.c +++ b/bcmxtlv.c @@ -1,7 +1,7 @@ /* * Driver O/S-independent utility routines * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 29698f9..731e011 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) 2024, Broadcom. + * Copyright (C) 2023, 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 192u +#define DHD_MEMDUMP_LONGSTR_LEN 180 struct cntry_locales_custom { char iso_abbrev[WLC_CNTRY_BUF_SZ]; /* ISO 3166-1 country abbreviation */ @@ -1651,7 +1651,6 @@ 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 a7c048b..090a028 100644 --- a/dhd_bitpack.h +++ b/dhd_bitpack.h @@ -1,7 +1,7 @@ /* * Bit packing and Base64 utils for EWP * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 09b48df..5aacad9 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -318,9 +318,6 @@ 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); @@ -468,9 +465,6 @@ 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 9bf5ea5..d0ce285 100644 --- a/dhd_buzzz.h +++ b/dhd_buzzz.h @@ -2,7 +2,7 @@ #define _DHD_BUZZZ_H_INCLUDED_ /* - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a7fa15f..2654a84 100644 --- a/dhd_cdc.c +++ b/dhd_cdc.c @@ -1,7 +1,7 @@ /* * DHD Protocol Module for CDC and BDC. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b2d7bbd..7b73c59 100644 --- a/dhd_cfg80211.c +++ b/dhd_cfg80211.c @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver - Dongle Host Driver (DHD) related * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f1a404e..8e08ab0 100644 --- a/dhd_cfg80211.h +++ b/dhd_cfg80211.h @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver - Dongle Host Driver (DHD) related * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8a630d3..fa45fe9 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 82f8a63..bad9b7c 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f971132..5339f40 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 9bfcb4f..0cc10f0 100644 --- a/dhd_common.c +++ b/dhd_common.c @@ -1,7 +1,7 @@ /* * Broadcom Dongle Host Driver (DHD), common DHD core. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 13e4cb4..eda0ceb 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0619f4d..6902b27 100644 --- a/dhd_custom_google.c +++ b/dhd_custom_google.c @@ -1,7 +1,7 @@ /* * Customer HW 2 dependant file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d60568b..8c9a3b0 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0efe702..dbe7018 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7901d5b..7dcf81e 100644 --- a/dhd_custom_msm.c +++ b/dhd_custom_msm.c @@ -1,7 +1,7 @@ /* * Platform Dependent file for Qualcomm MSM/APQ * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c60ad12..abcc617 100644 --- a/dhd_dbg.h +++ b/dhd_dbg.h @@ -1,7 +1,7 @@ /* * Debug/trace/assert driver definitions for Dongle Host Driver. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b7ab5b4..fc16f3c 100644 --- a/dhd_dbg_ring.c +++ b/dhd_dbg_ring.c @@ -1,7 +1,7 @@ /* * DHD debug ring API and structures - implementation * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c1284b7..310367d 100644 --- a/dhd_dbg_ring.h +++ b/dhd_dbg_ring.h @@ -1,7 +1,7 @@ /* * DHD debug ring header file - interface * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2b8b8c3..f7e981d 100644 --- a/dhd_debug.c +++ b/dhd_debug.c @@ -1,7 +1,7 @@ /* * DHD debugability support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, 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, int ifidx); +void dhd_schedule_aml_disable(dhd_pub_t *dhdp); 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, int ifidx) +void dhd_schedule_aml_disable(dhd_pub_t *dhdp) { - 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)); + 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__)); 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, int ifidx, +dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, 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,26 +2072,21 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx, unsigned long flags; if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); return -EINVAL; } DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags); - 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]; + 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; 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, " - "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)); + "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_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); /* return success as the intention was to initialize packet monitor */ return BCME_OK; @@ -2102,7 +2097,7 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx, 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 ifidx:%d\n", __FUNCTION__, ifidx)); + "dhd_dbg_tx_report_t\n", __FUNCTION__)); ret = -ENOMEM; goto fail; } @@ -2111,23 +2106,23 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx, 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 ifidx:%d\n", __FUNCTION__, ifidx)); + "dhd_dbg_tx_info_t\n", __FUNCTION__)); ret = -ENOMEM; goto fail; } - 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_report = tx_report; + dhdp->dbg->pkt_mon.tx_report->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[ifidx] = PKT_MON_ATTACHED; - dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_ATTACHED; + dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_ATTACHED; + dhdp->dbg->pkt_mon.tx_status_state = 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 ifidx:%d\n", __FUNCTION__, ifidx)); + "dhd_dbg_rx_report_t\n", __FUNCTION__)); ret = -ENOMEM; goto fail; } @@ -2136,18 +2131,17 @@ dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, int ifidx, 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 ifidx:%d\n", __FUNCTION__, ifidx)); + "dhd_dbg_rx_info_t\n", __FUNCTION__)); ret = -ENOMEM; goto fail; } - 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_report = rx_report; + dhdp->dbg->pkt_mon.rx_report->rx_pkts = rx_pkts; dhdp->dbg->pkt_mon.rx_pkt_mon = rx_pkt_mon; - dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_ATTACHED; + dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_ATTACHED; DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); - DHD_PKT_MON(("%s(): packet monitor attach succeeded ifidx:%d\n", - __FUNCTION__, ifidx)); + DHD_PKT_MON(("%s(): packet monitor attach succeeded\n", __FUNCTION__)); return ret; fail: @@ -2160,12 +2154,12 @@ fail: alloc_len = sizeof(*tx_report); MFREE(dhdp->osh, tx_report, alloc_len); } - dhdp->dbg->pkt_mon.tx_report[ifidx] = NULL; - dhdp->dbg->pkt_mon.tx_report[ifidx]->tx_pkts = NULL; + dhdp->dbg->pkt_mon.tx_report = NULL; + dhdp->dbg->pkt_mon.tx_report->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[ifidx] = PKT_MON_DETACHED; - dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_DETACHED; /* rx packet monitoring */ if (rx_pkts) { @@ -2176,19 +2170,18 @@ fail: alloc_len = sizeof(*rx_report); MFREE(dhdp->osh, rx_report, alloc_len); } - dhdp->dbg->pkt_mon.rx_report[ifidx] = NULL; - dhdp->dbg->pkt_mon.rx_report[ifidx]->rx_pkts = NULL; + dhdp->dbg->pkt_mon.rx_report = NULL; + dhdp->dbg->pkt_mon.rx_report->rx_pkts = NULL; dhdp->dbg->pkt_mon.rx_pkt_mon = NULL; - dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_DETACHED; DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); - DHD_ERROR(("%s(): packet monitor attach failed ifidx:%d\n", - __FUNCTION__, ifidx)); + DHD_ERROR(("%s(): packet monitor attach failed\n", __FUNCTION__)); return ret; } int -dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx) +dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp) { dhd_dbg_tx_report_t *tx_report; dhd_dbg_rx_report_t *rx_report; @@ -2198,48 +2191,35 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx) unsigned long flags; if (!dhdp || !dhdp->dbg) { - 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))); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); 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[ifidx]; - tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx]; - rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx]; + 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; 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, " - "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)); + "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_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); return -EINVAL; } - 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; + 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; - tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx]; - rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx]; + tx_report = dhdp->dbg->pkt_mon.tx_report; + rx_report = dhdp->dbg->pkt_mon.rx_report; if (!tx_report || !rx_report) { DHD_PKT_MON(("%s(): tx_report=%p, rx_report=%p\n", __FUNCTION__, tx_report, rx_report)); @@ -2248,9 +2228,9 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx) } - 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]; + 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; /* Safe to free packets as state pkt_state is STARTING */ __dhd_dbg_free_tx_pkts(dhdp, tx_report->tx_pkts, tx_report->pkt_pos); @@ -2260,20 +2240,20 @@ dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx) /* reset array postion */ tx_report->pkt_pos = 0; tx_report->status_pos = 0; - dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STARTED; - dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STARTED; + dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STARTED; + dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STARTED; rx_report->pkt_pos = 0; - dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STARTED; + dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STARTED; DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); - DHD_PKT_MON(("%s(): packet monitor started ifidx:%d\n", __FUNCTION__, ifidx)); + DHD_PKT_MON(("%s(): packet monitor started\n", __FUNCTION__)); return BCME_OK; } int -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_monitor_tx_pkts(dhd_pub_t *dhdp, 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; @@ -2283,28 +2263,15 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, fra unsigned long flags; if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); 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[ifidx]; + tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state; if (PKT_MON_STARTED(tx_pkt_state)) { - tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx]; + tx_report = dhdp->dbg->pkt_mon.tx_report; pkt_pos = tx_report->pkt_pos; if (!PKT_MON_PKT_FULL(pkt_pos)) { @@ -2341,11 +2308,11 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, fra if (aml) { PKTFREE(dhdp->osh, pkt, TRUE); } - dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_STOPPED; + dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_STOPPED; DHD_PKT_MON(("%s(): tx pkt logging stopped, reached " - "max limit ifidx:%d\n", __FUNCTION__, ifidx)); + "max limit\n", __FUNCTION__)); if (dhdp->aml_enable) { - dhd_schedule_aml_disable(dhdp, ifidx); + dhd_schedule_aml_disable(dhdp); } } } @@ -2355,7 +2322,7 @@ dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, fra } int -dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, +dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status) { dhd_dbg_tx_report_t *tx_report; @@ -2369,28 +2336,15 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, unsigned long flags; if (!dhdp || !dhdp->dbg) { - DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n", - __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); 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[ifidx]; + tx_status_state = dhdp->dbg->pkt_mon.tx_status_state; if (PKT_MON_STARTED(tx_status_state)) { - tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx]; + tx_report = dhdp->dbg->pkt_mon.tx_report; pkt_pos = tx_report->pkt_pos; status_pos = tx_report->status_pos; @@ -2437,7 +2391,7 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, } } } else { - dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_STOPPED; + dhdp->dbg->pkt_mon.tx_status_state = PKT_MON_STOPPED; DHD_PKT_MON(("%s(): tx_status logging stopped, reached " "max limit\n", __FUNCTION__)); } @@ -2448,7 +2402,7 @@ dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, } int -dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, bool aml) +dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml) { dhd_dbg_rx_report_t *rx_report; dhd_dbg_rx_info_t *rx_pkts; @@ -2458,28 +2412,15 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, unsigned long flags; if (!dhdp || !dhdp->dbg) { - DHD_ERROR(("%s(): dhdp=%p, dhdp->dbg=%p ifidx:%d\n", - __FUNCTION__, dhdp, (dhdp ? dhdp->dbg : NULL), ifidx)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); 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[ifidx]; + rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state; if (PKT_MON_STARTED(rx_pkt_state)) { - rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx]; + rx_report = dhdp->dbg->pkt_mon.rx_report; pkt_pos = rx_report->pkt_pos; if (!PKT_MON_PKT_FULL(pkt_pos)) { @@ -2503,11 +2444,11 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, if (aml) { PKTFREE(dhdp->osh, pkt, TRUE); } - dhdp->dbg->pkt_mon.rx_pkt_state[ifidx] = PKT_MON_STOPPED; + dhdp->dbg->pkt_mon.rx_pkt_state = PKT_MON_STOPPED; DHD_PKT_MON(("%s(): rx pkt logging stopped, reached " - "max limit ifidx:%d\n", __FUNCTION__, ifidx)); + "max limit\n", __FUNCTION__)); if (dhdp->aml_enable) { - dhd_schedule_aml_disable(dhdp, ifidx); + dhd_schedule_aml_disable(dhdp); } } } @@ -2517,7 +2458,7 @@ dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, } int -dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx) +dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp) { dhd_dbg_pkt_mon_state_t tx_pkt_state; dhd_dbg_pkt_mon_state_t tx_status_state; @@ -2525,20 +2466,15 @@ dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx) unsigned long flags; if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); return -EINVAL; } DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags); - 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]; + 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; if (PKT_MON_DETACHED(tx_pkt_state) || PKT_MON_DETACHED(tx_status_state) || PKT_MON_DETACHED(rx_pkt_state)) { @@ -2548,12 +2484,12 @@ dhd_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx) DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); return -EINVAL; } - 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; + 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; DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); - DHD_PKT_MON(("%s(): packet monitor stopped ifidx:%d\n", __FUNCTION__, ifidx)); + DHD_PKT_MON(("%s(): packet monitor stopped\n", __FUNCTION__)); return BCME_OK; } @@ -2583,8 +2519,7 @@ __dhd_dbg_convert_fate(wifi_tx_packet_fate fate) } int -dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx, - void __user *user_buf, +dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf, uint16 req_count, uint16 *resp_count) { dhd_dbg_tx_report_t *tx_report; @@ -2602,30 +2537,25 @@ dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx, BCM_REFERENCE(cptr); if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); return -EINVAL; } DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags); - tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state[ifidx]; - tx_status_state = dhdp->dbg->pkt_mon.tx_status_state[ifidx]; + tx_pkt_state = dhdp->dbg->pkt_mon.tx_pkt_state; + tx_status_state = dhdp->dbg->pkt_mon.tx_status_state; 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 ifidx:%d\n", - __FUNCTION__, tx_pkt_state, tx_status_state, ifidx)); + "tx_pkt_state=%d, tx_status_state=%d\n", __FUNCTION__, + tx_pkt_state, tx_status_state)); DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); return -EINVAL; } count = 0; - tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx]; + tx_report = dhdp->dbg->pkt_mon.tx_report; ori_tx_pkt = tx_report->tx_pkts; pkt_count = MIN(req_count, tx_report->status_pos); @@ -2722,8 +2652,7 @@ dhd_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx, } int -dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx, - void __user *user_buf, +dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf, uint16 req_count, uint16 *resp_count) { dhd_dbg_rx_report_t *rx_report; @@ -2740,27 +2669,22 @@ dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx, BCM_REFERENCE(cptr); if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); return -EINVAL; } DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags); - rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state[ifidx]; + rx_pkt_state = dhdp->dbg->pkt_mon.rx_pkt_state; if (!PKT_MON_ATTACHED(rx_pkt_state)) { DHD_PKT_MON(("%s(): packet fetch is not allowed , " - "rx_pkt_state=%d ifidx:%d\n", __FUNCTION__, rx_pkt_state, ifidx)); + "rx_pkt_state=%d\n", __FUNCTION__, rx_pkt_state)); DHD_PKT_MON_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); return -EINVAL; } count = 0; - rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx]; + rx_report = dhdp->dbg->pkt_mon.rx_report; ori_rx_pkt = rx_report->rx_pkts; pkt_count = MIN(req_count, rx_report->pkt_pos); @@ -2842,7 +2766,7 @@ dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx, } int -dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp, int ifidx) +dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp) { dhd_dbg_tx_report_t *tx_report; dhd_dbg_rx_report_t *rx_report; @@ -2852,138 +2776,64 @@ dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp, int ifidx) unsigned long flags; if (!dhdp || !dhdp->dbg) { - 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)); + DHD_PKT_MON(("%s(): dhdp=%p, dhdp->dbg=%p\n", __FUNCTION__, + dhdp, (dhdp ? dhdp->dbg : NULL))); return -EINVAL; } DHD_PKT_MON_LOCK(dhdp->dbg->pkt_mon_lock, flags); - 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]; + 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; 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, " - "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(("%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_UNLOCK(dhdp->dbg->pkt_mon_lock, flags); return -EINVAL; } - tx_report = dhdp->dbg->pkt_mon.tx_report[ifidx]; - rx_report = dhdp->dbg->pkt_mon.rx_report[ifidx]; + tx_report = dhdp->dbg->pkt_mon.tx_report; + rx_report = dhdp->dbg->pkt_mon.rx_report; /* free and de-initalize tx packet monitoring */ - dhdp->dbg->pkt_mon.tx_pkt_state[ifidx] = PKT_MON_DETACHED; - dhdp->dbg->pkt_mon.tx_status_state[ifidx] = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.tx_pkt_state = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.tx_status_state = 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[ifidx]->tx_pkts = NULL; + dhdp->dbg->pkt_mon.tx_report->tx_pkts = NULL; } MFREE(dhdp->osh, tx_report, sizeof(*tx_report)); - dhdp->dbg->pkt_mon.tx_report[ifidx] = NULL; + dhdp->dbg->pkt_mon.tx_report = 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[ifidx] = PKT_MON_DETACHED; + dhdp->dbg->pkt_mon.rx_pkt_state = 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[ifidx]->rx_pkts = NULL; + dhdp->dbg->pkt_mon.rx_report->rx_pkts = NULL; } MFREE(dhdp->osh, rx_report, sizeof(*rx_report)); - dhdp->dbg->pkt_mon.rx_report[ifidx] = NULL; + dhdp->dbg->pkt_mon.rx_report = 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 ifidx:%d\n", - __FUNCTION__, ifidx)); + DHD_PKT_MON(("%s(): packet monitor detach succeeded\n", __FUNCTION__)); 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) @@ -2994,23 +2844,19 @@ dhd_dbg_monitor_eapol_str(msg_eapol_t type, char *buf, uint32 buflen) * completion header. */ bool -dhd_dbg_process_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, +dhd_dbg_process_tx_status(dhd_pub_t *dhdp, 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, int ifidx, void *pkt, +dhd_dbg_process_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status) { return TRUE; diff --git a/dhd_debug.h b/dhd_debug.h index 8d2d5e5..bd4fb80 100644 --- a/dhd_debug.h +++ b/dhd_debug.h @@ -1,7 +1,7 @@ /* * DHD debugability header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -26,7 +26,6 @@ #include #include #include -#include enum { /* Feature set */ @@ -686,25 +685,19 @@ 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, int ifidx, void *pkt, uint32 pktid, +typedef int (*dbg_mon_tx_pkts_t) (dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml); -typedef int (*dbg_mon_tx_status_t) (dhd_pub_t *dhdp, int ifidx, void *pkt, +typedef int (*dbg_mon_tx_status_t) (dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status); -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 int (*dbg_mon_rx_pkts_t) (dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml); typedef struct dhd_dbg_pkt_mon { - 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]; + 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; /* call backs */ dbg_mon_tx_pkts_t tx_pkt_mon; @@ -750,65 +743,32 @@ 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), 0, (pkt), \ + (dhdp)->dbg->pkt_mon.tx_pkt_mon((dhdp), (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), 0, (pkt), (pktid), (status)); \ + (dhdp)->dbg->pkt_mon.tx_status_mon((dhdp), (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), 0, (pkt), (type), (aml)); \ + (dhdp)->dbg->pkt_mon.rx_pkt_mon((dhdp), (pkt), (type), (aml)); \ } \ } \ } while (0); #define DHD_DBG_PKT_MON_START(dhdp) \ - dhd_os_dbg_start_pkt_monitor((dhdp), 0); + dhd_os_dbg_start_pkt_monitor((dhdp)); #define DHD_DBG_PKT_MON_STOP(dhdp) \ - dhd_os_dbg_stop_pkt_monitor((dhdp), 0); -#endif /* DHD_PKT_MON_DUAL_STA */ + dhd_os_dbg_stop_pkt_monitor((dhdp)); #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) @@ -924,29 +884,26 @@ 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, int ifidx, +extern int dhd_dbg_attach_pkt_monitor(dhd_pub_t *dhdp, 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, int ifidx); -extern int dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, +extern int dhd_dbg_start_pkt_monitor(dhd_pub_t *dhdp); +extern int dhd_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml); -extern int dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, +extern int dhd_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status); -extern int dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, +extern int dhd_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml); -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, +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, uint16 req_count, uint16 *resp_count); -extern int dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, int ifidx, void __user *user_buf, +extern int dhd_dbg_monitor_get_rx_pkts(dhd_pub_t *dhdp, void __user *user_buf, uint16 req_count, uint16 *resp_count); -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); +extern int dhd_dbg_detach_pkt_monitor(dhd_pub_t *dhdp); #endif /* DBG_PKT_MON */ -extern bool dhd_dbg_process_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, +extern bool dhd_dbg_process_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status); /* os wrapper function */ @@ -971,26 +928,18 @@ 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, int ifidx); -extern int dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, +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, uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml); -extern int dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, +extern int dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status); -extern int dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, +extern int dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml); -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_stop_pkt_monitor(dhd_pub_t *dhdp); 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 dcb8503..a696faa 100644 --- a/dhd_debug_linux.c +++ b/dhd_debug_linux.c @@ -1,7 +1,7 @@ /* * DHD debugability Linux os layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -457,114 +457,62 @@ 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) { - 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; + 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 -dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp, int ifidx) +dhd_os_dbg_start_pkt_monitor(dhd_pub_t *dhdp) { - return dhd_dbg_start_pkt_monitor(dhdp, ifidx); + return dhd_dbg_start_pkt_monitor(dhdp); } int -dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, +dhd_os_dbg_monitor_tx_pkts(dhd_pub_t *dhdp, void *pkt, uint32 pktid, frame_type type, uint8 mgmt_acked, bool aml) { - return dhd_dbg_monitor_tx_pkts(dhdp, ifidx, pkt, pktid, type, mgmt_acked, + return dhd_dbg_monitor_tx_pkts(dhdp, pkt, pktid, type, mgmt_acked, aml); } int -dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, int ifidx, void *pkt, uint32 pktid, +dhd_os_dbg_monitor_tx_status(dhd_pub_t *dhdp, void *pkt, uint32 pktid, uint16 status) { - return dhd_dbg_monitor_tx_status(dhdp, ifidx, pkt, pktid, status); + return dhd_dbg_monitor_tx_status(dhdp, pkt, pktid, status); } int -dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, int ifidx, void *pkt, frame_type type, +dhd_os_dbg_monitor_rx_pkts(dhd_pub_t *dhdp, void *pkt, frame_type type, bool aml) { - return dhd_dbg_monitor_rx_pkts(dhdp, ifidx, pkt, type, aml); + return dhd_dbg_monitor_rx_pkts(dhdp, pkt, type, aml); } int -dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp, int ifidx) +dhd_os_dbg_stop_pkt_monitor(dhd_pub_t *dhdp) { - return dhd_dbg_stop_pkt_monitor(dhdp, ifidx); + return dhd_dbg_stop_pkt_monitor(dhdp); } -#ifdef DHD_PKT_MON_DUAL_STA int -dhd_os_dbg_attach_pkt_monitor_dev(dhd_pub_t *dhdp, struct net_device *ndev) +dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, void __user *user_buf, + uint16 req_count, uint16 *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; + return dhd_dbg_monitor_get_tx_pkts(dhdp, user_buf, req_count, resp_count); } int -dhd_os_dbg_monitor_get_tx_pkts(dhd_pub_t *dhdp, int ifidx, - void __user *user_buf, uint16 req_count, uint16 *resp_count) +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_tx_pkts(dhdp, ifidx, user_buf, req_count, resp_count); + return dhd_dbg_monitor_get_rx_pkts(dhdp, 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) { - 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; + return dhd_dbg_detach_pkt_monitor(dhdp); } #endif /* DBG_PKT_MON */ diff --git a/dhd_event_log_filter.c b/dhd_event_log_filter.c index 93ef86d..2d0db6a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a226319..290b97f 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cd711b7..aeb31d3 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 37007cd..44c3d0b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d536c44..b175a12 100644 --- a/dhd_ip.c +++ b/dhd_ip.c @@ -1,7 +1,7 @@ /* * IP Packet Parser Module. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e94ab12..6866896 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 df645bb..c257308 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -282,10 +282,6 @@ static void dhd_blk_tsfl_handler(struct work_struct * work); #include #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; @@ -2513,6 +2509,9 @@ 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); @@ -2611,6 +2610,9 @@ 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++) { @@ -5293,20 +5295,14 @@ 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_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifidx) +dhd_80211_mon_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; @@ -5318,25 +5314,8 @@ dhd_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifid 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 (direction) { + if (hdr.flags & WL_AML_F_DIRECTION) { bool ack = !!(hdr.flags & WL_AML_F_ACKED); #ifdef DHD_PKT_LOGGING /* Send Tx-ed 4HS packet in dongle to packet logging buffer */ @@ -5349,13 +5328,9 @@ dhd_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifid #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 not refer to skb */ + /* skb can be null here. do null check if skb is used */ } else { #ifdef DHD_PKT_LOGGING /* Send Rx-ed 4HS packet in dongle to packet logging buffer */ @@ -5367,13 +5342,9 @@ dhd_dbg_monitor_pkt(dhd_pub_t *dhdp, host_rxbuf_cmpl_t* msg, void *pkt, int ifid #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 not refer to skb */ + /* skb can be null here. do null check if skb is used */ } } #endif /* DBG_PKT_MON && PCIE_FULL_DONGLE */ @@ -6926,9 +6897,6 @@ 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", @@ -17896,6 +17864,16 @@ 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__)); @@ -20267,10 +20245,6 @@ 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; @@ -20290,9 +20264,6 @@ 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)) { @@ -20449,27 +20420,13 @@ 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); - 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); + sprintf(&dhdp->memdump_str[strlen(dhdp->memdump_str)], "_%.79s_%.79s", + pc_fn, lr_fn); } DHD_PRINT(("%s: dump reason: %s\n", __FUNCTION__, dhdp->memdump_str)); diff --git a/dhd_linux.h b/dhd_linux.h index a3398ed..4ec7e5f 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -73,7 +73,6 @@ #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 48f3cab..a9ef069 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ee15f62..f234c8a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f8a5aa3..aab7df1 100644 --- a/dhd_linux_pktdump.c +++ b/dhd_linux_pktdump.c @@ -1,7 +1,7 @@ /* * Packet dump helper functions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c9aae5a..52bd41b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f9e7fdd..41c92d5 100644 --- a/dhd_linux_platdev.c +++ b/dhd_linux_platdev.c @@ -1,7 +1,7 @@ /* * Linux platform device for DHD WLAN adapter * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d224768..3514d57 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f493458..4298628 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -773,12 +773,7 @@ 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 5fe1b92..d7d116b 100644 --- a/dhd_linux_sched.c +++ b/dhd_linux_sched.c @@ -1,7 +1,7 @@ /* * Expose some of the kernel scheduler routines * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7fd6aa8..8abb171 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a052456..d668fba 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e243e8a..53ac66d 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 699159e..aad3caa 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cceba83..8794e48 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 78f619c..eea3f27 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 23bd398..467beba 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 844d332..46ba2a7 100644 --- a/dhd_logger.h +++ b/dhd_logger.h @@ -8,7 +8,7 @@ * * The interface is OS independent/common. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 062b3f3..8d23bd7 100644 --- a/dhd_mschdbg.c +++ b/dhd_mschdbg.c @@ -1,7 +1,7 @@ /* * DHD debugability support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 54f1561..4f1c279 100644 --- a/dhd_mschdbg.h +++ b/dhd_mschdbg.h @@ -1,7 +1,7 @@ /* * DHD debugability header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ecbdd10..91b1506 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -1124,6 +1124,9 @@ 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 */ @@ -8329,8 +8332,7 @@ 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_dbg_monitor_pkt(dhd, msg, pkt, - msg->cmn_hdr.if_id); + dhd_80211_mon_pkt(dhd, msg, pkt, ifidx); continue; } #endif /* DBG_PKT_MON */ @@ -9275,9 +9277,8 @@ 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, ltoh32(txstatus->compl_aggr_hdr.if_id), - pkt, pktid, - ltoh16(txstatus->compl_aggr_hdr.status) & WLFC_CTL_PKTFLAG_MASK); + pkt_fate = dhd_dbg_process_tx_status(dhd, 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) & @@ -9526,7 +9527,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, flow_info->ifindex, pkt, pktid, + pkt_fate = dhd_dbg_process_tx_status(dhd, pkt, pktid, ltoh16(txstatus->compl_hdr.status) & WLFC_CTL_PKTFLAG_MASK); #ifdef DHD_PKT_LOGGING if (dhd->d11_tx_status) { @@ -10081,11 +10082,7 @@ 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 3f1c98c..7821b92 100644 --- a/dhd_pcie.c +++ b/dhd_pcie.c @@ -1,7 +1,7 @@ /* * DHD Bus Module for PCIE * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -17357,51 +17357,6 @@ 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 @@ -19414,59 +19369,6 @@ 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 172a9c5..37824a4 100644 --- a/dhd_pcie.h +++ b/dhd_pcie.h @@ -1,7 +1,7 @@ /* * Linux DHD Bus Module for PCIE * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 9e9900e..5a625ef 100644 --- a/dhd_pcie_linux.c +++ b/dhd_pcie_linux.c @@ -1,7 +1,7 @@ /* * Linux DHD Bus Module for PCIE * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 22b4f4d..688df59 100644 --- a/dhd_pktlog.c +++ b/dhd_pktlog.c @@ -1,7 +1,7 @@ /* * DHD debugability packet logging support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c6a4299..2155693 100644 --- a/dhd_pktlog.h +++ b/dhd_pktlog.h @@ -1,7 +1,7 @@ /* * DHD debugability packet logging header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0e4465b..0c42811 100644 --- a/dhd_plat.h +++ b/dhd_plat.h @@ -1,7 +1,7 @@ /* * DHD Linux platform header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 068867b..7c09d06 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 693d468..464e14d 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5a195ec..99786af 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b93d657..d5cad4d 100644 --- a/dhd_rtt.c +++ b/dhd_rtt.c @@ -1,7 +1,7 @@ /* * Broadcom Dongle Host Driver (DHD), RTT * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 79bdfe6..fce6522 100644 --- a/dhd_rtt.h +++ b/dhd_rtt.h @@ -1,7 +1,7 @@ /* * Broadcom Dongle Host Driver (DHD), RTT * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5ca4af3..54c68d4 100644 --- a/dhd_sdio.c +++ b/dhd_sdio.c @@ -1,7 +1,7 @@ /* * DHD Bus Module for SDIO * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e802e5c..7beb7ad 100644 --- a/dhd_statlog.c +++ b/dhd_statlog.c @@ -1,7 +1,7 @@ /* * DHD debugability: Status Information Logging support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 89c1d38..c69b609 100644 --- a/dhd_statlog.h +++ b/dhd_statlog.h @@ -1,7 +1,7 @@ /* * DHD debugability: Header file for the Status Information Logging * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 658bb47..8ae138a 100644 --- a/dhd_wlfc.c +++ b/dhd_wlfc.c @@ -1,7 +1,7 @@ /* * DHD PROP_TXSTATUS Module. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e523dca..994510c 100644 --- a/dhd_wlfc.h +++ b/dhd_wlfc.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a41a1fd..8a4991e 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e438e0e..700367b 100644 --- a/fwpkg_utils.c +++ b/fwpkg_utils.c @@ -1,7 +1,7 @@ /* * Firmware package functionality * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 eeb58cb..09fface 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 edcaac3..042a882 100644 --- a/hnd_pktpool.c +++ b/hnd_pktpool.c @@ -1,7 +1,7 @@ /* * HND generic packet pool operation primitives * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 86f41a9..8a959b1 100644 --- a/hnd_pktq.c +++ b/hnd_pktq.c @@ -1,7 +1,7 @@ /* * HND generic pktq operation primitives * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 925323c..479e30f 100644 --- a/hndpmu_dhd.c +++ b/hndpmu_dhd.c @@ -1,7 +1,7 @@ /* * Misc utility routines for DHD's accessing PMU core. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 023dff8..2e0f54a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b45586c..6dffe86 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4cea8f1..566aea2 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 9a066a5..b8f6dfe 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 125c8cf..1fe2428 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b40af68..658dd67 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3471d06..35e0fd9 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6fe5041..943136b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a0cb628..be4b693 100644 --- a/include/802.11e.h +++ b/include/802.11e.h @@ -1,7 +1,7 @@ /* * 802.11e protocol header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ca598da..35d5f21 100644 --- a/include/802.11k.h +++ b/include/802.11k.h @@ -8,7 +8,7 @@ * RM - same as RRM? * NGBR - Neighbor Report * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 042f428..d058d3b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2528d70..fcd1ac6 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0e8bab6..b3d2b3d 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2ce750f..c0b8c0b 100644 --- a/include/802.11u.h +++ b/include/802.11u.h @@ -4,7 +4,7 @@ * * IW - InterWorking * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 250ba4a..7961b70 100644 --- a/include/802.11v.h +++ b/include/802.11v.h @@ -8,7 +8,7 @@ * BSSTRANS - BSS Management Transition * TIMBC - TIM Broadcast * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d975bca..e003f1a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f98e05f..de6e923 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 caa8aef..11526c8 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f433116..9e31acc 100644 --- a/include/802.11z.h +++ b/include/802.11z.h @@ -4,7 +4,7 @@ * * TDLS - Tunneled DLS * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c66548c..ff81a73 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 280e7c2..bef4682 100644 --- a/include/802.3.h +++ b/include/802.3.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to 802.3 * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5683dca..97da3d9 100644 --- a/include/aidmp.h +++ b/include/aidmp.h @@ -1,7 +1,7 @@ /* * Broadcom AMBA Interconnect definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4ce44f3..32f0756 100644 --- a/include/bcm_l2_filter.h +++ b/include/bcm_l2_filter.h @@ -1,7 +1,7 @@ /* * L2 Filter handling functions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 590afbc..3fc0a1a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 877d0c2..96ddd51 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 07b7f43..05efe60 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 408e2d8..8c73aa2 100644 --- a/include/bcmarp.h +++ b/include/bcmarp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to ARP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a04e497..216eee8 100644 --- a/include/bcmbloom.h +++ b/include/bcmbloom.h @@ -1,7 +1,7 @@ /* * Bloom filter support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cf7796e..52a6be5 100644 --- a/include/bcmcapext.h +++ b/include/bcmcapext.h @@ -1,7 +1,7 @@ /* * bcm capext header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e21c2ce..ed27688 100644 --- a/include/bcmcdc.h +++ b/include/bcmcdc.h @@ -4,7 +4,7 @@ * * Definitions subject to change without notice. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4fd115b..1d26469 100644 --- a/include/bcmdefs.h +++ b/include/bcmdefs.h @@ -1,7 +1,7 @@ /* * Misc system wide definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b00a1a1..1847ddd 100644 --- a/include/bcmdevs.h +++ b/include/bcmdevs.h @@ -1,7 +1,7 @@ /* * Broadcom device-specific manifest constants. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a4541e3..b73df33 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4a03bba..1efbbff 100644 --- a/include/bcmdhcp.h +++ b/include/bcmdhcp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to DHCP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 055ba69..fdf72d0 100644 --- a/include/bcmendian.h +++ b/include/bcmendian.h @@ -1,7 +1,7 @@ /* * Byte order utilities * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b5869bf..c4ff6d4 100644 --- a/include/bcmerror.h +++ b/include/bcmerror.h @@ -1,7 +1,7 @@ /* * Common header file for all error codes. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 310c687..c56353f 100644 --- a/include/bcmeth.h +++ b/include/bcmeth.h @@ -1,7 +1,7 @@ /* * Broadcom Ethernettype protocol definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8917b86..a6b2af9 100644 --- a/include/bcmevent.h +++ b/include/bcmevent.h @@ -3,7 +3,7 @@ * * Dependencies: bcmeth.h * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 1ce5d61..d10c6c8 100644 --- a/include/bcmicmp.h +++ b/include/bcmicmp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to ICMP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 03ba00d..2a6bd5b 100644 --- a/include/bcmigmp.h +++ b/include/bcmigmp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to IGMP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 97c5d4f..6931c3d 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6db98ae..0c56336 100644 --- a/include/bcmip.h +++ b/include/bcmip.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to IP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f2843fc..5b53491 100644 --- a/include/bcmipv6.h +++ b/include/bcmipv6.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to Neighbor Discovery Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 02d9828..50c2d36 100644 --- a/include/bcmmsgbuf.h +++ b/include/bcmmsgbuf.h @@ -4,7 +4,7 @@ * * Definitions subject to change without notice. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 216370f..9dc2b22 100644 --- a/include/bcmnvram.h +++ b/include/bcmnvram.h @@ -1,7 +1,7 @@ /* * NVRAM variable manipulation * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f11c4f7..cc95195 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c34c764..dd55189 100644 --- a/include/bcmpcispi.h +++ b/include/bcmpcispi.h @@ -1,7 +1,7 @@ /* * Broadcom PCI-SPI Host Controller Register Definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ae7c732..b4771d8 100644 --- a/include/bcmperf.h +++ b/include/bcmperf.h @@ -1,7 +1,7 @@ /* * Performance counters software interface. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 688c1d0..8be62aa 100644 --- a/include/bcmproto.h +++ b/include/bcmproto.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to IP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 fc476ff..c59f834 100644 --- a/include/bcmrand.h +++ b/include/bcmrand.h @@ -1,7 +1,7 @@ /* * bcmrand.h. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d109d3f..90c0a98 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 102d27b..32772e2 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d960160..8345cbf 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 60854ca..2573b56 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6491d53..ca64229 100644 --- a/include/bcmspi.h +++ b/include/bcmspi.h @@ -1,7 +1,7 @@ /* * Broadcom SPI Low-Level Hardware Driver API * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2684da7..241aa03 100644 --- a/include/bcmspibrcm.h +++ b/include/bcmspibrcm.h @@ -1,7 +1,7 @@ /* * SD-SPI Protocol Conversion - BCMSDH->gSPI Translation Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 df3a186..8f379d4 100644 --- a/include/bcmsrom_fmt.h +++ b/include/bcmsrom_fmt.h @@ -1,7 +1,7 @@ /* * SROM format definition. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 db6a94e..459ce86 100644 --- a/include/bcmstdlib_s.h +++ b/include/bcmstdlib_s.h @@ -1,7 +1,7 @@ /* * Broadcom Secure Standard Library. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 09f90c9..573b300 100644 --- a/include/bcmtcp.h +++ b/include/bcmtcp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to TCP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 24e7ecd..57410c0 100644 --- a/include/bcmtlv.h +++ b/include/bcmtlv.h @@ -1,7 +1,7 @@ /* * TLV and XTLV support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 65eabe9..b920003 100644 --- a/include/bcmudp.h +++ b/include/bcmudp.h @@ -1,7 +1,7 @@ /* * Fundamental constants relating to UDP Protocol * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ea4d851..fcd9925 100644 --- a/include/bcmutils.h +++ b/include/bcmutils.h @@ -1,7 +1,7 @@ /* * Misc useful os-independent macros and functions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 905f574..cad62bb 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 9d24681..6c7e694 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 1044c62..c0044f7 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a8aed83..3cba705 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 27d07a5..ca5651a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3bde2ea..d92796b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 07668a5..88f212a 100644 --- a/include/dhdioctl.h +++ b/include/dhdioctl.h @@ -5,7 +5,7 @@ * * Definitions subject to change without notice. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d0fa55b..d49d8ca 100644 --- a/include/dngl_rtlv.h +++ b/include/dngl_rtlv.h @@ -1,7 +1,7 @@ /* * Interface definitions for reversed TLVs * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e1d4780..453955f 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f7511f2..33b664e 100644 --- a/include/dngl_wlhdr.h +++ b/include/dngl_wlhdr.h @@ -1,7 +1,7 @@ /* * Dongle WL Header definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c4f4934..acc1adf 100644 --- a/include/dnglevent.h +++ b/include/dnglevent.h @@ -3,7 +3,7 @@ * * Dependencies: bcmeth.h * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a9f0dcc..2d60499 100644 --- a/include/dnglioctl.h +++ b/include/dnglioctl.h @@ -1,7 +1,7 @@ /* * HND Run Time Environment ioctl. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 664e5ca..2d8da60 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7e84985..470f9c0 100644 --- a/include/eap.h +++ b/include/eap.h @@ -4,7 +4,7 @@ * See * RFC 2284: PPP Extensible Authentication Protocol (EAP) * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 584d77e..63614bc 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2841d26..f797167 100644 --- a/include/epivers.h +++ b/include/epivers.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, 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 26 +#define EPI_INCREMENTAL_NUMBER 21 #define EPI_BUILD_NUMBER 0 -#define EPI_VERSION 103, 10, 243, 26 +#define EPI_VERSION 103, 10, 243, 21 -#define EPI_VERSION_NUM 0x670af31a +#define EPI_VERSION_NUM 0x670af315 #define EPI_VERSION_DEV 103.10.243 /* Driver Version String, ASCII, 32 chars max */ #if defined (WLTEST) -#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405 WLTEST)" +#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692 WLTEST)" #elif (defined (BCMDBG_ASSERT) && \ !defined (BCMDBG_ASSERT_DISABLED) && \ !defined (ASSERT_FP_DISABLE)) -#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405 ASSRT)" +#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692 ASSRT)" #else -#define EPI_VERSION_STR "103.10.243.26 (wlan=r1051405)" +#define EPI_VERSION_STR "103.10.243.21 (wlan=r1042692)" #endif /* BCMINTERNAL */ #endif /* _epivers_h_ */ diff --git a/include/etd.h b/include/etd.h index 6af338c..603620a 100644 --- a/include/etd.h +++ b/include/etd.h @@ -1,7 +1,7 @@ /* * Extended Trap data component interface file. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -78,98 +78,9 @@ 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; @@ -770,7 +681,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 1168963..97fac2a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4553cde..c204d4b 100644 --- a/include/event_log.h +++ b/include/event_log.h @@ -1,7 +1,7 @@ /* * EVENT_LOG system definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b60c3e4..d61e569 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 14b7a5a..7360d1b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e5725d8..0006980 100644 --- a/include/event_log_set.h +++ b/include/event_log_set.h @@ -1,7 +1,7 @@ /* * EVENT_LOG system definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 caa0fec..d3118be 100644 --- a/include/event_log_tag.h +++ b/include/event_log_tag.h @@ -1,7 +1,7 @@ /* * EVENT_LOG system definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a3a7ed2..e26f9fc 100644 --- a/include/event_trace.h +++ b/include/event_trace.h @@ -1,7 +1,7 @@ /* * Trace log blocks sent over HBUS * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 12f38f8..5fc78ef 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7301994..84a6306 100644 --- a/include/fils.h +++ b/include/fils.h @@ -1,7 +1,7 @@ /* * Fundamental types and constants relating to FILS AUTHENTICATION * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 fdeb447..7a220f1 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 dc23146..e87e86f 100644 --- a/include/ftm_ioctl.h +++ b/include/ftm_ioctl.h @@ -1,7 +1,7 @@ /* * FTM module IOCTL structure definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b1da5e2..bde4bf3 100644 --- a/include/fwpkg_utils.h +++ b/include/fwpkg_utils.h @@ -1,7 +1,7 @@ /* * Firmware package defines * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a60d88b..33a9baa 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 fa8d3d2..5db2411 100644 --- a/include/hnd_armtrap.h +++ b/include/hnd_armtrap.h @@ -1,7 +1,7 @@ /* * HND arm trap handling. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7734ad4..5b98fa8 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5442426..e274e41 100644 --- a/include/hnd_debug.h +++ b/include/hnd_debug.h @@ -1,7 +1,7 @@ /* * HND Run Time Environment debug info area * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cc66729..75d013a 100644 --- a/include/hnd_pktpool.h +++ b/include/hnd_pktpool.h @@ -1,7 +1,7 @@ /* * HND generic packet pool operation primitives * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8481c4a..806559a 100644 --- a/include/hnd_pktq.h +++ b/include/hnd_pktq.h @@ -1,7 +1,7 @@ /* * HND generic pktq operation primitives * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ee4ba9a..fce70f8 100644 --- a/include/hnddap.h +++ b/include/hnddap.h @@ -1,7 +1,7 @@ /* * DAP(Debug Access Port) interface. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ae70826..df6bffd 100644 --- a/include/hndlhl.h +++ b/include/hndlhl.h @@ -1,7 +1,7 @@ /* * HND SiliconBackplane PMU support. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a2268e6..1e532a7 100644 --- a/include/hndoobr.h +++ b/include/hndoobr.h @@ -1,7 +1,7 @@ /* * HND OOBR interface header * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ec045f7..88d2e88 100644 --- a/include/hndpmu_dhd.h +++ b/include/hndpmu_dhd.h @@ -1,7 +1,7 @@ /* * PMU core access APIs for DHD. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 bf17924..fcf73c0 100644 --- a/include/hndsoc.h +++ b/include/hndsoc.h @@ -1,7 +1,7 @@ /* * Broadcom HND chip & on-chip-interconnect-related definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c45b8ca..56e2aaf 100644 --- a/include/linux_osl.h +++ b/include/linux_osl.h @@ -1,7 +1,7 @@ /* * Linux OS Independent Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 04a20b5..71a5554 100644 --- a/include/linux_pkt.h +++ b/include/linux_pkt.h @@ -1,7 +1,7 @@ /* * Linux Packet (skb) interface * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 27516a6..beb4172 100644 --- a/include/linuxerrmap.h +++ b/include/linuxerrmap.h @@ -1,7 +1,7 @@ /* * Linux Error mappings * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a2d3f16..b3a3c6c 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 1b1c13e..38bcf08 100644 --- a/include/lpflags.h +++ b/include/lpflags.h @@ -1,7 +1,7 @@ /* * Chip related low power flags * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 dcbf4bd..f65b1a9 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f11cc80..d095d66 100644 --- a/include/miniopt.h +++ b/include/miniopt.h @@ -1,7 +1,7 @@ /* * Command line options parser. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6c08d4e..1fa746d 100644 --- a/include/msf.h +++ b/include/msf.h @@ -1,7 +1,7 @@ /* * Common interface to MSF (multi-segment format) definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 287623a..ccc379f 100644 --- a/include/msgtrace.h +++ b/include/msgtrace.h @@ -1,7 +1,7 @@ /* * Trace messages sent over HBUS * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c8b345f..24a4def 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 dee6557..9ef8a9e 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3aff008..3362411 100644 --- a/include/osl.h +++ b/include/osl.h @@ -1,7 +1,7 @@ /* * OS Abstraction Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3fd8f5b..5ee4a24 100644 --- a/include/osl_decl.h +++ b/include/osl_decl.h @@ -1,7 +1,7 @@ /* * osl forward declarations * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ce76d30..67d11b7 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 adb18ae..75394d8 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6224198..70cc6ef 100644 --- a/include/packed_section_end.h +++ b/include/packed_section_end.h @@ -15,7 +15,7 @@ * #include * * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ecb39fd..b3890b5 100644 --- a/include/packed_section_start.h +++ b/include/packed_section_start.h @@ -15,7 +15,7 @@ * #include * * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5f7094b..2f7bf89 100644 --- a/include/pcicfg.h +++ b/include/pcicfg.h @@ -1,7 +1,7 @@ /* * pcicfg.h: PCI configuration constants and structures. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 90b7264..8177157 100644 --- a/include/pcie_core.h +++ b/include/pcie_core.h @@ -1,7 +1,7 @@ /* * BCM43XX PCIE core hardware definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 81d3f8b..1217df2 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d27fe05..b0ca95d 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 74b5247..163562e 100644 --- a/include/sbconfig.h +++ b/include/sbconfig.h @@ -1,7 +1,7 @@ /* * Broadcom SiliconBackplane hardware register definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 29c3b68..95f62ed 100644 --- a/include/sbgci.h +++ b/include/sbgci.h @@ -1,7 +1,7 @@ /* * SiliconBackplane GCI core hardware definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e1de740..9617782 100644 --- a/include/sbhndarm.h +++ b/include/sbhndarm.h @@ -1,7 +1,7 @@ /* * Broadcom SiliconBackplane ARM definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e097dea..4ae8a7b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 078f6d4..fb1bfde 100644 --- a/include/sbpcmcia.h +++ b/include/sbpcmcia.h @@ -1,7 +1,7 @@ /* * BCM43XX Sonics SiliconBackplane PCMCIA core hardware definitions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 61af47c..27e3b0f 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a2f97c4..f19af87 100644 --- a/include/sbsdpcmdev.h +++ b/include/sbsdpcmdev.h @@ -2,7 +2,7 @@ * Broadcom SiliconBackplane SDIO/PCMCIA hardware-specific * device core support * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 14735f2..17536db 100644 --- a/include/sbsocram.h +++ b/include/sbsocram.h @@ -1,7 +1,7 @@ /* * BCM47XX Sonics SiliconBackplane embedded ram core * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ddf5a7a..a583952 100644 --- a/include/sbsreng.h +++ b/include/sbsreng.h @@ -1,7 +1,7 @@ /* * Header file for save-restore HW * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8444a14..b5f6457 100644 --- a/include/sbsysmem.h +++ b/include/sbsysmem.h @@ -1,7 +1,7 @@ /* * SiliconBackplane System Memory core * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 4eedd0b..4110291 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f9a0969..e5ae7ed 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6faeb5c..3aa94da 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 47f5238..c0658ac 100644 --- a/include/sdspi.h +++ b/include/sdspi.h @@ -1,7 +1,7 @@ /* * SD-SPI Protocol Standard * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8a3ce0a..6e3010a 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a534554..96e96c7 100644 --- a/include/spid.h +++ b/include/spid.h @@ -1,7 +1,7 @@ /* * SPI device spec header file * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 d8c98c9..fdb9752 100644 --- a/include/trxhdr.h +++ b/include/trxhdr.h @@ -1,7 +1,7 @@ /* * TRX image file header format. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2af9654..606501b 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0718665..52fddf9 100644 --- a/include/verhoeff_chksum.h +++ b/include/verhoeff_chksum.h @@ -1,7 +1,7 @@ /* * Broadcom Verhoeff Checksum Library. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8c6d0e7..7f7a7e9 100644 --- a/include/vlan.h +++ b/include/vlan.h @@ -1,7 +1,7 @@ /* * 802.1Q VLAN protocol definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2020ae0..dd312c8 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c8d7577..3ff2171 100644 --- a/include/wlfc_proto.h +++ b/include/wlfc_proto.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 a7e74ef..9b10e0f 100644 --- a/include/wlioctl.h +++ b/include/wlioctl.h @@ -6,7 +6,7 @@ * * Definitions subject to change without notice. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 cfc1f1b..dcbf918 100644 --- a/include/wlioctl_defs.h +++ b/include/wlioctl_defs.h @@ -4,7 +4,7 @@ * * Definitions subject to change without notice. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 dd5256f..83e7f12 100644 --- a/include/wlioctl_utils.h +++ b/include/wlioctl_utils.h @@ -1,7 +1,7 @@ /* * Custom OID/ioctl related helper functions. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 1207b2d..1c8b2af 100644 --- a/include/wpa.h +++ b/include/wpa.h @@ -1,7 +1,7 @@ /* * Fundamental types and constants relating to WPA * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 77b32f0..9c1c948 100644 --- a/include/wps.h +++ b/include/wps.h @@ -1,7 +1,7 @@ /* * WPS IE definitions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b88b17a..3f672cf 100644 --- a/linux_osl.c +++ b/linux_osl.c @@ -1,7 +1,7 @@ /* * Linux OS Independent Layer * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 956d0cb..c575450 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 e7ddb7e..4b6b3d7 100644 --- a/linux_pkt.c +++ b/linux_pkt.c @@ -1,7 +1,7 @@ /* * Linux Packet (skb) interface * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 87ccf07..32fde67 100644 --- a/linuxerrmap.c +++ b/linuxerrmap.c @@ -1,7 +1,7 @@ /* * Linux Error codes * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 5f95f69..31d0fe5 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0471cb8..b5d9064 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ec861ee..c11d2ca 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 796e259..7a3139b 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 18d1624..93c87ce 100644 --- a/siutils_host.c +++ b/siutils_host.c @@ -3,7 +3,7 @@ * of the SiliconBackplane-based Broadcom chips. * For DHD only. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 bc25fbb..af5057f 100644 --- a/siutils_priv.h +++ b/siutils_priv.h @@ -1,7 +1,7 @@ /* * Include file private to the SOC Interconnect support files. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 55bd6bd..943e631 100644 --- a/verhoeff_chksum.c +++ b/verhoeff_chksum.c @@ -1,7 +1,7 @@ /* * Broadcom Verhoeff Checksum Library. * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 3e9b99c..07f401c 100644 --- a/wb_regon_coordinator.c +++ b/wb_regon_coordinator.c @@ -1,7 +1,7 @@ /* * DHD WiFi BT RegON Coordinator - WBRC * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 2f21ba3..819dfee 100644 --- a/wb_regon_coordinator.h +++ b/wb_regon_coordinator.h @@ -1,7 +1,7 @@ /* * DHD BT WiFi Coex RegON Coordinator - Interface * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 8667acf..eccc694 100644 --- a/wifi_stats.h +++ b/wifi_stats.h @@ -2,7 +2,7 @@ * Common stats definitions for clients of dongle * ports * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f018224..5f4fdb3 100644 --- a/wl_android.c +++ b/wl_android.c @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver - Android related functions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 6c34acf..4607d4f 100644 --- a/wl_android.h +++ b/wl_android.h @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver - Android related functions * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 ffc8db2..f44c074 100644 --- a/wl_cfg80211.c +++ b/wl_cfg80211.c @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -7642,14 +7642,10 @@ 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 */ @@ -7844,13 +7840,9 @@ 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 */ @@ -8011,13 +8003,9 @@ 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. @@ -10104,14 +10092,6 @@ 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; } @@ -11066,7 +11046,6 @@ 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; @@ -11119,7 +11098,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, &gas_frame_type)) { + (void *)action_frame->data, action_frame->len)) { config_af_params.max_tx_retry = WL_AF_TX_MAX_RETRY; af_params->dwell_time = WL_MED_DWELL_TIME; cfg->need_wait_afrx = true; @@ -11128,9 +11107,6 @@ 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))) { @@ -11216,8 +11192,10 @@ wl_cfg80211_send_action_frame(struct wiphy *wiphy, struct net_device *dev, } #endif - /* abort current scan/listen . */ - wl_cfgscan_cancel_scan(cfg); + /* if scan is ongoing, abort current scan. */ + if (wl_get_drv_status_all(cfg, SCANNING)) { + wl_cfgscan_cancel_scan(cfg); + } /* Abort P2P listen */ if (discover_cfgdev(cfgdev, cfg)) { @@ -14400,12 +14378,10 @@ 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), @@ -14425,15 +14401,10 @@ 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 */ @@ -15935,11 +15906,8 @@ 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) { @@ -15961,16 +15929,10 @@ 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); @@ -17180,11 +17142,9 @@ 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; @@ -17287,7 +17247,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, &gas_frame_type)) { + mgmt_frame_len - DOT11_MGMT_HDR_LEN)) { wl_clr_drv_status(cfg, WAITING_NEXT_ACT_FRM, ndev); /* Stop waiting for next AF. */ @@ -26067,10 +26027,6 @@ 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"; } @@ -26112,7 +26068,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, u8 *gas_frame_type) +bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len) { wl_dpp_gas_af_t *act_frm = (wl_dpp_gas_af_t *)frame; u32 len; @@ -26128,12 +26084,10 @@ bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len, u8 *gas_frame_typ 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 b6f56bf..f8ea094 100644 --- a/wl_cfg80211.h +++ b/wl_cfg80211.h @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -735,45 +735,44 @@ do { \ * It exceed the original 1024 limitation * so change WL_EXTRA_LEN_MAX to 2048 */ -#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 +#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 #ifdef WL_MLO -#define IFACE_MAX_CNT 7u +#define IFACE_MAX_CNT 7 #else -#define IFACE_MAX_CNT 5u +#define IFACE_MAX_CNT 5 #endif /* WL_MLO */ -#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_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_AF_SEARCH_TIME_MAX 450u -#define WL_AF_TX_EXTRA_TIME_MAX 200u +#define WL_AF_SEARCH_TIME_MAX 450 +#define WL_AF_TX_EXTRA_TIME_MAX 200 -#define WL_SCAN_TIMER_INTERVAL_MS 10000u /* Scan timeout */ +#define WL_SCAN_TIMER_INTERVAL_MS 10000 /* 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 0u -#define WL_RSDB_MODE_RSDB 1u +#define WL_RSDB_MODE_MIMO 0 +#define WL_RSDB_MODE_RSDB 1u #ifdef WL_NAN -#define WL_SCAN_TIMER_INTERVAL_MS_NAN 15000u /* Scan timeout */ +#define WL_SCAN_TIMER_INTERVAL_MS_NAN 15000 /* Scan timeout */ #endif /* WL_NAN */ #ifdef WL_6G_BAND /* additional scan timeout for 6GHz, 6000msec */ -#define WL_SCAN_TIMER_INTERVAL_MS_6G 6000u +#define WL_SCAN_TIMER_INTERVAL_MS_6G 6000 #define CHSPEC_TO_WLC_BAND(chspec) (CHSPEC_IS2G(chspec) ? WLC_BAND_2G : CHSPEC_IS5G(chspec) ? \ WLC_BAND_5G : WLC_BAND_6G) @@ -948,17 +947,16 @@ 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_CONFIGURATION_STATUS_RESULT = 12 + 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 Public Action Frame */ @@ -3759,7 +3757,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, u8 *frame_type); +bool wl_cfg80211_is_dpp_gas_action(void *frame, u32 frame_len); 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 202bda9..7179f72 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 0130f58..445eaee 100644 --- a/wl_cfg_cellavoid.c +++ b/wl_cfg_cellavoid.c @@ -1,7 +1,7 @@ /* * Cellular channel avoidance implementation * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 c238085..5f0dbe8 100644 --- a/wl_cfg_cellavoid.h +++ b/wl_cfg_cellavoid.h @@ -1,7 +1,7 @@ /* * Cellular channel avoidance implementation * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 7b16468..47145dc 100644 --- a/wl_cfgnan.c +++ b/wl_cfgnan.c @@ -1,7 +1,7 @@ /* * Neighbor Awareness Networking * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 45c3b0b..96c5c82 100644 --- a/wl_cfgnan.h +++ b/wl_cfgnan.h @@ -1,7 +1,7 @@ /* * Neighbor Awareness Networking * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 bfa70e8..9b4b15a 100644 --- a/wl_cfgp2p.c +++ b/wl_cfgp2p.c @@ -1,7 +1,7 @@ /* * Linux cfgp2p driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -178,7 +178,6 @@ 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; @@ -189,7 +188,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, &gas_frame_type)) { + if (wl_cfg80211_is_dpp_gas_action(frame, frame_len)) { return true; } diff --git a/wl_cfgp2p.h b/wl_cfgp2p.h index 4788ad0..86807bf 100644 --- a/wl_cfgp2p.h +++ b/wl_cfgp2p.h @@ -1,7 +1,7 @@ /* * Linux cfgp2p driver * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 1fae40c..6b32834 100644 --- a/wl_cfgscan.c +++ b/wl_cfgscan.c @@ -1,7 +1,7 @@ /* * Linux cfg80211 driver scan related code * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -2932,13 +2932,6 @@ 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 baf1754..6eccbff 100644 --- a/wl_cfgscan.h +++ b/wl_cfgscan.h @@ -1,7 +1,7 @@ /* * Header for Linux cfg80211 scan * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 872a9b6..943be3c 100644 --- a/wl_cfgvendor.c +++ b/wl_cfgvendor.c @@ -1,7 +1,7 @@ /* * Linux cfg80211 Vendor Extension Code * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -9992,11 +9992,7 @@ 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)); } @@ -10004,21 +10000,11 @@ 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; @@ -10027,23 +10013,6 @@ 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); @@ -10068,11 +10037,7 @@ 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; @@ -10111,13 +10076,8 @@ 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)); } @@ -10130,13 +10090,8 @@ 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 61ffaac..ab95783 100644 --- a/wl_cfgvendor.h +++ b/wl_cfgvendor.h @@ -1,7 +1,7 @@ /* * Linux cfg80211 Vendor Extension Code * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 f075167..7bca124 100644 --- a/wl_cfgvif.c +++ b/wl_cfgvif.c @@ -1,7 +1,7 @@ /* * Wifi Virtual Interface implementaion * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 60eaa0d..fee676f 100644 --- a/wl_cfgvif.h +++ b/wl_cfgvif.h @@ -1,7 +1,7 @@ /* * Wifi Virtual Interface implementaion * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 641bbc4..1c3b2e5 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 42d1a4a..84ddbd1 100644 --- a/wl_roam.c +++ b/wl_roam.c @@ -1,7 +1,7 @@ /* * Linux roam cache * - * Copyright (C) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless 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 b234755..572c252 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) 2024, Broadcom. + * Copyright (C) 2023, Broadcom. * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -817,6 +817,7 @@ 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) { -- cgit v1.2.3 From 466bdacf478715e5ae797d6cff5b795ba0f1179d Mon Sep 17 00:00:00 2001 From: Dennis Jeon Date: Thu, 29 Feb 2024 08:50:48 -0500 Subject: bcmdhd: fail ioctl set request if length is greater than MSGBUF_IOCTL_MAX_RQSTLEN It is observed that in 4398 if APF pkt filter add iovar with 4k buffer is sent to DHD, the ioctl returns success, but FW is receiving only a partial 2k buffer. This is because in dhd in the msgbuf layer, the ioctl req buffer is being truncated to MSGBUF_IOCTL_MAX_RQSTLEN. Rather than this, it is better to fail the ioctl request if length is greater than MSGBUF_IOCTL_MAX_RQSTLEN Bug: 327185608 Test: bench test Change-Id: Ib86da239c48af08d2ffa278bcc321854ef35d8cf Signed-off-by: Dennis Jeon --- dhd_msgbuf.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dhd_msgbuf.c b/dhd_msgbuf.c index 91b1506..41b69d9 100644 --- a/dhd_msgbuf.c +++ b/dhd_msgbuf.c @@ -12480,10 +12480,13 @@ dhd_fillup_ioct_reqst(dhd_pub_t *dhd, uint16 len, uint cmd, void* buf, int ifidx rqstlen = len; resplen = len; - /* Limit ioct request to MSGBUF_MAX_MSG_SIZE bytes including hdrs */ - /* 8K allocation of dongle buffer fails */ - /* dhd doesnt give separate input & output buf lens */ - /* so making the assumption that input length can never be more than 2k */ + /* fail 'set' ioctl request if len > MSGBUF_MAX_MSG_SIZE bytes including hdrs */ + if ((action & WL_IOCTL_ACTION_SET) && (rqstlen > MSGBUF_IOCTL_MAX_RQSTLEN)) { + DHD_ERROR(("%s: rqstlen(%u) larger than %u\n", __FUNCTION__, rqstlen, + MSGBUF_IOCTL_MAX_RQSTLEN)); + return BCME_BADLEN; + } + rqstlen = MIN(rqstlen, MSGBUF_IOCTL_MAX_RQSTLEN); #ifdef PCIE_INB_DW -- cgit v1.2.3 From 64492487aeff10809ecd9229222e04ccb06ecb17 Mon Sep 17 00:00:00 2001 From: Hana Huang Date: Thu, 29 Feb 2024 12:30:17 +0000 Subject: Revert^2 "bcmdhd: DHD QPR3 release for bcm4398, 2024.02.01 Version : 103.10.243.26" 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 --- Kbuild | 4 +- Kconfig | 2 +- Makefile | 2 +- aiutils.c | 2 +- bcm_app_utils.c | 2 +- bcm_l2_filter.c | 2 +- bcmbloom.c | 2 +- bcmcapext.c | 2 +- bcmevent.c | 2 +- bcmsdh.c | 2 +- bcmsdh_linux.c | 2 +- bcmsdh_sdmmc.c | 2 +- bcmsdh_sdmmc_linux.c | 2 +- bcmsdspi.h | 2 +- bcmsdspi_linux.c | 2 +- bcmsdstd.h | 2 +- bcmspibrcm.c | 2 +- bcmstdlib_s.c | 2 +- bcmutils.c | 2 +- bcmwifi_channels.c | 2 +- bcmxtlv.c | 2 +- dhd.h | 5 +- dhd_bitpack.h | 2 +- dhd_bus.h | 8 +- dhd_buzzz.h | 2 +- dhd_cdc.c | 2 +- dhd_cfg80211.c | 2 +- dhd_cfg80211.h | 2 +- dhd_cfg_dscp_policy.c | 2 +- dhd_cfg_dscp_policy.h | 2 +- dhd_cfg_dscp_policy_api.h | 2 +- dhd_common.c | 2 +- dhd_custom_cis.c | 2 +- dhd_custom_google.c | 2 +- dhd_custom_gpio.c | 2 +- dhd_custom_memprealloc.c | 2 +- dhd_custom_msm.c | 2 +- dhd_dbg.h | 2 +- dhd_dbg_ring.c | 2 +- dhd_dbg_ring.h | 2 +- dhd_debug.c | 398 ++++++++++++++++++++++++++++------------ dhd_debug.h | 109 ++++++++--- dhd_debug_linux.c | 92 ++++++++-- dhd_event_log_filter.c | 2 +- dhd_event_log_filter.h | 2 +- dhd_flowring.c | 2 +- dhd_flowring.h | 2 +- dhd_ip.c | 2 +- dhd_ip.h | 2 +- dhd_linux.c | 89 ++++++--- dhd_linux.h | 3 +- dhd_linux_exportfs.c | 2 +- dhd_linux_lb.c | 2 +- dhd_linux_pktdump.c | 2 +- dhd_linux_pktdump.h | 2 +- dhd_linux_platdev.c | 2 +- dhd_linux_priv.h | 2 +- dhd_linux_rx.c | 7 +- dhd_linux_sched.c | 2 +- dhd_linux_sock_qos.h | 2 +- dhd_linux_tx.c | 2 +- dhd_linux_tx.h | 2 +- dhd_linux_wq.c | 2 +- dhd_linux_wq.h | 2 +- dhd_log_dump.c | 2 +- dhd_log_dump.h | 2 +- dhd_logger.h | 2 +- dhd_mschdbg.c | 2 +- dhd_mschdbg.h | 2 +- dhd_msgbuf.c | 19 +- dhd_pcie.c | 100 +++++++++- dhd_pcie.h | 2 +- dhd_pcie_linux.c | 2 +- dhd_pktlog.c | 2 +- dhd_pktlog.h | 2 +- dhd_plat.h | 2 +- dhd_pno.c | 2 +- dhd_pno.h | 2 +- dhd_proto.h | 2 +- dhd_rtt.c | 2 +- dhd_rtt.h | 2 +- dhd_sdio.c | 2 +- dhd_statlog.c | 2 +- dhd_statlog.h | 2 +- dhd_wlfc.c | 2 +- dhd_wlfc.h | 2 +- frag.c | 2 +- fwpkg_utils.c | 2 +- hal_nci_cmn.c | 2 +- hnd_pktpool.c | 2 +- hnd_pktq.c | 2 +- hndpmu_dhd.c | 2 +- hndpmu_priv.h | 2 +- include/802.11.h | 2 +- include/802.11ac.h | 2 +- include/802.11ah.h | 2 +- include/802.11ax.h | 2 +- include/802.11az.h | 2 +- include/802.11brcm.h | 2 +- include/802.11cust.h | 2 +- include/802.11e.h | 2 +- include/802.11k.h | 2 +- include/802.11n.h | 2 +- include/802.11owe.h | 2 +- include/802.11s.h | 2 +- include/802.11u.h | 2 +- include/802.11v.h | 2 +- include/802.11w.h | 2 +- include/802.11wapi.h | 2 +- include/802.11wfa.h | 2 +- include/802.11z.h | 2 +- include/802.1d.h | 2 +- include/802.3.h | 2 +- include/aidmp.h | 2 +- include/bcm_l2_filter.h | 2 +- include/bcm_mpool_pub.h | 2 +- include/bcm_ring.h | 2 +- include/bcm_wifishark.h | 2 +- include/bcmarp.h | 2 +- include/bcmbloom.h | 2 +- include/bcmcapext.h | 2 +- include/bcmcdc.h | 2 +- include/bcmdefs.h | 2 +- include/bcmdevs.h | 2 +- include/bcmdevs_legacy.h | 2 +- include/bcmdhcp.h | 2 +- include/bcmendian.h | 2 +- include/bcmerror.h | 2 +- include/bcmeth.h | 2 +- include/bcmevent.h | 2 +- include/bcmicmp.h | 2 +- include/bcmigmp.h | 2 +- include/bcmiov.h | 2 +- include/bcmip.h | 2 +- include/bcmipv6.h | 2 +- include/bcmmsgbuf.h | 2 +- include/bcmnvram.h | 2 +- include/bcmpcie.h | 2 +- include/bcmpcispi.h | 2 +- include/bcmperf.h | 2 +- include/bcmproto.h | 2 +- include/bcmrand.h | 2 +- include/bcmsdbus.h | 2 +- include/bcmsdh.h | 2 +- include/bcmsdh_sdmmc.h | 2 +- include/bcmsdpcm.h | 2 +- include/bcmspi.h | 2 +- include/bcmspibrcm.h | 2 +- include/bcmsrom_fmt.h | 2 +- include/bcmstdlib_s.h | 2 +- include/bcmtcp.h | 2 +- include/bcmtlv.h | 2 +- include/bcmudp.h | 2 +- include/bcmutils.h | 2 +- include/bcmwifi_channels.h | 2 +- include/bcmwifi_rates.h | 2 +- include/bcmwifi_rspec.h | 2 +- include/brcm_nl80211.h | 2 +- include/dbus.h | 2 +- include/dhd_daemon.h | 2 +- include/dhdioctl.h | 2 +- include/dngl_rtlv.h | 2 +- include/dngl_stats.h | 2 +- include/dngl_wlhdr.h | 2 +- include/dnglevent.h | 2 +- include/dnglioctl.h | 2 +- include/dscp_policy.h | 2 +- include/eap.h | 2 +- include/eapol.h | 2 +- include/epivers.h | 14 +- include/etd.h | 93 +++++++++- include/ethernet.h | 2 +- include/event_log.h | 2 +- include/event_log_api_strings.h | 2 +- include/event_log_payload.h | 2 +- include/event_log_set.h | 2 +- include/event_log_tag.h | 2 +- include/event_trace.h | 2 +- include/ewp.h | 2 +- include/fils.h | 2 +- include/frag.h | 2 +- include/ftm_ioctl.h | 2 +- include/fwpkg_utils.h | 2 +- include/hal_nci_cmn.h | 2 +- include/hnd_armtrap.h | 2 +- include/hnd_cons.h | 2 +- include/hnd_debug.h | 2 +- include/hnd_pktpool.h | 2 +- include/hnd_pktq.h | 2 +- include/hnddap.h | 2 +- include/hndlhl.h | 2 +- include/hndoobr.h | 2 +- include/hndpmu_dhd.h | 2 +- include/hndsoc.h | 2 +- include/linux_osl.h | 2 +- include/linux_pkt.h | 2 +- include/linuxerrmap.h | 2 +- include/linuxver.h | 2 +- include/lpflags.h | 2 +- include/mbo.h | 2 +- include/miniopt.h | 2 +- include/msf.h | 2 +- include/msgtrace.h | 2 +- include/nan.h | 2 +- include/nci.h | 2 +- include/osl.h | 2 +- include/osl_decl.h | 2 +- include/osl_ext.h | 2 +- include/p2p.h | 2 +- include/packed_section_end.h | 2 +- include/packed_section_start.h | 2 +- include/pcicfg.h | 2 +- include/pcie_core.h | 2 +- include/phy_event_log_payload.h | 2 +- include/sbchipc.h | 2 +- include/sbconfig.h | 2 +- include/sbgci.h | 2 +- include/sbhndarm.h | 2 +- include/sbhnddma.h | 2 +- include/sbpcmcia.h | 2 +- include/sbsdio.h | 2 +- include/sbsdpcmdev.h | 2 +- include/sbsocram.h | 2 +- include/sbsreng.h | 2 +- include/sbsysmem.h | 2 +- include/sdio.h | 2 +- include/sdioh.h | 2 +- include/sdiovar.h | 2 +- include/sdspi.h | 2 +- include/siutils.h | 2 +- include/spid.h | 2 +- include/trxhdr.h | 2 +- include/typedefs.h | 2 +- include/verhoeff_chksum.h | 2 +- include/vlan.h | 2 +- include/wldev_common.h | 2 +- include/wlfc_proto.h | 2 +- include/wlioctl.h | 2 +- include/wlioctl_defs.h | 2 +- include/wlioctl_utils.h | 2 +- include/wpa.h | 2 +- include/wps.h | 2 +- linux_osl.c | 2 +- linux_osl_priv.h | 2 +- linux_pkt.c | 2 +- linuxerrmap.c | 2 +- nciutils.c | 2 +- nciutils_host.c | 2 +- pcie_core_host.c | 2 +- siutils.c | 2 +- siutils_host.c | 2 +- siutils_priv.h | 2 +- verhoeff_chksum.c | 2 +- wb_regon_coordinator.c | 2 +- wb_regon_coordinator.h | 2 +- wifi_stats.h | 2 +- wl_android.c | 2 +- wl_android.h | 2 +- wl_cfg80211.c | 64 ++++++- wl_cfg80211.h | 76 ++++---- wl_cfg_btcoex.c | 2 +- wl_cfg_cellavoid.c | 2 +- wl_cfg_cellavoid.h | 2 +- wl_cfgnan.c | 2 +- wl_cfgnan.h | 2 +- wl_cfgp2p.c | 5 +- wl_cfgp2p.h | 2 +- wl_cfgscan.c | 9 +- wl_cfgscan.h | 2 +- wl_cfgvendor.c | 47 ++++- wl_cfgvendor.h | 2 +- wl_cfgvif.c | 2 +- wl_cfgvif.h | 2 +- wl_linux_mon.c | 2 +- wl_roam.c | 2 +- wldev_common.c | 3 +- 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 #include #include +#include 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 #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 * * - * Copyright (C) 2023, Broadcom. + * Copyright (C) 2024, Broadcom. * * Unless 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 * * - * Copyright (C) 2023, Broadcom. + * Copyright (C) 2024, Broadcom. * * Unless 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) { -- cgit v1.2.3