]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: ath12k: Fix flush cache failure during RX queue update
authorNithyanantham Paramasivam <nithyanantham.paramasivam@oss.qualcomm.com>
Wed, 6 Aug 2025 11:17:49 +0000 (16:47 +0530)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Mon, 22 Sep 2025 20:41:45 +0000 (13:41 -0700)
Flush cache failures were observed after RX queue update for TID
delete. This occurred because the queue was invalid during flush.
Set the VLD bit in the RX queue update command for TID delete.
This ensures the queue remains valid during the flush cache process.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
Signed-off-by: Nithyanantham Paramasivam <nithyanantham.paramasivam@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250806111750.3214584-7-nithyanantham.paramasivam@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/dp_rx.c

index 331dafcecc89bf755b818ffc67af37a2b46d40fc..1ed42207a637248cc7d27928d45a21a3c9c98471 100644 (file)
@@ -850,6 +850,8 @@ static int ath12k_dp_rx_tid_delete_handler(struct ath12k_base *ab,
        cmd.addr_lo = lower_32_bits(rx_tid->qbuf.paddr_aligned);
        cmd.addr_hi = upper_32_bits(rx_tid->qbuf.paddr_aligned);
        cmd.upd0 |= HAL_REO_CMD_UPD0_VLD;
+       /* Observed flush cache failure, to avoid that set vld bit during delete */
+       cmd.upd1 |= HAL_REO_CMD_UPD1_VLD;
 
        return ath12k_dp_reo_cmd_send(ab, rx_tid,
                                      HAL_REO_CMD_UPDATE_RX_QUEUE, &cmd,