mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 13:49:24 -04:00
qcacmn: Add mlme apis and callbacks for connection manager
Add support for mlme apis and callbacks for connection manager infrastructure. Change-Id: Ia7a4060dc2bda41962569a298875bde7cd7ba283 CRs-Fixed: 2758028
This commit is contained in:
parent
8bfe4863ef
commit
30f4cf7c40
4 changed files with 397 additions and 0 deletions
|
|
@ -46,6 +46,58 @@ QDF_STATUS wlan_cm_start_connect(struct wlan_objmgr_vdev *vdev,
|
|||
QDF_STATUS wlan_cm_start_disconnect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *req);
|
||||
|
||||
/**
|
||||
* wlan_cm_bss_peer_create_rsp() - Connection manager bss peer create response
|
||||
* @vdev: vdev pointer
|
||||
* @status: Status
|
||||
* @peer_mac: Peer mac address
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_bss_peer_create_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t status,
|
||||
struct qdf_mac_addr *peer_mac);
|
||||
|
||||
/**
|
||||
* wlan_cm_connect_rsp() - Connection manager connect response
|
||||
* @vdev: vdev pointer
|
||||
* @cm_conn_rsp: Connect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_connect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *cm_conn_rsp);
|
||||
|
||||
/**
|
||||
* wlan_cm_bss_peer_delete_ind() - Connection manager peer delete indication
|
||||
* @vdev: vdev pointer
|
||||
* @peer_mac: Peer mac address
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_bss_peer_delete_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac);
|
||||
|
||||
/**
|
||||
* wlan_cm_bss_peer_delete_rsp() - Connection manager peer delete response
|
||||
* @vdev: vdev pointer
|
||||
* @status: status
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_bss_peer_delete_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t status);
|
||||
|
||||
/**
|
||||
* wlan_cm_disconnect_rsp() - Connection manager disconnect response
|
||||
* @vdev: vdev pointer
|
||||
* @cm_discon_rsp: disconnect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp cm_discon_rsp);
|
||||
|
||||
#endif
|
||||
#endif /* __WLAN_CM_UCFG_API_H */
|
||||
|
||||
|
|
|
|||
|
|
@ -35,3 +35,33 @@ QDF_STATUS wlan_cm_start_disconnect(struct wlan_objmgr_vdev *vdev,
|
|||
return cm_disconnect_start_req(vdev, req);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_bss_peer_create_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t status,
|
||||
struct qdf_mac_addr *peer_mac)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_connect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *cm_conn_rsp)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_bss_peer_delete_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_bss_peer_delete_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t status)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp cm_discon_rsp)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@
|
|||
#include <include/wlan_psoc_mlme.h>
|
||||
#include <include/wlan_pdev_mlme.h>
|
||||
#include <include/wlan_vdev_mlme.h>
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
#include "wlan_cm_public_struct.h"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct vdev_mlme_ext_ops - VDEV MLME legacy callbacks structure
|
||||
|
|
@ -49,6 +52,19 @@
|
|||
* required by serialization
|
||||
* @mlme_multi_vdev_restart_resp: callback to process multivdev restart
|
||||
* response
|
||||
* @mlme_cm_ext_connect_start: Callback to start connect request
|
||||
* @mlme_cm_ext_connect_active: Callback to indicate connect active
|
||||
* @mlme_cm_ext_bss_peer_create_req: Callback to bss peer create request
|
||||
* @mlme_cm_ext_connect_req: Callback for connect request to LIM
|
||||
* @mlme_cm_ext_connect_complete: Callback to indicate connect complete
|
||||
* @mlme_cm_ext_disconnect_start : Callback to start disconnect request
|
||||
* @mlme_cm_ext_disconnect_active: Callback to indicate disconnect active
|
||||
* @mlme_cm_ext_bss_peer_delete_req: Callback to bss peer delete request
|
||||
* @mlme_cm_ext_disconnect_complete: Callback to indicate disconnect
|
||||
* complete
|
||||
* @mlme_cm_ext_osif_connect: Callback to indicate connect complete
|
||||
* @mlme_cm_ext_osif_disconnect: Callback to indicate disconnect complete
|
||||
* @mlme_cm_ext_vdev_down: Callback to send vdev down to FW
|
||||
*/
|
||||
struct mlme_ext_ops {
|
||||
QDF_STATUS (*mlme_psoc_ext_hdl_create)(
|
||||
|
|
@ -80,6 +96,42 @@ struct mlme_ext_ops {
|
|||
QDF_STATUS (*mlme_multi_vdev_restart_resp)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct multi_vdev_restart_resp *resp);
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
QDF_STATUS (*mlme_cm_ext_connect_start)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_req *cm_conn_req);
|
||||
QDF_STATUS (*mlme_cm_ext_connect_active)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *vdev_connect_req);
|
||||
QDF_STATUS (*mlme_cm_ext_bss_peer_create_req)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac);
|
||||
QDF_STATUS (*mlme_cm_ext_connect_req)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *vdev_connect_req);
|
||||
QDF_STATUS (*mlme_cm_ext_connect_complete)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *connect_rsp);
|
||||
QDF_STATUS (*mlme_cm_ext_disconnect_start)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *cm_conn_req);
|
||||
QDF_STATUS (*mlme_cm_ext_disconnect_active)
|
||||
(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_discon_req *vdev_disconnect_req);
|
||||
QDF_STATUS (*mlme_cm_ext_bss_peer_delete_req)(
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
QDF_STATUS (*mlme_cm_ext_disconnect_complete)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *cm_disconnect_rsp);
|
||||
QDF_STATUS (*mlme_cm_ext_osif_connect)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *cm_connect_rsp);
|
||||
QDF_STATUS (*mlme_cm_ext_osif_disconnect)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *cm_disconnect_rsp);
|
||||
QDF_STATUS (*mlme_cm_ext_vdev_down)(
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -277,4 +329,135 @@ QDF_STATUS wlan_cmn_mlme_deinit(void);
|
|||
*/
|
||||
QDF_STATUS mlme_vdev_ops_ext_hdl_delete_rsp(struct wlan_objmgr_psoc *psoc,
|
||||
struct vdev_delete_response *rsp);
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
/**
|
||||
* mlme_cm_ops_ext_connect_start - Connection manager connect start
|
||||
* handler
|
||||
* @vdev: VDEV object
|
||||
* @req: Connection manager connect request
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_req *req);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_connect_active - Connection manager indicate connect
|
||||
* active handler
|
||||
* @vdev: VDEV object
|
||||
* @req: Vdev connect request
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_active(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *req);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_bss_peer_create_req - Connection manager bss peer
|
||||
* create request handler
|
||||
* @vdev: VDEV object
|
||||
* @peer_mac: Peer mac address
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_connect_req - Connection manager connect request handler
|
||||
* @vdev: VDEV object
|
||||
* @req: Vdev connect request
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *req);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_connect_complete - Connection manager connect complete
|
||||
* handler
|
||||
* @vdev: VDEV object
|
||||
* @rsp: Connection manager connect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *rsp);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_disconnect_start - Connection manager disconnect start
|
||||
* handler
|
||||
* @vdev: VDEV object
|
||||
* @req: Connection manager disconnect request
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_disconnect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *req);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_disconnect_active - Connection manager disconnect
|
||||
* active handler
|
||||
* @vdev: VDEV object
|
||||
* @req: vdev disconnect request
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
mlme_cm_ops_ext_disconnect_active(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_discon_req *req);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_bss_peer_delete_req - Connection manager bss peer delete
|
||||
* request handler
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
mlme_cm_ops_ext_bss_peer_delete_req(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_disconnect_complete - Connection manager disconnect
|
||||
* complete handler
|
||||
* @vdev: VDEV object
|
||||
* @rsp: Connection manager disconnect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_disconnect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_osif_connect - Connection manager osif connect handler
|
||||
* @vdev: VDEV object
|
||||
* @rsp: Connection manager connect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_osif_connect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *rsp);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_osif_disconnect - Connection manager osif disconnect
|
||||
* handler
|
||||
* @vdev: VDEV object
|
||||
* @rsp: Connection manager disconnect response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ops_ext_osif_disconnect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp);
|
||||
|
||||
/**
|
||||
* mlme_cm_ops_ext_osif_disconnect - Function to send vdev down to FW
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS mlme_cm_ext_vdev_down(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -217,6 +217,138 @@ QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
|
|||
return ret;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_req *req)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_connect_start)
|
||||
ret = glbl_ops->mlme_cm_ext_connect_start(vdev, req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_active(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *req)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_connect_active)
|
||||
ret = glbl_ops->mlme_cm_ext_connect_active(vdev, req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *peer_mac)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_bss_peer_create_req)
|
||||
ret = glbl_ops->mlme_cm_ext_bss_peer_create_req(vdev,
|
||||
peer_mac);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_connect_req *req)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_connect_req)
|
||||
ret = glbl_ops->mlme_cm_ext_connect_req(vdev, req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_connect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *rsp)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_connect_complete)
|
||||
ret = glbl_ops->mlme_cm_ext_connect_complete(vdev, rsp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_disconnect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_disconnect_req *req)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_disconnect_start)
|
||||
ret = glbl_ops->mlme_cm_ext_disconnect_start(vdev, req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
mlme_cm_ops_ext_disconnect_active(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_discon_req *req)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_disconnect_active)
|
||||
ret = glbl_ops->mlme_cm_ext_disconnect_active(vdev, req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_bss_peer_delete_req(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_bss_peer_delete_req)
|
||||
ret = glbl_ops->mlme_cm_ext_bss_peer_delete_req(vdev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_disconnect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_disconnect_complete)
|
||||
ret = glbl_ops->mlme_cm_ext_disconnect_complete(vdev, rsp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_osif_connect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *rsp)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_osif_connect)
|
||||
ret = glbl_ops->mlme_cm_ext_osif_connect(vdev, rsp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ops_ext_osif_disconnect(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *rsp)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_osif_disconnect)
|
||||
ret = glbl_ops->mlme_cm_ext_osif_disconnect(vdev, rsp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_cm_ext_vdev_down(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_cm_ext_vdev_down)
|
||||
ret = glbl_ops->mlme_cm_ext_vdev_down(vdev);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
void mlme_set_ops_register_cb(mlme_get_global_ops_cb ops_cb)
|
||||
{
|
||||
glbl_ops_cb = ops_cb;
|
||||
|
|
|
|||
Loading…
Reference in a new issue