]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PCI: qcom-ep: Switch MHI bus master clock off during L1SS
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Tue, 27 Jun 2023 14:10:36 +0000 (19:40 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:48:20 +0000 (09:48 +0200)
[ Upstream commit b9cbc06049cb6b7a322d708c2098195fb9fdcc4c ]

Currently, as part of the qcom_pcie_perst_deassert() function, instead
of writing the updated value to clear PARF_MSTR_AXI_CLK_EN, the variable
"val" is re-read.

This must be fixed to ensure that the master clock supplied to the MHI
bus is correctly gated during L1.1/L1.2 to save power.

Thus, replace the line that re-reads "val" with a line that writes the
updated value to the register to clear PARF_MSTR_AXI_CLK_EN.

[kwilczynski: commit log]
Fixes: c457ac029e44 ("PCI: qcom-ep: Gate Master AXI clock to MHI bus during L1SS")
Link: https://lore.kernel.org/linux-pci/20230627141036.11600-1-manivannan.sadhasivam@linaro.org
Reported-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pci/controller/dwc/pcie-qcom-ep.c

index 19b32839ea2610ae7cbee6d5870a5582632691e0..043b356d7d72dfb2c40cbd89f3c47941133c998a 100644 (file)
@@ -415,7 +415,7 @@ static int qcom_pcie_perst_deassert(struct dw_pcie *pci)
        /* Gate Master AXI clock to MHI bus during L1SS */
        val = readl_relaxed(pcie_ep->parf + PARF_MHI_CLOCK_RESET_CTRL);
        val &= ~PARF_MSTR_AXI_CLK_EN;
-       val = readl_relaxed(pcie_ep->parf + PARF_MHI_CLOCK_RESET_CTRL);
+       writel_relaxed(val, pcie_ep->parf + PARF_MHI_CLOCK_RESET_CTRL);
 
        dw_pcie_ep_init_notify(&pcie_ep->pci.ep);