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

Commit da0c01f7 authored by Yu Tian's avatar Yu Tian Committed by snandini
Browse files

qcacmn: Add RX frame pending check for WoW

Sometimes frames are queued to dp_rx_thread wait queue
during WoW suspend in progress. At this time dp_rx_thread
is in SUSPEND state and these frames can't deliver to Linux
Stack, for ICMP case, if no other frames come to wake up
system, ICMP timeout will happen. Add a RX suspend check
in WoW to avoid suspend when frame comes before WMI_WOW_ENABLE
sends to FW

Change-Id: I756d3127f75da8f0e6e303c1250c01ce0c6ac573
CRs-Fixed: 2756263
parent 1162f9e8
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -2545,4 +2545,18 @@ cdp_vdev_get_peer_mac_list(ol_txrx_soc_handle soc,
			(soc, vdev_id, newmac, mac_cnt);
}

/**
 * cdp_rx_get_pending() - Get number of pending frames of RX threads
 * @soc: opaque soc handle
 * Return: number of pending frames
 */
static inline int
cdp_rx_get_pending(ol_txrx_soc_handle soc)
{
	if (!soc || !soc->ol_ops ||
	    !soc->ol_ops->dp_rx_get_pending)
		return 0;

	return soc->ol_ops->dp_rx_get_pending(soc);
}
#endif /* _CDP_TXRX_CMN_H_ */
+2 −0
Original line number Diff line number Diff line
@@ -1119,6 +1119,8 @@ struct ol_if_ops {
	void (*dp_put_multi_pages)(uint32_t desc_type,
				   struct qdf_mem_multi_page_t *pages);
#endif
	int (*dp_rx_get_pending)(ol_txrx_soc_handle soc);
	/* TODO: Add any other control path calls required to OL_IF/WMA layer */
};