Skip to content

Commit ab344fd

Browse files
wang-jianjunLorenzo Pieralisi
authored andcommitted
PCI: mediatek-gen3: Disable DVFSRC voltage request
When the DVFSRC (dynamic voltage and frequency scaling resource collector) feature is not implemented, the PCIe hardware will assert a voltage request signal when exit from the L1 PM Substates to request a specific Vcore voltage, but cannot receive the voltage ready signal, which will cause the link to fail to exit the L1 PM Substates. Disable DVFSRC voltage request by default, we need to find a common way to enable it in the future. Link: https://lore.kernel.org/r/[email protected] Fixes: d3bf75b ("PCI: mediatek-gen3: Add MediaTek Gen3 driver for MT8192") Tested-by: Qizhong Cheng <[email protected]> Signed-off-by: Jianjun Wang <[email protected]> Signed-off-by: Lorenzo Pieralisi <[email protected]> Reviewed-by: Tzung-Bi Shih <[email protected]> Reviewed-by: Matthias Brugger <[email protected]>
1 parent fa55b7d commit ab344fd

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/pci/controller/pcie-mediatek-gen3.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@
7979
#define PCIE_ICMD_PM_REG 0x198
8080
#define PCIE_TURN_OFF_LINK BIT(4)
8181

82+
#define PCIE_MISC_CTRL_REG 0x348
83+
#define PCIE_DISABLE_DVFSRC_VLT_REQ BIT(1)
84+
8285
#define PCIE_TRANS_TABLE_BASE_REG 0x800
8386
#define PCIE_ATR_SRC_ADDR_MSB_OFFSET 0x4
8487
#define PCIE_ATR_TRSL_ADDR_LSB_OFFSET 0x8
@@ -297,6 +300,11 @@ static int mtk_pcie_startup_port(struct mtk_pcie_port *port)
297300
val &= ~PCIE_INTX_ENABLE;
298301
writel_relaxed(val, port->base + PCIE_INT_ENABLE_REG);
299302

303+
/* Disable DVFSRC voltage request */
304+
val = readl_relaxed(port->base + PCIE_MISC_CTRL_REG);
305+
val |= PCIE_DISABLE_DVFSRC_VLT_REQ;
306+
writel_relaxed(val, port->base + PCIE_MISC_CTRL_REG);
307+
300308
/* Assert all reset signals */
301309
val = readl_relaxed(port->base + PCIE_RST_CTRL_REG);
302310
val |= PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB;

0 commit comments

Comments
 (0)