diff --git a/components/pmo/core/inc/wlan_pmo_static_config.h b/components/pmo/core/inc/wlan_pmo_static_config.h index c0b220057c29..fed6b472d8f2 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 4ac669afb29c..4003d072ae80 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 fc31f14a1dc3..3f481a32dc44 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 a0c5874b2e55..15996ac45483 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);