qcacmn: Support multivdev restart response handling

Add UMAC change to support consolidated multi vdev
response handling.

Change-Id: I3383c723a96b1c8009665b00e19aa5aa4bf65bfb
CRs-Fixed: 2595743
这个提交包含在:
Santosh Anbu
2020-01-02 15:12:04 +05:30
提交者 nshrivas
父节点 8fcc17ccf9
当前提交 060bf3975a
修改 5 个文件,包含 60 行新增4 行删除

查看文件

@@ -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);
}