qcacmn: Add WMI command to set Sub Channel Marking
Introduce a new wmi_send pdev param to enable/disable "Subchannel Marking" in Firmware (only in Full Offload) Change-Id: I3cd4f4f13ebca72c4505b6195cc8dc4856d41671 CRs-Fixed: 2334258
This commit is contained in:
@@ -597,6 +597,7 @@ struct wlan_lmac_if_reg_tx_ops {
|
||||
* support.
|
||||
* @dfs_send_avg_radar_params_to_fw: Send average radar parameters to FW.
|
||||
* @dfs_send_usenol_pdev_param: Send usenol pdev param to FW.
|
||||
* @dfs_send_subchan_marking_pdev_param: Send subchan marking pdev param to FW.
|
||||
*/
|
||||
|
||||
struct wlan_lmac_if_dfs_tx_ops {
|
||||
@@ -643,6 +644,9 @@ struct wlan_lmac_if_dfs_tx_ops {
|
||||
struct dfs_radar_found_params *params);
|
||||
QDF_STATUS (*dfs_send_usenol_pdev_param)(struct wlan_objmgr_pdev *pdev,
|
||||
bool usenol);
|
||||
QDF_STATUS (*dfs_send_subchan_marking_pdev_param)(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
bool subchanmark);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -70,6 +70,7 @@ QDF_STATUS wmi_extract_wlan_radar_event_info(void *wmi_hdl,
|
||||
uint32_t len);
|
||||
#endif
|
||||
|
||||
#if defined(WLAN_DFS_FULL_OFFLOAD) && defined(QCA_DFS_NOL_OFFLOAD)
|
||||
/**
|
||||
* wmi_send_usenol_pdev_param() - function to send usenol pdev param.
|
||||
* @wmi_hdl: wmi handle
|
||||
@@ -78,9 +79,22 @@ QDF_STATUS wmi_extract_wlan_radar_event_info(void *wmi_hdl,
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#if defined(WLAN_DFS_FULL_OFFLOAD) && defined(QCA_DFS_NOL_OFFLOAD)
|
||||
QDF_STATUS wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
|
||||
struct wlan_objmgr_pdev *pdev);
|
||||
|
||||
/**
|
||||
* wmi_send_subchan_marking_pdev_param() - Function to send subchannel
|
||||
* marking pdev param.
|
||||
* @wmi_hdl: WMI handle.
|
||||
* @subchanmark: Value of use subchannel marking.
|
||||
* @pdev: Pointer to objmgr_pdev structure.
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
wmi_send_subchan_marking_pdev_param(void *wmi_hdl,
|
||||
bool subchanmark,
|
||||
struct wlan_objmgr_pdev *pdev);
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
|
||||
@@ -88,5 +102,13 @@ wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
wmi_send_subchan_marking_pdev_param(void *wmi_hdl,
|
||||
bool subchanmark,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
#endif /* _WMI_UNIFIED_DFS_API_H_ */
|
||||
|
@@ -4934,6 +4934,7 @@ typedef enum {
|
||||
wmi_pdev_param_enable_peer_retry_stats,
|
||||
wmi_pdev_param_ul_trig_int,
|
||||
wmi_pdev_param_max,
|
||||
wmi_pdev_param_sub_channel_marking,
|
||||
} wmi_conv_pdev_params_id;
|
||||
|
||||
|
||||
|
@@ -93,4 +93,25 @@ QDF_STATUS wmi_send_usenol_pdev_param(void *wmi_hdl, bool usenol,
|
||||
|
||||
return wmi_unified_pdev_param_send(wmi_handle, &pparam, pdev_idx);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wmi_send_subchan_marking_pdev_param(void *wmi_hdl,
|
||||
bool subchanmark,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct pdev_params pparam;
|
||||
int pdev_idx;
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
pdev_idx = lmac_get_pdev_idx(pdev);
|
||||
if (pdev_idx < 0)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
qdf_mem_set(&pparam, sizeof(pparam), 0);
|
||||
pparam.param_id = wmi_pdev_param_sub_channel_marking;
|
||||
pparam.param_value = subchanmark;
|
||||
|
||||
return wmi_unified_pdev_param_send(wmi_handle, &pparam, pdev_idx);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -12118,6 +12118,8 @@ static void populate_pdev_param_tlv(uint32_t *pdev_param)
|
||||
/* Trigger interval for all trigger types. */
|
||||
pdev_param[wmi_pdev_param_ul_trig_int] =
|
||||
WMI_PDEV_PARAM_SET_UL_BSR_TRIG_INTERVAL;
|
||||
pdev_param[wmi_pdev_param_sub_channel_marking] =
|
||||
WMI_PDEV_PARAM_SUB_CHANNEL_MARKING;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Fai riferimento in un nuovo problema
Block a user