Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbf3081a authored by Amit Mehta's avatar Amit Mehta
Browse files

qcacmn: Get wow nack reason code

Currently, Fw did not set NACK reason code
to Host when Fw is not ready for WoW.

As part of the new change, Fw will send NACK
reason code along with WoW NACK to host.
Make changes in host to parse NACK reason
code from the received message.

Change-Id: I17ee99cb302ff546731a46d3ce03977c3c3d5a67
CRs-Fixed: 3481189
parent 89a6797c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
/*
 * 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;
+8 −2
Original line number Diff line number Diff line
/*
 * 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;
			}

+4 −1
Original line number Diff line number Diff line
/*
 * 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,