From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E97343F8BF; Thu, 30 Jul 2026 16:01:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785427310; cv=none; b=Be5dMlBX4Y4fc/SHY4/HOrd/YpGT3QKUTpQtC6X4msBdsDnMOn9pEYR3v2NyVnKVuVr6GTNs5Nijv5PhqO079FlXeKdK01gp3GwaDFplIpcgWp43MRU9guOIbiKPB21F2sVaTlir/oPnUXyFu+qCjr/19kXhe/Dq1G2Czcqn4Rg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785427310; c=relaxed/simple; bh=YOZuC3ATD1AgSLcSOQpMAvg9NqxurS3PKsxsGRWwk0Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UJdv15I3/f05vGQZ8ECvh5X10pazXt3/f5YN3kT+Vv3JGUdn2Hq1jkJWPlPJ+Eo8UR9Ykj2Rxg/v7P1TUMvkoK/0+tDh5Z6xxJVNQWKbvHYgjy8xljZ4tVOgD7SYzyheOc/MSnMQHriHv3+N8Q6uAQ2GA116tNzDd1oLGn+kAM0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=aLMdU5A6; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="aLMdU5A6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B09671F000E9; Thu, 30 Jul 2026 16:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1785427309; bh=s5OGSeUUOhEMec57aL7WM9yEGM80ouE461kr7KyVbQk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=aLMdU5A63N7o1nN6OqKyKBeIqWjAHb0ekTuN2auD1xaEog9ZYLDJvbK8eM9S3LArX uWd5mj3moO89Xo1SJiQMXNvCJ1BjXNrJAUdDQBWqaQ9cQXLHCHn4QKeKLUyq4F5ctb 0NeOVXXnf8dmBdg7bEw1JRsTYUETtjFG/BL+/E38= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Alex Williamson , Manivannan Sadhasivam , Baochen Qiang , Raj Kumar Bhagat , Jeff Johnson , Sasha Levin Subject: [PATCH 6.6 123/484] wifi: ath12k: Flush the posted write after writing to PCIE_SOC_GLOBAL_RESET Date: Thu, 30 Jul 2026 16:10:20 +0200 Message-ID: <20260730141426.132714143@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260730141423.392222816@linuxfoundation.org> References: <20260730141423.392222816@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Manivannan Sadhasivam [ Upstream commit 55f3aa06951cac78b0206bde961c8cf11929a27a ] ath12k_pci_soc_global_reset() tries to reset the device by writing to the PCIE_SOC_GLOBAL_RESET register. But it doesn't do a read-back to ensure that the write gets flushed to the device before the delay. This may lead to the delay on the host to be insufficient, if the posted write doesn't reach the device before the delay. So add a read-back after writing to the PCIE_SOC_GLOBAL_RESET register and before the delay. Compile tested only. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1 Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Reported-by: Alex Williamson Closes: https://lore.kernel.org/linux-pci/20260622160822.09350246@shazbot.org Signed-off-by: Manivannan Sadhasivam Reviewed-by: Baochen Qiang Reviewed-by: Raj Kumar Bhagat Tested-by: Raj Kumar Bhagat Link: https://patch.msgid.link/20260623141649.41087-2-manivannan.sadhasivam@oss.qualcomm.com Signed-off-by: Jeff Johnson Signed-off-by: Sasha Levin --- drivers/net/wireless/ath/ath12k/pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/ath/ath12k/pci.c b/drivers/net/wireless/ath/ath12k/pci.c index 7dfbabf0637d23..62be78de330011 100644 --- a/drivers/net/wireless/ath/ath12k/pci.c +++ b/drivers/net/wireless/ath/ath12k/pci.c @@ -211,6 +211,8 @@ static void ath12k_pci_soc_global_reset(struct ath12k_base *ab) val |= PCIE_SOC_GLOBAL_RESET_V; ath12k_pci_write32(ab, PCIE_SOC_GLOBAL_RESET, val); + /* Flush the posted write to the device */ + ath12k_pci_read32(ab, PCIE_SOC_GLOBAL_RESET); /* TODO: exact time to sleep is uncertain */ delay = 10; @@ -220,6 +222,8 @@ static void ath12k_pci_soc_global_reset(struct ath12k_base *ab) val &= ~PCIE_SOC_GLOBAL_RESET_V; ath12k_pci_write32(ab, PCIE_SOC_GLOBAL_RESET, val); + /* Flush the posted write to the device */ + ath12k_pci_read32(ab, PCIE_SOC_GLOBAL_RESET); mdelay(delay); -- 2.53.0