wifi: mt76: Differentiate between RRO data and RRO MSDU queues

This is a preliminary patch to enable WED support for MT7992 Kite
chipset supported by MT7996 driver.

Co-developed-by: Sujuan Chen <[email protected]>
Signed-off-by: Sujuan Chen <[email protected]>
Co-developed-by: Benjamin Lin <[email protected]>
Signed-off-by: Benjamin Lin <[email protected]>
Signed-off-by: Rex Lu <[email protected]>
Co-developed-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
Rex Lu
2025-09-04 19:09:11 +02:00
committed by Felix Fietkau
parent 4a3a5a7d71
commit d540538299
2 changed files with 11 additions and 4 deletions
+1 -1
View File
@@ -477,7 +477,7 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
if (!q->queued) if (!q->queued)
return NULL; return NULL;
if (mt76_queue_is_wed_rro_data(q)) if (mt76_queue_is_wed_rro_data(q) || mt76_queue_is_wed_rro_msdu_pg(q))
return NULL; return NULL;
if (!mt76_queue_is_wed_rro_ind(q)) { if (!mt76_queue_is_wed_rro_ind(q)) {
+10 -3
View File
@@ -1791,8 +1791,14 @@ static inline bool mt76_queue_is_wed_rro_ind(struct mt76_queue *q)
static inline bool mt76_queue_is_wed_rro_data(struct mt76_queue *q) static inline bool mt76_queue_is_wed_rro_data(struct mt76_queue *q)
{ {
return mt76_queue_is_wed_rro(q) && return mt76_queue_is_wed_rro(q) &&
(FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_RRO_Q_DATA || FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_RRO_Q_DATA;
FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_RRO_Q_MSDU_PG); }
static inline bool mt76_queue_is_wed_rro_msdu_pg(struct mt76_queue *q)
{
return mt76_queue_is_wed_rro(q) &&
FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) ==
MT76_WED_RRO_Q_MSDU_PG;
} }
static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q) static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
@@ -1801,7 +1807,8 @@ static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
return false; return false;
return FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_Q_RX || return FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_Q_RX ||
mt76_queue_is_wed_rro_ind(q) || mt76_queue_is_wed_rro_data(q); mt76_queue_is_wed_rro_ind(q) || mt76_queue_is_wed_rro_data(q) ||
mt76_queue_is_wed_rro_msdu_pg(q);
} }