From 4670f330c13872cf79914fdb9fc6d4b4ef83ca88 Mon Sep 17 00:00:00 2001 From: Srinivas Dasari Date: Fri, 15 May 2020 13:58:32 +0530 Subject: [PATCH] qcacld-3.0: Replace WLAN_FEATURE_NAN_DATAPATH with WLAN_FEATURE_NAN WLAN_FEATURE_NAN_DATAPATH is deprecated and the define is also removed. But there is still some code(NDP wakelock event configuration) which is guarded in this flag and it never gets compiled. So replace WLAN_FEATURE_NAN_DATAPATH with overall NAN feature define WLAN_FEATURE_NAN and move it to a separate API. Also, enhance log to print the complete 16-byte bitmap in hex format. Change-Id: I1ad51efc2b6a088022601686744802995fb7b4b7 CRs-Fixed: 2679286 --- .../pmo/core/inc/wlan_pmo_static_config.h | 18 +++++++++++++++++- .../pmo/core/src/wlan_pmo_static_config.c | 18 ++---------------- components/pmo/core/src/wlan_pmo_wow.c | 13 +++++++++++++ .../pmo/dispatcher/src/wlan_pmo_tgt_wow.c | 2 +- 4 files changed, 33 insertions(+), 18 deletions(-) diff --git a/components/pmo/core/inc/wlan_pmo_static_config.h b/components/pmo/core/inc/wlan_pmo_static_config.h index c0b220057c290..fed6b472d8f29 100644 --- a/components/pmo/core/inc/wlan_pmo_static_config.h +++ b/components/pmo/core/inc/wlan_pmo_static_config.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -105,6 +105,22 @@ void pmo_set_sta_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmask_size); */ void pmo_set_sap_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmask_size); +#ifdef WLAN_FEATURE_NAN +/** + * pmo_set_ndp_wow_bitmask() - set predefined NDP wow wakeup events + * @bitmask: bitmask field + * @wow_bitmask_size: bitmask field size + * + * Return: none + */ +void pmo_set_ndp_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmask_size); +#else +static inline +void pmo_set_ndp_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmask_size) +{ +} +#endif + #endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */ #endif /* end of _WLAN_PMO_STATIC_CONFIG_H_ */ diff --git a/components/pmo/core/src/wlan_pmo_static_config.c b/components/pmo/core/src/wlan_pmo_static_config.c index 4ac669afb29ce..4003d072ae805 100644 --- a/components/pmo/core/src/wlan_pmo_static_config.c +++ b/components/pmo/core/src/wlan_pmo_static_config.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -36,7 +36,6 @@ void pmo_register_wow_wakeup_events(struct wlan_objmgr_vdev *vdev) uint32_t event_bitmap[PMO_WOW_MAX_EVENT_BM_LEN] = {0}; uint8_t vdev_id; enum QDF_OPMODE vdev_opmode; - const char *iface_type; struct pmo_psoc_priv_obj *psoc_ctx; pmo_is_device_in_low_pwr_mode is_low_pwr_mode; @@ -65,12 +64,10 @@ void pmo_register_wow_wakeup_events(struct wlan_objmgr_vdev *vdev) case QDF_P2P_DEVICE_MODE: case QDF_OCB_MODE: case QDF_MONITOR_MODE: - iface_type = "STA"; pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); break; case QDF_IBSS_MODE: - iface_type = "IBSS"; pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); pmo_set_wow_event_bitmap(WOW_BEACON_EVENT, PMO_WOW_MAX_EVENT_BM_LEN, @@ -79,22 +76,11 @@ void pmo_register_wow_wakeup_events(struct wlan_objmgr_vdev *vdev) case QDF_P2P_GO_MODE: case QDF_SAP_MODE: - iface_type = "SAP"; pmo_set_sap_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); break; case QDF_NDI_MODE: -#ifdef WLAN_FEATURE_NAN_DATAPATH - iface_type = "NAN"; - /* wake up host when Nan Management Frame is received */ - pmo_set_wow_event_bitmap(WOW_NAN_DATA_EVENT, - PMO_WOW_MAX_EVENT_BM_LEN, - event_bitmap); - /* wake up host when NDP data packet is received */ - pmo_set_wow_event_bitmap(WOW_PATTERN_MATCH_EVENT, - WMI_WOW_MAX_EVENT_BM_LEN, - event_bitmap); -#endif + pmo_set_ndp_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); break; default: diff --git a/components/pmo/core/src/wlan_pmo_wow.c b/components/pmo/core/src/wlan_pmo_wow.c index fc31f14a1dc32..3f481a32dc448 100644 --- a/components/pmo/core/src/wlan_pmo_wow.c +++ b/components/pmo/core/src/wlan_pmo_wow.c @@ -482,3 +482,16 @@ uint8_t pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc) return PMO_WOW_FILTERS_PKT_OR_APF; } +#ifdef WLAN_FEATURE_NAN +void pmo_set_ndp_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size) +{ + /* wake up host when Nan Management Frame is received */ + pmo_set_wow_event_bitmap(WOW_NAN_DATA_EVENT, + wow_bitmap_size, + bitmask); + /* wake up host when NDP data packet is received */ + pmo_set_wow_event_bitmap(WOW_PATTERN_MATCH_EVENT, + wow_bitmap_size, + bitmask); +} +#endif diff --git a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c index a0c5874b2e55b..15996ac45483b 100644 --- a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c +++ b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c @@ -44,7 +44,7 @@ QDF_STATUS pmo_tgt_enable_wow_wakeup_event( goto out; } - pmo_debug("Enable wakeup events 0x%x%x%x%x for vdev_id %d", + pmo_debug("Enable wakeup events 0x%08x%08x%08x%08x for vdev_id %d", bitmap[3], bitmap[2], bitmap[1], bitmap[0], vdev_id); status = pmo_tx_ops.send_enable_wow_wakeup_event_req(vdev, bitmap);