Message ID | d174837bcb5a53f7b2c2580211d60a175d0ce8db.1722887003.git.lorenzo@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | [v2] phy: airoha: adjust initialization delay in airoha_pcie_phy_init() | expand |
Il 05/08/24 21:57, Lorenzo Bianconi ha scritto: > Align phy-pcie initialization delay to the vendor sdk in > airoha_pcie_phy_init routine and allow the hw to complete required > configuration before proceeding > > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > Changes since v1: > - use msleep() instead of mdelay() > --- > drivers/phy/phy-airoha-pcie.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/phy-airoha-pcie.c b/drivers/phy/phy-airoha-pcie.c > index bd3edaa986c8..6d61e6486a03 100644 > --- a/drivers/phy/phy-airoha-pcie.c > +++ b/drivers/phy/phy-airoha-pcie.c > @@ -18,6 +18,9 @@ > #define LEQ_LEN_CTRL_MAX_VAL 7 > #define FREQ_LOCK_MAX_ATTEMPT 10 > > +/* PCIe-PHY initialization time in ms needed by the hw to complete */ > +#define PHY_HW_INIT_TIME_MS 30 > + > enum airoha_pcie_port_gen { > PCIE_PORT_GEN1 = 1, > PCIE_PORT_GEN2, > @@ -1180,8 +1183,11 @@ static int airoha_pcie_phy_init(struct phy *phy) > PCIE_DA_XPON_CDR_PR_PWDB); > airoha_phy_pma1_set_bits(pcie_phy, REG_PCIE_PMA_SS_DA_XPON_PWDB0, > PCIE_DA_XPON_CDR_PR_PWDB); > - > - usleep_range(100, 200); > + /* > + * Wait for the time in ms needed by the hw to complete the PCIe-PHY > + * initialization ...but regardless, I have a nit here (not a blocker for me, hence the R-b tag): there's no need to say that we're waiting for milliseconds, so this comment can be just one line: /* Wait for the PCIe PHY to complete initialization before returning */ Cheers, Angelo > + */ > + msleep(PHY_HW_INIT_TIME_MS); > > return 0; > }
> Il 05/08/24 21:57, Lorenzo Bianconi ha scritto: > > Align phy-pcie initialization delay to the vendor sdk in > > airoha_pcie_phy_init routine and allow the hw to complete required > > configuration before proceeding > > > > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > > > --- > > Changes since v1: > > - use msleep() instead of mdelay() > > --- > > drivers/phy/phy-airoha-pcie.c | 10 ++++++++-- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/phy/phy-airoha-pcie.c b/drivers/phy/phy-airoha-pcie.c > > index bd3edaa986c8..6d61e6486a03 100644 > > --- a/drivers/phy/phy-airoha-pcie.c > > +++ b/drivers/phy/phy-airoha-pcie.c > > @@ -18,6 +18,9 @@ > > #define LEQ_LEN_CTRL_MAX_VAL 7 > > #define FREQ_LOCK_MAX_ATTEMPT 10 > > +/* PCIe-PHY initialization time in ms needed by the hw to complete */ > > +#define PHY_HW_INIT_TIME_MS 30 > > + > > enum airoha_pcie_port_gen { > > PCIE_PORT_GEN1 = 1, > > PCIE_PORT_GEN2, > > @@ -1180,8 +1183,11 @@ static int airoha_pcie_phy_init(struct phy *phy) > > PCIE_DA_XPON_CDR_PR_PWDB); > > airoha_phy_pma1_set_bits(pcie_phy, REG_PCIE_PMA_SS_DA_XPON_PWDB0, > > PCIE_DA_XPON_CDR_PR_PWDB); > > - > > - usleep_range(100, 200); > > + /* > > + * Wait for the time in ms needed by the hw to complete the PCIe-PHY > > + * initialization > > ...but regardless, I have a nit here (not a blocker for me, hence the R-b tag): > there's no need to say that we're waiting for milliseconds, so this comment can > be just one line: > > /* Wait for the PCIe PHY to complete initialization before returning */ > > Cheers, > Angelo ack, no worries, already fixed in v3. Regards, Lorenzo > > > + */ > > + msleep(PHY_HW_INIT_TIME_MS); > > return 0; > > } > >
diff --git a/drivers/phy/phy-airoha-pcie.c b/drivers/phy/phy-airoha-pcie.c index bd3edaa986c8..6d61e6486a03 100644 --- a/drivers/phy/phy-airoha-pcie.c +++ b/drivers/phy/phy-airoha-pcie.c @@ -18,6 +18,9 @@ #define LEQ_LEN_CTRL_MAX_VAL 7 #define FREQ_LOCK_MAX_ATTEMPT 10 +/* PCIe-PHY initialization time in ms needed by the hw to complete */ +#define PHY_HW_INIT_TIME_MS 30 + enum airoha_pcie_port_gen { PCIE_PORT_GEN1 = 1, PCIE_PORT_GEN2, @@ -1180,8 +1183,11 @@ static int airoha_pcie_phy_init(struct phy *phy) PCIE_DA_XPON_CDR_PR_PWDB); airoha_phy_pma1_set_bits(pcie_phy, REG_PCIE_PMA_SS_DA_XPON_PWDB0, PCIE_DA_XPON_CDR_PR_PWDB); - - usleep_range(100, 200); + /* + * Wait for the time in ms needed by the hw to complete the PCIe-PHY + * initialization + */ + msleep(PHY_HW_INIT_TIME_MS); return 0; }
Align phy-pcie initialization delay to the vendor sdk in airoha_pcie_phy_init routine and allow the hw to complete required configuration before proceeding Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> --- Changes since v1: - use msleep() instead of mdelay() --- drivers/phy/phy-airoha-pcie.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)