PCI: qcom: Use DWC helpers for modifying the read-only DBI registers
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Mon, 19 Jun 2023 15:04:01 +0000 (20:34 +0530)
committerLorenzo Pieralisi <lpieralisi@kernel.org>
Tue, 20 Jun 2023 10:12:44 +0000 (12:12 +0200)
DWC core already exposes dw_pcie_dbi_ro_wr_{en/dis} helper APIs for
enabling and disabling the write access to read only DBI registers. So
let's use them instead of doing it manually.

Also, the existing code doesn't disable the write access when it's done.
This is also fixed now.

Link: https://lore.kernel.org/r/20230619150408.8468-3-manivannan.sadhasivam@linaro.org
Fixes: 5d76117f070d ("PCI: qcom: Add support for IPQ8074 PCIe controller")
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/pci/controller/dwc/pcie-qcom.c

index ef385d3..01795ee 100644 (file)
@@ -61,7 +61,6 @@
 /* DBI registers */
 #define AXI_MSTR_RESP_COMP_CTRL0               0x818
 #define AXI_MSTR_RESP_COMP_CTRL1               0x81c
-#define MISC_CONTROL_1_REG                     0x8bc
 
 /* MHI registers */
 #define PARF_DEBUG_CNT_PM_LINKST_IN_L2         0xc04
 /* AXI_MSTR_RESP_COMP_CTRL1 register fields */
 #define CFG_BRIDGE_SB_INIT                     BIT(0)
 
-/* MISC_CONTROL_1_REG register fields */
-#define DBI_RO_WR_EN                           1
-
 /* PCI_EXP_SLTCAP register fields */
 #define PCIE_CAP_SLOT_POWER_LIMIT_VAL          FIELD_PREP(PCI_EXP_SLTCAP_SPLV, 250)
 #define PCIE_CAP_SLOT_POWER_LIMIT_SCALE                FIELD_PREP(PCI_EXP_SLTCAP_SPLS, 1)
@@ -826,7 +822,9 @@ static int qcom_pcie_post_init_2_3_3(struct qcom_pcie *pcie)
        writel(0, pcie->parf + PARF_Q2A_FLUSH);
 
        writel(PCI_COMMAND_MASTER, pci->dbi_base + PCI_COMMAND);
-       writel(DBI_RO_WR_EN, pci->dbi_base + MISC_CONTROL_1_REG);
+
+       dw_pcie_dbi_ro_wr_en(pci);
+
        writel(PCIE_CAP_SLOT_VAL, pci->dbi_base + offset + PCI_EXP_SLTCAP);
 
        val = readl(pci->dbi_base + offset + PCI_EXP_LNKCAP);