diff --git a/htc/htc_api.h b/htc/htc_api.h index 18fd830b0b1a..ae400350f95a 100644 --- a/htc/htc_api.h +++ b/htc/htc_api.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2013-2014, 2016-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 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 @@ -53,7 +54,8 @@ typedef void (*HTC_TARGET_FAILURE)(void *Instance, QDF_STATUS Status); struct htc_init_info { void *pContext; /* context for target notifications */ void (*TargetFailure)(void *Instance, QDF_STATUS Status); - void (*TargetSendSuspendComplete)(void *ctx, bool is_nack); + void (*TargetSendSuspendComplete)(void *ctx, bool is_nack, + uint16_t reason_code); void (*target_initial_wakeup_cb)(void *cb_ctx); void *target_psoc; uint32_t cfg_wmi_credit_cnt; diff --git a/htc/htc_recv.c b/htc/htc_recv.c index 2d6047da83ef..2c3371a6e872 100644 --- a/htc/htc_recv.c +++ b/htc/htc_recv.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 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 @@ -397,6 +398,7 @@ QDF_STATUS htc_rx_completion_handler(void *Context, qdf_nbuf_t netbuf, uint16_t message_id; HTC_UNKNOWN_MSG *htc_msg; bool wow_nack; + uint16_t reason_code; /* remove HTC header */ qdf_nbuf_pull_head(netbuf, HTC_HDR_LENGTH); @@ -455,24 +457,28 @@ QDF_STATUS htc_rx_completion_handler(void *Context, qdf_nbuf_t netbuf, #endif case HTC_MSG_SEND_SUSPEND_COMPLETE: wow_nack = false; + reason_code = 0; htc_credit_record(HTC_SUSPEND_ACK, pEndpoint->TxCredits, HTC_PACKET_QUEUE_DEPTH( &pEndpoint->TxQueue)); target->HTCInitInfo.TargetSendSuspendComplete( target->HTCInitInfo.target_psoc, - wow_nack); + wow_nack, reason_code); break; case HTC_MSG_NACK_SUSPEND: wow_nack = true; + reason_code = HTC_GET_FIELD(htc_msg, + HTC_UNKNOWN_MSG, + METADATA); htc_credit_record(HTC_SUSPEND_ACK, pEndpoint->TxCredits, HTC_PACKET_QUEUE_DEPTH( &pEndpoint->TxQueue)); target->HTCInitInfo.TargetSendSuspendComplete( target->HTCInitInfo.target_psoc, - wow_nack); + wow_nack, reason_code); break; } diff --git a/utils/epping/src/epping_main.c b/utils/epping/src/epping_main.c index 7f8ceb83df65..0716135c8deb 100644 --- a/utils/epping/src/epping_main.c +++ b/utils/epping/src/epping_main.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 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 @@ -160,8 +161,10 @@ void epping_close(void) * epping_target_suspend_acknowledge() - process wow ack/nack from fw * @context: htc_init_info->context * @wow_nack: true when wow is rejected + * @reason_code : WoW status reason code */ -static void epping_target_suspend_acknowledge(void *context, bool wow_nack) +static void epping_target_suspend_acknowledge(void *context, bool wow_nack, + uint16_t reson_code) { if (!g_epping_ctx) { EPPING_LOG(QDF_TRACE_LEVEL_FATAL,