qcacmn: create the vdev response timers in psoc_mlme
Move the vdev response timer from the vdev object manager structure to the psoc mlme structure. Change-Id: Ieb87ac6549aa23e0beb61441fea459d3db78c2f3 CRs-Fixed: 2563410
Este commit está contenido en:
@@ -81,16 +81,22 @@ static inline char *string_from_rsp_bit(enum wlan_vdev_mgr_tgt_if_rsp_bit bit)
|
||||
|
||||
/**
|
||||
* struct vdev_response_timer - vdev mgmt response ops timer
|
||||
* @psoc: Object manager psoc
|
||||
* @rsp_timer: VDEV MLME mgmt response timer
|
||||
* @rsp_status: variable to check response status
|
||||
* @expire_time: time to expire timer
|
||||
* @timer_status: status of timer
|
||||
* @rsp_timer_inuse: Status bit to inform whether the rsp timer is inuse
|
||||
* @vdev_id: vdev object id
|
||||
*/
|
||||
struct vdev_response_timer {
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
qdf_timer_t rsp_timer;
|
||||
unsigned long rsp_status;
|
||||
uint32_t expire_time;
|
||||
QDF_STATUS timer_status;
|
||||
qdf_atomic_t rsp_timer_inuse;
|
||||
uint8_t vdev_id;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -28,19 +28,23 @@
|
||||
#include <wlan_mlme_dbg.h>
|
||||
#include <wlan_vdev_mlme_api.h>
|
||||
#include <target_if_vdev_mgr_tx_ops.h>
|
||||
#include <wlan_psoc_mlme_main.h>
|
||||
#include <include/wlan_psoc_mlme.h>
|
||||
|
||||
static struct vdev_response_timer *
|
||||
tgt_vdev_mgr_get_response_timer_info(struct wlan_objmgr_vdev *vdev)
|
||||
tgt_vdev_mgr_get_response_timer_info(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct psoc_mlme_obj *psoc_mlme;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_err("VDEV_%d: VDEV_MLME is NULL", wlan_vdev_get_id(vdev));
|
||||
psoc_mlme = mlme_psoc_get_priv(psoc);
|
||||
if (!psoc_mlme) {
|
||||
mlme_err("VDEV_%d PSOC_%d PSOC_MLME is NULL", vdev_id,
|
||||
wlan_psoc_get_id(psoc));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &vdev_mlme->vdev_rt;
|
||||
return &psoc_mlme->psoc_vdev_rt[vdev_id];
|
||||
}
|
||||
|
||||
static QDF_STATUS tgt_vdev_mgr_start_response_handler(
|
||||
@@ -65,7 +69,8 @@ static QDF_STATUS tgt_vdev_mgr_start_response_handler(
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_err("VDEV_%d: VDEV_MLME is NULL", rsp->vdev_id);
|
||||
mlme_err("VDEV_%d PSOC_%d VDEV_MLME is NULL", rsp->vdev_id,
|
||||
wlan_psoc_get_id(psoc));
|
||||
goto tgt_vdev_mgr_start_response_handler_end;
|
||||
}
|
||||
|
||||
@@ -101,7 +106,8 @@ static QDF_STATUS tgt_vdev_mgr_stop_response_handler(
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_err("VDEV_%d: VDEV_MLME is NULL", rsp->vdev_id);
|
||||
mlme_err("VDEV_%d: PSOC_%d VDEV_MLME is NULL", rsp->vdev_id,
|
||||
wlan_psoc_get_id(psoc));
|
||||
goto tgt_vdev_mgr_stop_response_handler_end;
|
||||
}
|
||||
|
||||
@@ -138,7 +144,8 @@ static QDF_STATUS tgt_vdev_mgr_delete_response_handler(
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_err("VDEV_%d: VDEV_MLME is NULL", rsp->vdev_id);
|
||||
mlme_err("VDEV_%d: PSOC_%d VDEV_MLME is NULL", rsp->vdev_id,
|
||||
wlan_psoc_get_id(psoc));
|
||||
goto tgt_vdev_mgr_delete_response_handler_end;
|
||||
}
|
||||
|
||||
@@ -176,7 +183,8 @@ static QDF_STATUS tgt_vdev_mgr_peer_delete_all_response_handler(
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_err("VDEV_%d: VDEV_MLME is NULL", rsp->vdev_id);
|
||||
mlme_err("VDEV_%d: PSOC_%d VDEV_MLME is NULL", rsp->vdev_id,
|
||||
wlan_psoc_get_id(psoc));
|
||||
goto tgt_vdev_mgr_peer_delete_all_response_handler_end;
|
||||
}
|
||||
|
||||
@@ -262,8 +270,7 @@ void tgt_vdev_mgr_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||
tgt_vdev_mgr_delete_response_handler;
|
||||
mlme_rx_ops->vdev_mgr_peer_delete_all_response =
|
||||
tgt_vdev_mgr_peer_delete_all_response_handler;
|
||||
mlme_rx_ops->vdev_mgr_get_response_timer_info =
|
||||
mlme_rx_ops->psoc_get_vdev_response_timer_info =
|
||||
tgt_vdev_mgr_get_response_timer_info;
|
||||
|
||||
tgt_vdev_mgr_reg_wakelock_info_rx_op(&rx_ops->mops);
|
||||
}
|
||||
|
@@ -63,7 +63,6 @@ QDF_STATUS tgt_vdev_mgr_create_send(
|
||||
enum wlan_op_subtype cdp_txrx_subtype;
|
||||
uint32_t vdev_id;
|
||||
uint8_t *vdev_addr;
|
||||
struct vdev_response_timer *vdev_rsp;
|
||||
|
||||
if (!param) {
|
||||
mlme_err("Invalid input");
|
||||
@@ -73,25 +72,27 @@ QDF_STATUS tgt_vdev_mgr_create_send(
|
||||
vdev = mlme_obj->vdev;
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
txops = wlan_vdev_mlme_get_lmac_txops(vdev);
|
||||
if (!txops || !txops->vdev_create_send ||
|
||||
!txops->vdev_mgr_rsp_timer_init) {
|
||||
mlme_err("VDEV_%d: No Tx Ops", vdev_id);
|
||||
if (!txops || !txops->vdev_create_send) {
|
||||
mlme_err("VDEV_%d No Tx Ops", vdev_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
mlme_err("psoc object is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
status = txops->vdev_create_send(vdev, param);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
vdev_rsp = &mlme_obj->vdev_rt;
|
||||
txops->vdev_mgr_rsp_timer_init(vdev, &vdev_rsp->rsp_timer);
|
||||
} else {
|
||||
mlme_err("VDEV_%d: Tx Ops Error : %d", vdev_id, status);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mlme_err("VDEV_%d PSOC_%d Tx Ops Error : %d", vdev_id,
|
||||
wlan_psoc_get_id(psoc), status);
|
||||
return status;
|
||||
}
|
||||
|
||||
cdp_txrx_opmode = wlan_util_vdev_get_cdp_txrx_opmode(vdev);
|
||||
cdp_txrx_subtype = wlan_util_vdev_get_cdp_txrx_subtype(vdev);
|
||||
vdev_addr = wlan_vdev_mlme_get_macaddr(vdev);
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
pdev = wlan_vdev_get_pdev(vdev);
|
||||
soc_txrx_handle = wlan_psoc_get_dp_handle(psoc);
|
||||
pdev_txrx_handle = wlan_pdev_get_dp_handle(pdev);
|
||||
@@ -107,7 +108,6 @@ QDF_STATUS tgt_vdev_mgr_create_send(
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
wlan_vdev_set_dp_handle(vdev, vdev_txrx_handle);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Referencia en una nueva incidencia
Block a user