wifi: rtw89: pci: validate RX tag for RXQ and RPQ
authorPing-Ke Shih <pkshih@realtek.com>
Sun, 21 Jan 2024 07:18:25 +0000 (15:18 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 1 Feb 2024 10:15:42 +0000 (12:15 +0200)
commit0bc7d1d4e63cf31ff1b4396b0e2f0e3c76828d26
tree04a75a77e01263029617080323adbc4c6c64b8b9
parent26cdaee43dc5f9c9d0c5429b365b8f094afad717
wifi: rtw89: pci: validate RX tag for RXQ and RPQ

PCI RX ring is a kind of read/write index ring, and DMA and ring index are
asynchronous, so suddenly driver gets newer index ahead before DMA. To
resolve this rare situation, we use a RX tag as helpers to make sure DMA
is done.

The RX tag is a 13-bit value, and range is from 1 ~ 0x1FFF, but 0 isn't
used so should be skipped.

Only enable this validation to coming WiFi 7 chips, because existing
chips use different design and don't really meet this situation.

Add missed rx_ring_eq_is_full for 8851BE by the way.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240121071826.10159-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/pci.c
drivers/net/wireless/realtek/rtw89/pci.h
drivers/net/wireless/realtek/rtw89/rtw8851be.c
drivers/net/wireless/realtek/rtw89/rtw8852ae.c
drivers/net/wireless/realtek/rtw89/rtw8852be.c
drivers/net/wireless/realtek/rtw89/rtw8852ce.c
drivers/net/wireless/realtek/rtw89/rtw8922ae.c