* [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality
@ 2025-06-21 1:47 Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines Geraldo Nascimento
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 1:47 UTC (permalink / raw)
To: linux-rockchip
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Heiko Stuebner,
Vinod Koul, Kishon Vijay Abraham I, Rick wertenbroek, linux-phy,
linux-pci, linux-arm-kernel, linux-kernel
During a 30-day debugging-run fighting quirky PCIe devices on RK3399
some quality improvements began to take form and this is my attempt
at upstreaming it. It will ensure maximum chance of retraining to Gen2
5.0GT/s, on all four lanes and fix async strobe TEST_WRITE disablement.
---
V5 -> V6: reflow to 75 cols, use 5.0GTs instead of Gen2 nomenclature,
clarify strobe write adjustment and remove PHY_CFG_RD_MASK
V4 -> V5: fix build failure, reflow commit messages and also convert
registers for EP operation, all suggested by Ilpo
V3 -> V4: fix setting-up of TLS in Link Control and Status Register 2,
also adjust commit titles
V2 -> V3: correctly clean-up with standard PCIe defines as per Bjorn's
suggestion
V1 -> V2: use standard PCIe defines as suggested by Bjorn
Geraldo Nascimento (4):
PCI: rockchip: Use standard PCIe defines
PCI: rockchip: Set Target Link Speed before retraining
phy: rockchip-pcie: Enable all four lanes if required
phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal
drivers/pci/controller/pcie-rockchip-ep.c | 4 +-
drivers/pci/controller/pcie-rockchip-host.c | 48 +++++++++++----------
drivers/pci/controller/pcie-rockchip.h | 12 +-----
drivers/phy/rockchip/phy-rockchip-pcie.c | 15 +++----
4 files changed, 36 insertions(+), 43 deletions(-)
--
2.49.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
@ 2025-06-21 1:48 ` Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 2/4] PCI: rockchip: Set Target Link Speed before retraining Geraldo Nascimento
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 1:48 UTC (permalink / raw)
To: linux-rockchip
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Heiko Stuebner,
Vinod Koul, Kishon Vijay Abraham I, Rick wertenbroek, linux-phy,
linux-pci, linux-arm-kernel, linux-kernel
Current code uses custom-defined register offsets and bitfields for
standard PCIe registers. Change to using standard PCIe defines. Since
we are now using standard PCIe defines, drop unused custom-defined ones,
which are now referenced from offset at added Capabilities Register.
Suggested-By: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
---
drivers/pci/controller/pcie-rockchip-ep.c | 4 +-
drivers/pci/controller/pcie-rockchip-host.c | 44 ++++++++++-----------
drivers/pci/controller/pcie-rockchip.h | 12 +-----
3 files changed, 25 insertions(+), 35 deletions(-)
diff --git a/drivers/pci/controller/pcie-rockchip-ep.c b/drivers/pci/controller/pcie-rockchip-ep.c
index 55416b8311dd..300cd85fa035 100644
--- a/drivers/pci/controller/pcie-rockchip-ep.c
+++ b/drivers/pci/controller/pcie-rockchip-ep.c
@@ -518,9 +518,9 @@ static void rockchip_pcie_ep_retrain_link(struct rockchip_pcie *rockchip)
{
u32 status;
- status = rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_EP_CONFIG_BASE + PCI_EXP_LNKCTL);
status |= PCI_EXP_LNKCTL_RL;
- rockchip_pcie_write(rockchip, status, PCIE_EP_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_EP_CONFIG_BASE + PCI_EXP_LNKCTL);
}
static bool rockchip_pcie_ep_link_up(struct rockchip_pcie *rockchip)
diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/controller/pcie-rockchip-host.c
index b9e7a8710cf0..65653218b9ab 100644
--- a/drivers/pci/controller/pcie-rockchip-host.c
+++ b/drivers/pci/controller/pcie-rockchip-host.c
@@ -40,18 +40,18 @@ static void rockchip_pcie_enable_bw_int(struct rockchip_pcie *rockchip)
{
u32 status;
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= (PCI_EXP_LNKCTL_LBMIE | PCI_EXP_LNKCTL_LABIE);
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
}
static void rockchip_pcie_clr_bw_int(struct rockchip_pcie *rockchip)
{
u32 status;
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= (PCI_EXP_LNKSTA_LBMS | PCI_EXP_LNKSTA_LABS) << 16;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
}
static void rockchip_pcie_update_txcredit_mui(struct rockchip_pcie *rockchip)
@@ -269,7 +269,7 @@ static void rockchip_pcie_set_power_limit(struct rockchip_pcie *rockchip)
scale = 3; /* 0.001x */
curr = curr / 1000; /* convert to mA */
power = (curr * 3300) / 1000; /* milliwatt */
- while (power > PCIE_RC_CONFIG_DCR_CSPL_LIMIT) {
+ while (power > FIELD_MAX(PCI_EXP_DEVCAP_PWR_VAL)) {
if (!scale) {
dev_warn(rockchip->dev, "invalid power supply\n");
return;
@@ -278,10 +278,10 @@ static void rockchip_pcie_set_power_limit(struct rockchip_pcie *rockchip)
power = power / 10;
}
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_DCR);
- status |= (power << PCIE_RC_CONFIG_DCR_CSPL_SHIFT) |
- (scale << PCIE_RC_CONFIG_DCR_CPLS_SHIFT);
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_DCR);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCAP);
+ status |= FIELD_PREP(PCI_EXP_DEVCAP_PWR_VAL, power);
+ status |= FIELD_PREP(PCI_EXP_DEVCAP_PWR_SCL, scale);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCAP);
}
/**
@@ -309,14 +309,14 @@ static int rockchip_pcie_host_init_port(struct rockchip_pcie *rockchip)
rockchip_pcie_set_power_limit(rockchip);
/* Set RC's clock architecture as common clock */
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= PCI_EXP_LNKSTA_SLC << 16;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
/* Set RC's RCB to 128 */
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= PCI_EXP_LNKCTL_RCB;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
/* Enable Gen1 training */
rockchip_pcie_write(rockchip, PCIE_CLIENT_LINK_TRAIN_ENABLE,
@@ -341,9 +341,9 @@ static int rockchip_pcie_host_init_port(struct rockchip_pcie *rockchip)
* Enable retrain for gen2. This should be configured only after
* gen1 finished.
*/
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LCS);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= PCI_EXP_LNKCTL_RL;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LCS);
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
err = readl_poll_timeout(rockchip->apb_base + PCIE_CORE_CTRL,
status, PCIE_LINK_IS_GEN2(status), 20,
@@ -380,15 +380,15 @@ static int rockchip_pcie_host_init_port(struct rockchip_pcie *rockchip)
/* Clear L0s from RC's link cap */
if (of_property_read_bool(dev->of_node, "aspm-no-l0s")) {
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_LINK_CAP);
- status &= ~PCIE_RC_CONFIG_LINK_CAP_L0S;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_LINK_CAP);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCAP);
+ status &= ~PCI_EXP_LNKCAP_ASPM_L0S;
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCAP);
}
- status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_DCSR);
- status &= ~PCIE_RC_CONFIG_DCSR_MPS_MASK;
- status |= PCIE_RC_CONFIG_DCSR_MPS_256;
- rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_DCSR);
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCTL);
+ status &= ~PCI_EXP_DEVCTL_PAYLOAD;
+ status |= PCI_EXP_DEVCTL_PAYLOAD_256B;
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_DEVCTL);
return 0;
err_power_off_phy:
diff --git a/drivers/pci/controller/pcie-rockchip.h b/drivers/pci/controller/pcie-rockchip.h
index 5864a20323f2..f5cbf3c9d2d9 100644
--- a/drivers/pci/controller/pcie-rockchip.h
+++ b/drivers/pci/controller/pcie-rockchip.h
@@ -155,17 +155,7 @@
#define PCIE_EP_CONFIG_DID_VID (PCIE_EP_CONFIG_BASE + 0x00)
#define PCIE_EP_CONFIG_LCS (PCIE_EP_CONFIG_BASE + 0xd0)
#define PCIE_RC_CONFIG_RID_CCR (PCIE_RC_CONFIG_BASE + 0x08)
-#define PCIE_RC_CONFIG_DCR (PCIE_RC_CONFIG_BASE + 0xc4)
-#define PCIE_RC_CONFIG_DCR_CSPL_SHIFT 18
-#define PCIE_RC_CONFIG_DCR_CSPL_LIMIT 0xff
-#define PCIE_RC_CONFIG_DCR_CPLS_SHIFT 26
-#define PCIE_RC_CONFIG_DCSR (PCIE_RC_CONFIG_BASE + 0xc8)
-#define PCIE_RC_CONFIG_DCSR_MPS_MASK GENMASK(7, 5)
-#define PCIE_RC_CONFIG_DCSR_MPS_256 (0x1 << 5)
-#define PCIE_RC_CONFIG_LINK_CAP (PCIE_RC_CONFIG_BASE + 0xcc)
-#define PCIE_RC_CONFIG_LINK_CAP_L0S BIT(10)
-#define PCIE_RC_CONFIG_LCS (PCIE_RC_CONFIG_BASE + 0xd0)
-#define PCIE_EP_CONFIG_LCS (PCIE_EP_CONFIG_BASE + 0xd0)
+#define PCIE_RC_CONFIG_CR (PCIE_RC_CONFIG_BASE + 0xc0)
#define PCIE_RC_CONFIG_L1_SUBSTATE_CTRL2 (PCIE_RC_CONFIG_BASE + 0x90c)
#define PCIE_RC_CONFIG_THP_CAP (PCIE_RC_CONFIG_BASE + 0x274)
#define PCIE_RC_CONFIG_THP_CAP_NEXT_MASK GENMASK(31, 20)
--
2.49.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH v6 2/4] PCI: rockchip: Set Target Link Speed before retraining
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines Geraldo Nascimento
@ 2025-06-21 1:48 ` Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 3/4] phy: rockchip-pcie: Enable all four lanes if required Geraldo Nascimento
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 1:48 UTC (permalink / raw)
To: linux-rockchip
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Heiko Stuebner,
Vinod Koul, Kishon Vijay Abraham I, Rick wertenbroek, linux-phy,
linux-pci, linux-arm-kernel, linux-kernel
Current code may fail 5.0GT/s retraining if Target Link Speed is set to
2.5 GT/s in Link Control and Status Register 2. Set it to 5.0 GT/s
accordingly.
Tested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
---
drivers/pci/controller/pcie-rockchip-host.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/controller/pcie-rockchip-host.c
index 65653218b9ab..25890f6c0e17 100644
--- a/drivers/pci/controller/pcie-rockchip-host.c
+++ b/drivers/pci/controller/pcie-rockchip-host.c
@@ -341,6 +341,10 @@ static int rockchip_pcie_host_init_port(struct rockchip_pcie *rockchip)
* Enable retrain for gen2. This should be configured only after
* gen1 finished.
*/
+ status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL2);
+ status &= ~PCI_EXP_LNKCTL2_TLS;
+ status |= PCI_EXP_LNKCTL2_TLS_5_0GT;
+ rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL2);
status = rockchip_pcie_read(rockchip, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
status |= PCI_EXP_LNKCTL_RL;
rockchip_pcie_write(rockchip, status, PCIE_RC_CONFIG_CR + PCI_EXP_LNKCTL);
--
2.49.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH v6 3/4] phy: rockchip-pcie: Enable all four lanes if required
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 2/4] PCI: rockchip: Set Target Link Speed before retraining Geraldo Nascimento
@ 2025-06-21 1:48 ` Geraldo Nascimento
2025-06-21 1:49 ` [RFC PATCH v6 4/4] phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal Geraldo Nascimento
2025-06-21 7:39 ` [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Heiko Stuebner
4 siblings, 0 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 1:48 UTC (permalink / raw)
To: linux-rockchip
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Heiko Stuebner,
Vinod Koul, Kishon Vijay Abraham I, Rick wertenbroek, linux-phy,
linux-pci, linux-arm-kernel, linux-kernel
Current code enables only Lane 0 because pwr_cnt will be incremented on
first call to the function. Let's reorder the enablement code to enable
all 4 lanes through GRF.
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
---
drivers/phy/rockchip/phy-rockchip-pcie.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c
index bd44af36c67a..f22ffb41cdc2 100644
--- a/drivers/phy/rockchip/phy-rockchip-pcie.c
+++ b/drivers/phy/rockchip/phy-rockchip-pcie.c
@@ -160,6 +160,12 @@ static int rockchip_pcie_phy_power_on(struct phy *phy)
guard(mutex)(&rk_phy->pcie_mutex);
+ regmap_write(rk_phy->reg_base,
+ rk_phy->phy_data->pcie_laneoff,
+ HIWORD_UPDATE(!PHY_LANE_IDLE_OFF,
+ PHY_LANE_IDLE_MASK,
+ PHY_LANE_IDLE_A_SHIFT + inst->index));
+
if (rk_phy->pwr_cnt++) {
return 0;
}
@@ -176,12 +182,6 @@ static int rockchip_pcie_phy_power_on(struct phy *phy)
PHY_CFG_ADDR_MASK,
PHY_CFG_ADDR_SHIFT));
- regmap_write(rk_phy->reg_base,
- rk_phy->phy_data->pcie_laneoff,
- HIWORD_UPDATE(!PHY_LANE_IDLE_OFF,
- PHY_LANE_IDLE_MASK,
- PHY_LANE_IDLE_A_SHIFT + inst->index));
-
/*
* No documented timeout value for phy operation below,
* so we make it large enough here. And we use loop-break
--
2.49.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RFC PATCH v6 4/4] phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
` (2 preceding siblings ...)
2025-06-21 1:48 ` [RFC PATCH v6 3/4] phy: rockchip-pcie: Enable all four lanes if required Geraldo Nascimento
@ 2025-06-21 1:49 ` Geraldo Nascimento
2025-06-21 7:39 ` [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Heiko Stuebner
4 siblings, 0 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 1:49 UTC (permalink / raw)
To: linux-rockchip
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Heiko Stuebner,
Vinod Koul, Kishon Vijay Abraham I, Rick wertenbroek, linux-phy,
linux-pci, linux-arm-kernel, linux-kernel
pcie_conf is used to touch TEST_WRITE strobe signal. This signal should
be enabled, a little time waited, and then disabled. Current code clearly
was copy-pasted and never disables the strobe signal. Adjust the define.
While at it, remove PHY_CFG_RD_MASK which has been unused since
64cdc0360811 ("phy: rockchip-pcie: remove unused phy_rd_cfg function").
Signed-off-by: Geraldo Nascimento <geraldogabriel@gmail.com>
---
drivers/phy/rockchip/phy-rockchip-pcie.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c
index f22ffb41cdc2..4e2dfd01adf2 100644
--- a/drivers/phy/rockchip/phy-rockchip-pcie.c
+++ b/drivers/phy/rockchip/phy-rockchip-pcie.c
@@ -30,9 +30,8 @@
#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_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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
` (3 preceding siblings ...)
2025-06-21 1:49 ` [RFC PATCH v6 4/4] phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal Geraldo Nascimento
@ 2025-06-21 7:39 ` Heiko Stuebner
2025-06-21 11:33 ` Geraldo Nascimento
4 siblings, 1 reply; 7+ messages in thread
From: Heiko Stuebner @ 2025-06-21 7:39 UTC (permalink / raw)
To: linux-rockchip, Geraldo Nascimento
Cc: Shawn Lin, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, Vinod Koul,
Kishon Vijay Abraham I, Rick wertenbroek, linux-phy, linux-pci,
linux-arm-kernel, linux-kernel
Hi Geraldo,
Am Samstag, 21. Juni 2025, 03:47:51 Mitteleuropäische Sommerzeit schrieb Geraldo Nascimento:
> During a 30-day debugging-run fighting quirky PCIe devices on RK3399
> some quality improvements began to take form and this is my attempt
> at upstreaming it. It will ensure maximum chance of retraining to Gen2
> 5.0GT/s, on all four lanes and fix async strobe TEST_WRITE disablement.
just a driver by comment, you might want to drop the RFC element from
the patch subjects.
It does look like things take form nicely and how people read those
RFC marks varies wildly. Some may even read it as "this is unfinished"
or something and spent review time on other things.
So if you're mostly happy with your changes, just drop the RFC part :-)
> ---
> V5 -> V6: reflow to 75 cols, use 5.0GTs instead of Gen2 nomenclature,
> clarify strobe write adjustment and remove PHY_CFG_RD_MASK
> V4 -> V5: fix build failure, reflow commit messages and also convert
> registers for EP operation, all suggested by Ilpo
> V3 -> V4: fix setting-up of TLS in Link Control and Status Register 2,
> also adjust commit titles
> V2 -> V3: correctly clean-up with standard PCIe defines as per Bjorn's
> suggestion
> V1 -> V2: use standard PCIe defines as suggested by Bjorn
>
> Geraldo Nascimento (4):
> PCI: rockchip: Use standard PCIe defines
> PCI: rockchip: Set Target Link Speed before retraining
> phy: rockchip-pcie: Enable all four lanes if required
> phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal
>
> drivers/pci/controller/pcie-rockchip-ep.c | 4 +-
> drivers/pci/controller/pcie-rockchip-host.c | 48 +++++++++++----------
> drivers/pci/controller/pcie-rockchip.h | 12 +-----
> drivers/phy/rockchip/phy-rockchip-pcie.c | 15 +++----
> 4 files changed, 36 insertions(+), 43 deletions(-)
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality
2025-06-21 7:39 ` [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Heiko Stuebner
@ 2025-06-21 11:33 ` Geraldo Nascimento
0 siblings, 0 replies; 7+ messages in thread
From: Geraldo Nascimento @ 2025-06-21 11:33 UTC (permalink / raw)
To: Heiko Stuebner
Cc: linux-rockchip, Shawn Lin, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring,
Bjorn Helgaas, Vinod Koul, Kishon Vijay Abraham I,
Rick wertenbroek, linux-phy, linux-pci, linux-arm-kernel,
linux-kernel
On Sat, Jun 21, 2025 at 09:39:08AM +0200, Heiko Stuebner wrote:
> Hi Geraldo,
>
> Am Samstag, 21. Juni 2025, 03:47:51 Mitteleuropäische Sommerzeit schrieb Geraldo Nascimento:
> > During a 30-day debugging-run fighting quirky PCIe devices on RK3399
> > some quality improvements began to take form and this is my attempt
> > at upstreaming it. It will ensure maximum chance of retraining to Gen2
> > 5.0GT/s, on all four lanes and fix async strobe TEST_WRITE disablement.
>
> just a driver by comment, you might want to drop the RFC element from
> the patch subjects.
>
> It does look like things take form nicely and how people read those
> RFC marks varies wildly. Some may even read it as "this is unfinished"
> or something and spent review time on other things.
>
> So if you're mostly happy with your changes, just drop the RFC part :-)
>
Hi Heiko,
thanks for heads-up, we really don't want people to ignore patches so
I'll drop RFC tag for next iteration. The cover letter needs some love
too.
Thanks,
Geraldo Nascimento
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-06-21 11:35 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-21 1:47 [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 1/4] PCI: rockchip: Use standard PCIe defines Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 2/4] PCI: rockchip: Set Target Link Speed before retraining Geraldo Nascimento
2025-06-21 1:48 ` [RFC PATCH v6 3/4] phy: rockchip-pcie: Enable all four lanes if required Geraldo Nascimento
2025-06-21 1:49 ` [RFC PATCH v6 4/4] phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal Geraldo Nascimento
2025-06-21 7:39 ` [RFC PATCH v6 0/4] PCI: rockchip: Improve driver quality Heiko Stuebner
2025-06-21 11:33 ` Geraldo Nascimento
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).