diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 5d2d14ec0ad1c..b365ac9daefb6 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -4698,53 +4698,6 @@ struct sir_apf_get_offload { uint32_t max_bytes_for_apf_inst; }; -#ifndef QCA_SUPPORT_CP_STATS -/** - * struct sir_vdev_wow_stats - container for per vdev wow related stat counters - * @ucast: Unicast wakeup count - * @bcast: Broadcast wakeup count - * @ipv4_mcast: ipv4 multicast wakeup count - * @ipv6_mcast: ipv6 multicast wakeup count - * @ipv6_mcast_ra: ipv6 multicast ra stats - * @ipv6_mcast_ns: ipv6 multicast ns stats - * @ipv6_mcast_na: ipv6 multicast na stats - * @icmpv4: ipv4 icmp packet count - * @icmpv6: ipv6 icmp packet count - * @rssi_breach: rssi breach wakeup count - * @low_rssi: low rssi wakeup count - * @gscan: gscan wakeup count - * @pno_complete: pno complete wakeup count - * @pno_match: pno match wakeup count - * @oem_response: oem response wakeup count - * @scan_11d: 11d scan wakeup count - * @motion_detect: motion detection wakeup count - * @motion_detect_bl: motion detection baselining wakeup count - */ -struct sir_vdev_wow_stats { - uint32_t ucast; - uint32_t bcast; - uint32_t ipv4_mcast; - uint32_t ipv6_mcast; - uint32_t ipv6_mcast_ra; - uint32_t ipv6_mcast_ns; - uint32_t ipv6_mcast_na; - uint32_t icmpv4; - uint32_t icmpv6; - uint32_t rssi_breach; - uint32_t low_rssi; - uint32_t gscan; - uint32_t pno_complete; - uint32_t pno_match; - uint32_t oem_response; - uint32_t pwr_save_fail_detected; - uint32_t scan_11d; -#ifdef WLAN_FEATURE_MOTION_DETECTION - uint32_t motion_detect; - uint32_t motion_detect_bl; -#endif /* WLAN_FEATURE_MOTION_DETECTION */ -}; -#endif - #ifdef WLAN_FEATURE_NAN #define IFACE_NAME_SIZE 64 diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index a7e459eb2bae7..22ef23dfa82bb 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -759,7 +759,6 @@ struct roam_synch_frame_ind { * @wep_default_key_idx: wep default index for group key * @arp_offload_req: cached arp offload request * @ns_offload_req: cached ns offload request - * @wow_stats: stat counters for WoW related events * @rcpi_req: rcpi request * @in_bmps: Whether bmps for this interface has been enabled * @vdev_start_wakelock: wakelock to protect vdev start op with firmware @@ -829,9 +828,6 @@ struct wma_txrx_node { bool roaming_in_progress; int32_t roam_synch_delay; uint8_t wep_default_key_idx; -#ifndef QCA_SUPPORT_CP_STATS - struct sir_vdev_wow_stats wow_stats; -#endif struct sme_rcpi_req *rcpi_req; bool in_bmps; struct beacon_filter_param beacon_filter; diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index 5eec154f31667..130b07fb5aae5 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -1445,7 +1445,6 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason) } } -#ifdef QCA_SUPPORT_CP_STATS static bool wma_wow_reason_has_stats(enum wake_reason_e reason) { switch (reason) { @@ -1541,124 +1540,6 @@ static void wma_print_wow_stats(t_wma_handle *wma, wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID); wma_wow_stats_display(&stats); } -#else -/** - * wma_wow_stats_display() - display wow wake up stats - * @stats: per vdev stats counters - * - * Return: none - */ -static void wma_wow_stats_display(struct sir_vdev_wow_stats *stats) -{ - WMA_LOGA("uc %d bc %d v4_mc %d v6_mc %d ra %d ns %d na %d pno_match %d pno_complete %d gscan %d low_rssi %d rssi_breach %d icmp %d icmpv6 %d oem %d", - stats->ucast, - stats->bcast, - stats->ipv4_mcast, - stats->ipv6_mcast, - stats->ipv6_mcast_ra, - stats->ipv6_mcast_ns, - stats->ipv6_mcast_na, - stats->pno_match, - stats->pno_complete, - stats->gscan, - stats->low_rssi, - stats->rssi_breach, - stats->icmpv4, - stats->icmpv6, - stats->oem_response); -} - -static void wma_print_wow_stats(t_wma_handle *wma, - WOW_EVENT_INFO_fixed_param *wake_info) -{ - struct sir_vdev_wow_stats *stats; - - switch (wake_info->wake_reason) { - case WOW_REASON_BPF_ALLOW: - case WOW_REASON_PATTERN_MATCH_FOUND: - case WOW_REASON_PACKET_FILTER_MATCH: - case WOW_REASON_RA_MATCH: - case WOW_REASON_NLOD: - case WOW_REASON_NLO_SCAN_COMPLETE: - case WOW_REASON_LOW_RSSI: - case WOW_REASON_EXTSCAN: - case WOW_REASON_RSSI_BREACH_EVENT: - case WOW_REASON_OEM_RESPONSE_EVENT: - case WOW_REASON_CHIP_POWER_FAILURE_DETECT: - case WOW_REASON_11D_SCAN: - break; -#ifdef WLAN_FEATURE_MOTION_DETECTION - case WOW_REASON_WLAN_MD: - case WOW_REASON_WLAN_BL: - break; -#endif /* WLAN_FEATURE_MOTION_DETECTION */ - default: - return; - } - - stats = &wma->interfaces[wake_info->vdev_id].wow_stats; - wma_wow_stats_display(stats); -} - -/** - * wma_inc_wow_stats() - maintain wow pattern match wake up stats - * @wma: wma handle, containing the stats counters - * @wake_info: the wake event information - * - * Return: none - */ -static void wma_inc_wow_stats(t_wma_handle *wma, - WOW_EVENT_INFO_fixed_param *wake_info) -{ - struct sir_vdev_wow_stats *stats; - - if (wake_info->wake_reason == WOW_REASON_UNSPECIFIED) { - wma->wow_unspecified_wake_count++; - return; - } - - stats = &wma->interfaces[wake_info->vdev_id].wow_stats; - switch (wake_info->wake_reason) { - case WOW_REASON_RA_MATCH: - stats->ipv6_mcast++; - stats->ipv6_mcast_ra++; - stats->icmpv6++; - break; - case WOW_REASON_NLOD: - stats->pno_match++; - break; - case WOW_REASON_NLO_SCAN_COMPLETE: - stats->pno_complete++; - break; - case WOW_REASON_LOW_RSSI: - stats->low_rssi++; - break; - case WOW_REASON_EXTSCAN: - stats->gscan++; - break; - case WOW_REASON_RSSI_BREACH_EVENT: - stats->rssi_breach++; - break; - case WOW_REASON_OEM_RESPONSE_EVENT: - stats->oem_response++; - break; - case WOW_REASON_11D_SCAN: - stats->scan_11d++; - break; - case WOW_REASON_CHIP_POWER_FAILURE_DETECT: - stats->pwr_save_fail_detected++; - break; -#ifdef WLAN_FEATURE_MOTION_DETECTION - case WOW_REASON_WLAN_MD: - stats->motion_detect++; - break; - case WOW_REASON_WLAN_BL: - stats->motion_detect_bl++; - break; -#endif /* WLAN_FEATURE_MOTION_DETECTION */ - } -} -#endif #ifdef FEATURE_WLAN_EXTSCAN /** @@ -2123,7 +2004,6 @@ static void wma_log_pkt_tcpv6(uint8_t *data, uint32_t length) WMA_LOGD("TCP_seq_num: %u", qdf_cpu_to_be16(seq_num)); } -#ifdef QCA_SUPPORT_CP_STATS static void wma_wow_inc_wake_lock_stats_by_dst_addr(t_wma_handle *wma, uint8_t vdev_id, uint8_t *dest_mac) @@ -2140,68 +2020,6 @@ static void wma_wow_inc_wake_lock_stats_by_protocol(t_wma_handle *wma, vdev_id, proto_subtype); } -#else -static void wma_wow_inc_wake_lock_stats_by_dst_addr(t_wma_handle *wma, - uint8_t vdev_id, - uint8_t *dest_mac) -{ - struct wma_txrx_node *vdev; - struct sir_vdev_wow_stats *stats; - - vdev = &wma->interfaces[vdev_id]; - stats = &vdev->wow_stats; - - switch (*dest_mac) { - case QDF_BCAST_MAC_ADDR: - stats->bcast++; - break; - case QDF_MCAST_IPV4_MAC_ADDR: - stats->ipv4_mcast++; - break; - case QDF_MCAST_IPV6_MAC_ADDR: - stats->ipv6_mcast++; - break; - default: - stats->ucast++; - break; - } -} - -static void wma_wow_inc_wake_lock_stats_by_protocol(t_wma_handle *wma, - uint8_t vdev_id, enum qdf_proto_subtype proto_subtype) -{ - struct wma_txrx_node *vdev; - struct sir_vdev_wow_stats *stats; - - vdev = &wma->interfaces[vdev_id]; - stats = &vdev->wow_stats; - - switch (proto_subtype) { - case QDF_PROTO_ICMP_RES: - stats->icmpv4++; - break; - case QDF_PROTO_ICMPV6_REQ: - case QDF_PROTO_ICMPV6_RES: - case QDF_PROTO_ICMPV6_RS: - stats->icmpv6++; - break; - case QDF_PROTO_ICMPV6_RA: - stats->icmpv6++; - stats->ipv6_mcast_ra++; - break; - case QDF_PROTO_ICMPV6_NS: - stats->icmpv6++; - stats->ipv6_mcast_ns++; - break; - case QDF_PROTO_ICMPV6_NA: - stats->icmpv6++; - stats->ipv6_mcast_na++; - break; - default: - break; - } -} -#endif /** * wma_wow_parse_data_pkt() - API to parse data buffer for data diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 7abd0b1bd38d8..dc95d2e64eec3 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -2032,7 +2032,6 @@ struct wma_version_info g_wmi_version_info; * * Return: None */ -#ifdef QCA_SUPPORT_CP_STATS static void wma_state_info_dump(char **buf_ptr, uint16_t *size) { uint8_t vdev_id; @@ -2134,103 +2133,6 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size) *size -= len; *buf_ptr += len; } -#else /* QCA_SUPPORT_CP_STATS */ -static void wma_state_info_dump(char **buf_ptr, uint16_t *size) -{ - t_wma_handle *wma; - struct sir_vdev_wow_stats *stats; - uint16_t len = 0; - char *buf = *buf_ptr; - struct wma_txrx_node *iface; - uint8_t vdev_id; - - wma = cds_get_context(QDF_MODULE_ID_WMA); - if (!wma) { - WMA_LOGE("%s: WMA context is invald!", __func__); - return; - } - - WMA_LOGE("%s: size of buffer: %d", __func__, *size); - - for (vdev_id = 0; vdev_id < wma->max_bssid; vdev_id++) { - iface = &wma->interfaces[vdev_id]; - if (!iface->handle) - continue; - - stats = &iface->wow_stats; - len += qdf_scnprintf(buf + len, *size - len, - "\n" - "vdev_id %d\n" - "WoW Stats\n" - "\tpno_match %u\n" - "\tpno_complete %u\n" - "\tgscan %u\n" - "\tlow_rssi %u\n" - "\trssi_breach %u\n" - "\tucast %u\n" - "\tbcast %u\n" - "\ticmpv4 %u\n" - "\ticmpv6 %u\n" - "\tipv4_mcast %u\n" - "\tipv6_mcast %u\n" - "\tipv6_mcast_ra %u\n" - "\tipv6_mcast_ns %u\n" - "\tipv6_mcast_na %u\n" - "\toem_response %u\n" - "dtimPeriod %d\n" - "chanmode %d\n" - "vht_capable %d\n" - "ht_capable %d\n" - "chan_width %d\n" - "vdev_active %d\n" - "vdev_up %d\n" - "aid %d\n" - "rate_flags %d\n" - "nss %d\n" - "tx_power %d\n" - "max_tx_power %d\n" - "nwType %d\n" - "tx_streams %d\n" - "rx_streams %d\n" - "chain_mask %d", - vdev_id, - stats->pno_match, - stats->pno_complete, - stats->gscan, - stats->low_rssi, - stats->rssi_breach, - stats->ucast, - stats->bcast, - stats->icmpv4, - stats->icmpv6, - stats->ipv4_mcast, - stats->ipv6_mcast, - stats->ipv6_mcast_ra, - stats->ipv6_mcast_ns, - stats->ipv6_mcast_na, - stats->oem_response, - iface->dtimPeriod, - iface->chanmode, - iface->vht_capable, - iface->ht_capable, - iface->chan_width, - iface->vdev_active, - wma_is_vdev_up(vdev_id), - iface->aid, - iface->rate_flags, - iface->nss, - iface->tx_power, - iface->max_tx_power, - iface->nwType, - iface->tx_streams, - iface->rx_streams, - iface->chain_mask); - } - - *size -= len; - *buf_ptr += len; -} -#endif /* QCA_SUPPORT_CP_STATS */ /** * wma_register_debug_callback() - registration function for wma layer