Section 17.6.10 of the RK3399 TRM "PCIe PIPE PHY registers Description"
defines asynchronous strobe TEST_WRITE which should be enabled then
disabled and seems to have been copy-pasted as of current. Adjust it.
While at it, adjust read mask which should be the same as write mask.
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
---
drivers/phy/rockchip/phy-rockchip-pcie.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c
index 48bcc7d2b33b..35d2523ee776 100644
--- a/drivers/phy/rockchip/phy-rockchip-pcie.c
+++ b/drivers/phy/rockchip/phy-rockchip-pcie.c
@@ -30,9 +30,9 @@
#define PHY_CFG_ADDR_SHIFT 1
#define PHY_CFG_DATA_MASK 0xf
#define PHY_CFG_ADDR_MASK 0x3f
-#define PHY_CFG_RD_MASK 0x3ff
+#define PHY_CFG_RD_MASK 0x3f
#define PHY_CFG_WR_ENABLE 1
-#define PHY_CFG_WR_DISABLE 1
+#define PHY_CFG_WR_DISABLE 0
#define PHY_CFG_WR_SHIFT 0
#define PHY_CFG_WR_MASK 1
#define PHY_CFG_PLL_LOCK 0x10
--
2.49.0
On Fri, Jun 13, 2025 at 12:06:28PM -0300, Geraldo Nascimento wrote: > Section 17.6.10 of the RK3399 TRM "PCIe PIPE PHY registers Description" > defines asynchronous strobe TEST_WRITE which should be enabled then > disabled and seems to have been copy-pasted as of current. Adjust it. > While at it, adjust read mask which should be the same as write mask. Not a PCI patch, but "adjust" doesn't tell us what's happening. From reading the patch, I assume that since PHY_CFG_WR_ENABLE and PHY_CFG_WR_DISABLE were both defined to be 1, this code: regmap_write(rk_phy->reg_base, rk_phy->phy_data->pcie_conf, HIWORD_UPDATE(PHY_CFG_WR_DISABLE, PHY_CFG_WR_MASK, PHY_CFG_WR_SHIFT)); actually left something *enabled* when it meant to disable it. Maybe the subject/commit log could say something about actually disabling whatever this is instead of leaving it enabled? PHY_CFG_RD_MASK appears unused, so maybe it should be just removed. > Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com> > --- > drivers/phy/rockchip/phy-rockchip-pcie.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c > index 48bcc7d2b33b..35d2523ee776 100644 > --- a/drivers/phy/rockchip/phy-rockchip-pcie.c > +++ b/drivers/phy/rockchip/phy-rockchip-pcie.c > @@ -30,9 +30,9 @@ > #define PHY_CFG_ADDR_SHIFT 1 > #define PHY_CFG_DATA_MASK 0xf > #define PHY_CFG_ADDR_MASK 0x3f > -#define PHY_CFG_RD_MASK 0x3ff > +#define PHY_CFG_RD_MASK 0x3f > #define PHY_CFG_WR_ENABLE 1 > -#define PHY_CFG_WR_DISABLE 1 > +#define PHY_CFG_WR_DISABLE 0 > #define PHY_CFG_WR_SHIFT 0 > #define PHY_CFG_WR_MASK 1 > #define PHY_CFG_PLL_LOCK 0x10 > -- > 2.49.0 >
On Fri, Jun 13, 2025 at 03:20:56PM -0500, Bjorn Helgaas wrote: > On Fri, Jun 13, 2025 at 12:06:28PM -0300, Geraldo Nascimento wrote: > > Section 17.6.10 of the RK3399 TRM "PCIe PIPE PHY registers Description" > > defines asynchronous strobe TEST_WRITE which should be enabled then > > disabled and seems to have been copy-pasted as of current. Adjust it. > > While at it, adjust read mask which should be the same as write mask. > > Not a PCI patch, but "adjust" doesn't tell us what's happening. > > From reading the patch, I assume that since PHY_CFG_WR_ENABLE and > PHY_CFG_WR_DISABLE were both defined to be 1, this code: > > regmap_write(rk_phy->reg_base, rk_phy->phy_data->pcie_conf, > HIWORD_UPDATE(PHY_CFG_WR_DISABLE, > PHY_CFG_WR_MASK, > PHY_CFG_WR_SHIFT)); > > actually left something *enabled* when it meant to disable it. > > Maybe the subject/commit log could say something about actually > disabling whatever this is instead of leaving it enabled? > > PHY_CFG_RD_MASK appears unused, so maybe it should be just removed. Your line of reasoning is correct regarding the TEST_WRITE async strobe register, and there's a picture of the flow in Section 17.5.3 (PCIe PHY Configuration) of the RK3399 TRM, Part 2. I'll make sure to be more clear in the commit message. Regarding PHY_CFG_RD_MASK, yes, it is unused AFAICT and can be removed. It's leftover from BSP where the debugging function phy_rd_cfg exists. Thanks, Geraldo Nascimento
© 2016 - 2025 Red Hat, Inc.