qcacmn: Support multivdev restart response handling
Add UMAC change to support consolidated multi vdev response handling. Change-Id: I3383c723a96b1c8009665b00e19aa5aa4bf65bfb CRs-Fixed: 2595743
这个提交包含在:
@@ -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 above
|
||||
@@ -47,6 +47,8 @@
|
||||
* command
|
||||
* @mlme_vdev_enqueue_exp_cmd: callback to enqueue exception command
|
||||
* required by serialization
|
||||
* @mlme_multi_vdev_restart_resp: callback to process multivdev restart
|
||||
* response
|
||||
*/
|
||||
struct mlme_ext_ops {
|
||||
QDF_STATUS (*mlme_psoc_ext_hdl_create)(
|
||||
@@ -75,6 +77,9 @@ struct mlme_ext_ops {
|
||||
QDF_STATUS (*mlme_vdev_ext_delete_rsp)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct vdev_delete_response *rsp);
|
||||
QDF_STATUS (*mlme_multi_vdev_restart_resp)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct multi_vdev_restart_resp *resp);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -216,6 +221,19 @@ QDF_STATUS mlme_vdev_ops_stop_fw_send(struct wlan_objmgr_vdev *vdev);
|
||||
*/
|
||||
QDF_STATUS mlme_vdev_ops_down_fw_send(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/*
|
||||
* mlme_vdev_ops_ext_hdl_multivdev_restart_resp() - Handler multivdev restart
|
||||
* response event
|
||||
* @psoc: PSOC object manager handle
|
||||
* @resp: Restart response event
|
||||
*
|
||||
* Return: Success on successful handling of the response event,
|
||||
* Else failure
|
||||
*/
|
||||
QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct multi_vdev_restart_resp *resp);
|
||||
|
||||
/**
|
||||
* mlme_set_ops_register_cb - Sets ops registration callback
|
||||
* @ops_cb: Function pointer
|
||||
|
@@ -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 above
|
||||
@@ -205,6 +205,18 @@ QDF_STATUS mlme_vdev_ops_ext_hdl_delete_rsp(struct wlan_objmgr_psoc *psoc,
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct multi_vdev_restart_resp *resp)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||
|
||||
if ((glbl_ops) && glbl_ops->mlme_multi_vdev_restart_resp)
|
||||
ret = glbl_ops->mlme_multi_vdev_restart_resp(psoc, resp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void mlme_set_ops_register_cb(mlme_get_global_ops_cb ops_cb)
|
||||
{
|
||||
glbl_ops_cb = ops_cb;
|
||||
|
@@ -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
|
||||
@@ -150,4 +150,17 @@ struct peer_delete_all_response {
|
||||
uint8_t status;
|
||||
};
|
||||
|
||||
#define VDEV_ID_BMAP_SIZE 2
|
||||
/**
|
||||
* struct multi_vdev_restart_resp - multi-vdev restart response structure
|
||||
* @pdev_id: pdev id
|
||||
* @status: FW status for multi vdev restart request
|
||||
* @vdev_id_bmap: Bitmap of vdev_ids
|
||||
*/
|
||||
struct multi_vdev_restart_resp {
|
||||
uint8_t pdev_id;
|
||||
uint8_t status;
|
||||
unsigned long vdev_id_bmap[VDEV_ID_BMAP_SIZE];
|
||||
};
|
||||
|
||||
#endif /* __WLAN_VDEV_MGR_TGT_IF_RX_DEFS_H__ */
|
||||
|
@@ -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
|
||||
@@ -199,6 +199,13 @@ tgt_vdev_mgr_ext_tbttoffset_update_handle(uint32_t num_vdevs, bool is_ext)
|
||||
return status;
|
||||
}
|
||||
|
||||
static QDF_STATUS tgt_vdev_mgr_multi_vdev_restart_resp_handler(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct multi_vdev_restart_resp *resp)
|
||||
{
|
||||
return mlme_vdev_ops_ext_hdl_multivdev_restart_resp(psoc, resp);
|
||||
}
|
||||
|
||||
#ifdef FEATURE_VDEV_RSP_WAKELOCK
|
||||
static struct psoc_mlme_wakelock *
|
||||
tgt_psoc_get_wakelock_info(struct wlan_objmgr_psoc *psoc)
|
||||
@@ -247,5 +254,7 @@ void tgt_vdev_mgr_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||
tgt_vdev_mgr_peer_delete_all_response_handler;
|
||||
mlme_rx_ops->psoc_get_vdev_response_timer_info =
|
||||
tgt_vdev_mgr_get_response_timer_info;
|
||||
mlme_rx_ops->vdev_mgr_multi_vdev_restart_resp =
|
||||
tgt_vdev_mgr_multi_vdev_restart_resp_handler;
|
||||
tgt_psoc_reg_wakelock_info_rx_op(&rx_ops->mops);
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户