qcacmn: Add support to extract sscan bandwidth capabilities

WMI_SPECTRAL_CAPABILITIES_EVENTID event will be sent by the FW to
indicate different capabilities of the Spectral HW.
Add support to extract the sscan bandwidth capabilities from this event.

Change-Id: I6ff6e5a8d80271fa62a430c986f53a321d46c66b
CRs-Fixed: 3098832
This commit is contained in:
Shiva Krishna Pittala
2021-12-22 12:38:37 +05:30
committed by Madan Koyyalamudi
부모 596c07c7e6
커밋 861c4e29aa
7개의 변경된 파일179개의 추가작업 그리고 7개의 파일을 삭제

파일 보기

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011,2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-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
@@ -7062,6 +7062,45 @@ target_if_wmi_extract_spectral_caps_fixed_param(
return psoc_spectral->wmi_ops.extract_spectral_caps_fixed_param(
wmi_handle, evt_buf, param);
}
/**
* target_if_wmi_extract_spectral_scan_bw_caps() - Wrapper function to
* extract bandwidth capabilities from Spectral capabilities WMI event
* @psoc: Pointer to psoc object
* @evt_buf: Event buffer
* @bw_caps: Data structure to be filled by this API after extraction
*
* Return: QDF_STATUS of operation
*/
QDF_STATUS
target_if_wmi_extract_spectral_scan_bw_caps(
struct wlan_objmgr_psoc *psoc,
uint8_t *evt_buf,
struct spectral_scan_bw_capabilities *bw_caps)
{
struct target_if_psoc_spectral *psoc_spectral;
wmi_unified_t wmi_handle;
if (!psoc) {
spectral_err("psoc is null");
return QDF_STATUS_E_INVAL;
}
wmi_handle = GET_WMI_HDL_FROM_PSOC(psoc);
if (!wmi_handle) {
spectral_err("WMI handle is null");
return QDF_STATUS_E_INVAL;
}
psoc_spectral = get_target_if_spectral_handle_from_psoc(psoc);
if (!psoc_spectral) {
spectral_err("spectral object is null");
return QDF_STATUS_E_FAILURE;
}
return psoc_spectral->wmi_ops.extract_spectral_scan_bw_caps(
wmi_handle, evt_buf, bw_caps);
}
#else
/**
* target_if_spectral_wmi_unified_register_event_handler() - Wrapper function to
@@ -7319,6 +7358,23 @@ target_if_wmi_extract_spectral_caps_fixed_param(
return wmi_extract_spectral_caps_fixed_param(wmi_handle, evt_buf,
param);
}
QDF_STATUS
target_if_wmi_extract_spectral_scan_bw_caps(
struct wlan_objmgr_psoc *psoc,
uint8_t *evt_buf,
struct spectral_scan_bw_capabilities *bw_caps)
{
wmi_unified_t wmi_handle;
wmi_handle = GET_WMI_HDL_FROM_PSOC(psoc);
if (!wmi_handle) {
spectral_err("WMI handle is null");
return QDF_STATUS_E_INVAL;
}
return wmi_extract_spectral_scan_bw_caps(wmi_handle, evt_buf, bw_caps);
}
#endif
/**

파일 보기

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011,2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-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
@@ -944,6 +944,8 @@ struct vdev_spectral_enable_params;
* detector information
* @extract_spectral_caps_fixed_param: Extract fixed parameters from Spectral
* capabilities event
* @extract_spectral_scan_bw_caps: Extract bandwidth capabilities from Spectral
* capabilities event
*/
struct spectral_wmi_ops {
QDF_STATUS (*wmi_spectral_configure_cmd_send)(
@@ -980,6 +982,9 @@ struct spectral_wmi_ops {
QDF_STATUS (*extract_spectral_caps_fixed_param)(
wmi_unified_t wmi_handle, void *event,
struct spectral_capabilities_event_params *param);
QDF_STATUS (*extract_spectral_scan_bw_caps)(
wmi_unified_t wmi_handle, void *event,
struct spectral_scan_bw_capabilities *bw_caps);
};
/**
@@ -3000,4 +3005,20 @@ QDF_STATUS target_if_wmi_extract_spectral_caps_fixed_param(
struct wlan_objmgr_psoc *psoc,
uint8_t *evt_buf,
struct spectral_capabilities_event_params *param);
struct spectral_scan_bw_capabilities;
/**
* target_if_wmi_extract_spectral_scan_bw_caps() - Wrapper function to
* extract bandwidth capabilities from Spectral capabilities WMI event
* @psoc: Pointer to psoc object
* @evt_buf: Event buffer
* @bw_caps: Data structure to be filled by this API after extraction
*
* Return: QDF_STATUS of operation
*/
QDF_STATUS
target_if_wmi_extract_spectral_scan_bw_caps(
struct wlan_objmgr_psoc *psoc,
uint8_t *evt_buf,
struct spectral_scan_bw_capabilities *bw_caps);
#endif /* _TARGET_IF_SPECTRAL_H_ */