diff --git a/htc/htc_api.h b/htc/htc_api.h index cd79a79238..388cf9f87b 100644 --- a/htc/htc_api.h +++ b/htc/htc_api.h @@ -54,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 747505b331..4854790ff1 100644 --- a/htc/htc_recv.c +++ b/htc/htc_recv.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2013-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 @@ -394,6 +395,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); @@ -451,24 +453,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 fa0832bd06..0a5195551a 100644 --- a/utils/epping/src/epping_main.c +++ b/utils/epping/src/epping_main.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2014-2019,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 @@ -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,