qcacmn: Get per channel pno scan config service capability

Firmware advertises the service capability bit
WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL when it supports per
channel scan config flags. Get this and cache in psoc.

If firmware supports WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL,
it uses the upper-12 bits(bit-20 to bit 32) of channel_list
for flags and lower 20-bits(bit-0 to bit-19) for frequency.
If firmware doesn't support it, then channel_list holds the
frequency value only. Fill the flags and frequency accordingly.

Change-Id: I30d36a3c164e23cf0395129e5b93d186b81aa8a6
CRs-Fixed: 3103921
This commit is contained in:
Sai Pavan Akhil Remella 2022-01-31 12:48:22 +05:30 • committed by Madan Koyyalamudi
commit 6f09bf189f
4 changed files with 14 additions and 0 deletions

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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
@ -173,6 +174,11 @@ static int init_deinit_service_ready_event_handler(ol_scn_t scn_handle,
wlan_psoc_nif_fw_ext_cap_set(psoc,
WLAN_SOC_CEXT_SCAN_PER_CH_CONFIG);
if (wmi_service_enabled(wmi_handle,
wmi_service_pno_scan_conf_per_ch_support))
wlan_psoc_nif_fw_ext_cap_set(psoc,
WLAN_SOC_PNO_SCAN_CONFIG_PER_CHANNEL);
if (wmi_service_enabled(wmi_handle, wmi_service_csa_beacon_template))
wlan_psoc_nif_fw_ext_cap_set(psoc,
WLAN_SOC_CEXT_CSA_TX_OFFLOAD);

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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
@ -149,6 +150,9 @@
/* ext event supported by fw */
#define WLAN_SOC_EXT_EVENT_SUPPORTED 0x04000000
/* check 31st bit for per channel pno scan config flags support */
#define WLAN_SOC_PNO_SCAN_CONFIG_PER_CHANNEL 0x40000000
/* feature_flags */
/* CONF: ATH FF enabled */
#define WLAN_SOC_F_FF 0x00000001

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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
@ -5271,6 +5272,7 @@ typedef enum {
#ifdef THERMAL_STATS_SUPPORT
wmi_service_thermal_stats_temp_range_supported,
#endif
wmi_service_pno_scan_conf_per_ch_support,
wmi_services_max,
} wmi_conv_service_ids;
#define WMI_SERVICE_UNAVAILABLE 0xFFFF

View file

@ -15907,6 +15907,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
wmi_service[wmi_service_thermal_stats_temp_range_supported] =
WMI_SERVICE_THERMAL_THROT_STATS_TEMP_RANGE_SUPPORT;
#endif
wmi_service[wmi_service_pno_scan_conf_per_ch_support] =
WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL;
}
/**