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
This commit is contained in:
Srinivas Dasari 2020-05-15 13:58:32 +05:30 committed by nshrivas
parent 17c983d512
commit 4670f330c1
4 changed files with 33 additions and 18 deletions

View File

@ -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 * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * 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); 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 /* WLAN_POWER_MANAGEMENT_OFFLOAD */
#endif /* end of _WLAN_PMO_STATIC_CONFIG_H_ */ #endif /* end of _WLAN_PMO_STATIC_CONFIG_H_ */

View File

@ -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 * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * 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}; uint32_t event_bitmap[PMO_WOW_MAX_EVENT_BM_LEN] = {0};
uint8_t vdev_id; uint8_t vdev_id;
enum QDF_OPMODE vdev_opmode; enum QDF_OPMODE vdev_opmode;
const char *iface_type;
struct pmo_psoc_priv_obj *psoc_ctx; struct pmo_psoc_priv_obj *psoc_ctx;
pmo_is_device_in_low_pwr_mode is_low_pwr_mode; 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_P2P_DEVICE_MODE:
case QDF_OCB_MODE: case QDF_OCB_MODE:
case QDF_MONITOR_MODE: case QDF_MONITOR_MODE:
iface_type = "STA";
pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN);
break; break;
case QDF_IBSS_MODE: case QDF_IBSS_MODE:
iface_type = "IBSS";
pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN);
pmo_set_wow_event_bitmap(WOW_BEACON_EVENT, pmo_set_wow_event_bitmap(WOW_BEACON_EVENT,
PMO_WOW_MAX_EVENT_BM_LEN, 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_P2P_GO_MODE:
case QDF_SAP_MODE: case QDF_SAP_MODE:
iface_type = "SAP";
pmo_set_sap_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN); pmo_set_sap_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN);
break; break;
case QDF_NDI_MODE: case QDF_NDI_MODE:
#ifdef WLAN_FEATURE_NAN_DATAPATH pmo_set_ndp_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN);
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
break; break;
default: default:

View File

@ -482,3 +482,16 @@ uint8_t pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc)
return PMO_WOW_FILTERS_PKT_OR_APF; 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

View File

@ -44,7 +44,7 @@ QDF_STATUS pmo_tgt_enable_wow_wakeup_event(
goto out; 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); bitmap[3], bitmap[2], bitmap[1], bitmap[0], vdev_id);
status = pmo_tx_ops.send_enable_wow_wakeup_event_req(vdev, bitmap); status = pmo_tx_ops.send_enable_wow_wakeup_event_req(vdev, bitmap);