qcacld-3.0: Add cnx mgr logic for connect and disconnect ext ind
Add connection manager logic to handle p2p/tdls/policy mgr logics on connect/disconnect start and complete ext indication. And add the call to csr to update the legacy structs. Change-Id: I218a1d193dd62ad041e84078bd2509b82ec11363 CRs-Fixed: 2846663
Este commit está contenido en:

cometido por
snandini

padre
26600dee50
commit
f8a769a7b6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2019-2020 The Linux Foundation. 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
|
||||
@@ -24,6 +24,7 @@
|
||||
#define _WLAN_P2P_API_H_
|
||||
|
||||
#include <qdf_types.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
|
||||
/**
|
||||
* wlan_p2p_check_oui_and_force_1x1() - Function to get P2P client device
|
||||
@@ -38,4 +39,25 @@
|
||||
* Return: True if OUI is present, else false.
|
||||
*/
|
||||
bool wlan_p2p_check_oui_and_force_1x1(uint8_t *assoc_ie, uint32_t ie_len);
|
||||
|
||||
/**
|
||||
* wlan_p2p_cleanup_roc_by_vdev() - Cleanup roc request by vdev
|
||||
* @vdev: pointer to vdev object
|
||||
*
|
||||
* This function call P2P API to cleanup roc request by vdev
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS - in case of success
|
||||
*/
|
||||
QDF_STATUS wlan_p2p_cleanup_roc_by_vdev(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_p2p_status_connect() - Update P2P connection status
|
||||
* @vdev: vdev context
|
||||
*
|
||||
* Updates P2P connection status by up layer when connecting.
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS - in case of success
|
||||
*/
|
||||
QDF_STATUS wlan_p2p_status_connect(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#endif
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2019-2020 The Linux Foundation. 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
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include "wlan_p2p_public_struct.h"
|
||||
#include "../../core/src/wlan_p2p_main.h"
|
||||
#include "../../core/src/wlan_p2p_roc.h"
|
||||
|
||||
bool wlan_p2p_check_oui_and_force_1x1(uint8_t *assoc_ie, uint32_t assoc_ie_len)
|
||||
{
|
||||
@@ -32,3 +33,41 @@ bool wlan_p2p_check_oui_and_force_1x1(uint8_t *assoc_ie, uint32_t assoc_ie_len)
|
||||
|
||||
return p2p_check_oui_and_force_1x1(assoc_ie, assoc_ie_len);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_p2p_cleanup_roc_by_vdev(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct p2p_soc_priv_obj *p2p_soc_obj;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
p2p_debug("vdev:%pK", vdev);
|
||||
|
||||
if (!vdev) {
|
||||
p2p_debug("null vdev");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
p2p_err("null psoc");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
p2p_soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_P2P);
|
||||
if (!p2p_soc_obj) {
|
||||
p2p_err("p2p soc context is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return p2p_cleanup_roc_sync(p2p_soc_obj, vdev);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_p2p_status_connect(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
if (!vdev) {
|
||||
p2p_err("vdev is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
return p2p_status_connect(vdev);
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@
|
||||
#include <scheduler_api.h>
|
||||
#include "wlan_p2p_public_struct.h"
|
||||
#include "wlan_p2p_ucfg_api.h"
|
||||
#include "wlan_p2p_api.h"
|
||||
#include "../../core/src/wlan_p2p_main.h"
|
||||
#include "../../core/src/wlan_p2p_roc.h"
|
||||
#include "../../core/src/wlan_p2p_off_chan_tx.h"
|
||||
@@ -226,30 +227,7 @@ QDF_STATUS ucfg_p2p_roc_cancel_req(struct wlan_objmgr_psoc *soc,
|
||||
|
||||
QDF_STATUS ucfg_p2p_cleanup_roc_by_vdev(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct p2p_soc_priv_obj *p2p_soc_obj;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
p2p_debug("vdev:%pK", vdev);
|
||||
|
||||
if (!vdev) {
|
||||
p2p_debug("null vdev");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
p2p_err("null psoc");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
p2p_soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_P2P);
|
||||
if (!p2p_soc_obj) {
|
||||
p2p_err("p2p soc context is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return p2p_cleanup_roc_sync(p2p_soc_obj, vdev);
|
||||
return wlan_p2p_cleanup_roc_by_vdev(vdev);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_p2p_cleanup_roc_by_psoc(struct wlan_objmgr_psoc *psoc)
|
||||
@@ -607,12 +585,7 @@ QDF_STATUS ucfg_p2p_status_scan(struct wlan_objmgr_vdev *vdev)
|
||||
|
||||
QDF_STATUS ucfg_p2p_status_connect(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
if (!vdev) {
|
||||
p2p_err("vdev is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
return p2p_status_connect(vdev);
|
||||
return wlan_p2p_status_connect(vdev);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_p2p_status_disconnect(struct wlan_objmgr_vdev *vdev)
|
||||
|
Referencia en una nueva incidencia
Block a user