qcacmn: Trigger UMAC reset with mode1 SSR teardown

Add support to trigger UMAC reset with mode1 teardown request
for mode1 target recovery SSR.

Change-Id: Ib2d1679162a2084488081c76f6753287a6e4d5c4
CRs-Fixed: 3458369
这个提交包含在:
Surya Prakash Raajen
2023-04-26 15:28:20 +05:30
提交者 Madan Koyyalamudi
父节点 351f4a79a7
当前提交 cb01519700
修改 8 个文件,包含 95 行新增33 行删除

查看文件

@@ -1,7 +1,7 @@
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. 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,21 +47,23 @@ struct wmi_mlo_ready_params {
/** enum wmi_mlo_teardown_reason - Reason code in WMI MLO teardown command
* @WMI_MLO_TEARDOWN_REASON_DOWN: Wifi down
* @WMI_MLO_TEARDOWN_REASON_SSR: Wifi Recovery
* @WMI_MLO_TEARDOWN_REASON_CLEANUP_DONE: SSR related cleanup done
* @WMI_MLO_TEARDOWN_REASON_MODE1_SSR: Recovery Mode1 SSR teardown
*/
enum wmi_mlo_teardown_reason {
WMI_MLO_TEARDOWN_REASON_DOWN,
WMI_MLO_TEARDOWN_REASON_SSR,
WMI_MLO_TEARDOWN_REASON_CLEANUP_DONE,
WMI_MLO_TEARDOWN_REASON_MODE1_SSR,
};
/** struct wmi_mlo_teardown_params - MLO teardown command params
* @pdev_id: pdev id of radio on which this command is sent
* @reason: reason code from enum wmi_mlo_teardown_reason
* @umac_reset: trigger umac reset for mode1 or not
*/
struct wmi_mlo_teardown_params {
uint32_t pdev_id;
enum wmi_mlo_teardown_reason reason;
bool umac_reset;
};
/** enum wmi_mlo_setup_status - Status code in WMI MLO setup completion event

查看文件

@@ -1645,6 +1645,7 @@ QDF_STATUS mlo_teardown_cmd_send_tlv(struct wmi_unified *wmi_handle,
param->pdev_id);
switch (param->reason) {
case WMI_MLO_TEARDOWN_REASON_SSR:
case WMI_MLO_TEARDOWN_REASON_MODE1_SSR:
cmd->reason_code = WMI_MLO_TEARDOWN_SSR_REASON;
break;
case WMI_MLO_TEARDOWN_REASON_DOWN:
@@ -1653,6 +1654,8 @@ QDF_STATUS mlo_teardown_cmd_send_tlv(struct wmi_unified *wmi_handle,
break;
}
cmd->trigger_umac_reset = param->umac_reset;
wmi_mtrace(WMI_MLO_TEARDOWN_CMDID, NO_SESSION, 0);
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
WMI_MLO_TEARDOWN_CMDID);