wcn36xx: Fix packet drop on resume
authorLoic Poulain <loic.poulain@linaro.org>
Mon, 25 Oct 2021 08:28:16 +0000 (10:28 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:20 +0000 (19:16 +0100)
commit194e8d7ad91fc465e40f55219208bf6166324fe9
tree3f2d7f2c4cdb499046daaefead5b6fa9118fa71c
parent397fec25850c7b4fd466c66043043cec07b63a00
wcn36xx: Fix packet drop on resume

[ Upstream commit df0697801d8aa2eebfe7f0b7388879639f8fe7cc ]

If the system is resumed because of an incoming packet, the wcn36xx RX
interrupts is fired before actual resuming of the wireless/mac80211
stack, causing any received packets to be simply dropped. E.g. a ping
request causes a system resume, but is dropped and so never forwarded
to the IP stack.

This change fixes that, disabling DMA interrupts on suspend to no pass
packets until mac80211 is resumed and ready to handle them.

Note that it's not incompatible with RX irq wake.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1635150496-19290-1-git-send-email-loic.poulain@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ath/wcn36xx/main.c