qcacmn: Handle vendor control command and event

WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID: Add support
for a new roam command to get vendor control parameters
from FW. Host needs to send proper param ID in command
(from enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID)
to get corresponding INI value from FW.

WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID:
Add support for a new roam event to get param value
from FW. FW sends this event upon receiving
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID command.

Change-Id: Ic7b3badb14daff183dd36927b4dae6bbc036e6cd
CRs-Fixed: 3225166
这个提交包含在:
abhinav kumar
2022-05-22 21:17:40 +05:30
提交者 Madan Koyyalamudi
父节点 87136b1636
当前提交 edd1669c23
修改 8 个文件,包含 144 行新增0 行删除

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2015, 2020-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 above
@@ -152,6 +153,20 @@ typedef QDF_STATUS
struct wlan_cm_connect_resp *rsp,
enum osif_cb_type type);
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
/**
* typedef osif_cm_get_vendor_handoff_params_cb - process vendor handoff cb
* @psoc: psoc pointer
* @rsp: vendor handoff response
* @vendor_handoff_context: vendor handoff context
*
* return: none
*/
typedef QDF_STATUS
(*osif_cm_get_vendor_handoff_params_cb)(struct wlan_objmgr_psoc *psoc,
void *vendor_handoff_context);
#endif
#ifdef WLAN_FEATURE_FILS_SK
/**
* typedef osif_cm_save_gtk_cb - save gtk callback
@@ -306,6 +321,8 @@ typedef QDF_STATUS
* transition event
* @cckm_preauth_complete_cb: callback to legacy module to send cckm
* preauth indication to the supplicant via wireless custom event.
* @vendor_handoff_params_cb: callback to legacy module to send vendor handoff
* parameters to upper layer
*/
struct osif_cm_ops {
osif_cm_connect_comp_cb connect_complete_cb;
@@ -324,6 +341,9 @@ struct osif_cm_ops {
osif_cm_cckm_preauth_complete_cb cckm_preauth_complete_cb;
#endif
#endif
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
osif_cm_get_vendor_handoff_params_cb vendor_handoff_params_cb;
#endif
};
/**
@@ -342,6 +362,19 @@ QDF_STATUS osif_cm_connect_comp_ind(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_resp *rsp,
enum osif_cb_type type);
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
/**
* osif_cm_vendor_handoff_params_cb() - Function to process vendor handoff
* event callback
* @psoc: psoc object pointer
* @vendor_handoff_context: vendor handoff context
*
* Return: QDF_STATUS
*/
QDF_STATUS osif_cm_vendor_handoff_params_cb(struct wlan_objmgr_psoc *psoc,
void *vendor_handoff_context);
#endif
/**
* osif_cm_disconnect_comp_ind() - Function to indicate disconnect
* complete to legacy module

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2015, 2020-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 above
@@ -479,6 +480,10 @@ static struct mlme_cm_ops cm_ops = {
.mlme_cm_cckm_preauth_cmpl_cb = osif_cm_cckm_preauth_cmpl_cb,
#endif
#endif
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
.mlme_cm_get_vendor_handoff_params_cb =
osif_cm_vendor_handoff_params_cb,
#endif
};
/**
@@ -548,6 +553,21 @@ QDF_STATUS osif_cm_connect_comp_ind(struct wlan_objmgr_vdev *vdev,
return ret;
}
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
QDF_STATUS osif_cm_vendor_handoff_params_cb(struct wlan_objmgr_psoc *psoc,
void *vendor_handoff_context)
{
osif_cm_get_vendor_handoff_params_cb cb = NULL;
if (osif_cm_legacy_ops)
cb = osif_cm_legacy_ops->vendor_handoff_params_cb;
if (cb)
return cb(psoc, vendor_handoff_context);
return QDF_STATUS_E_FAILURE;
}
#endif
QDF_STATUS osif_cm_disconnect_comp_ind(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_discon_rsp *rsp,
enum osif_cb_type type)