diff mbox series

[v2] phy: airoha: adjust initialization delay in airoha_pcie_phy_init()

Message ID d174837bcb5a53f7b2c2580211d60a175d0ce8db.1722887003.git.lorenzo@kernel.org (mailing list archive)
State New, archived
Headers show
Series [v2] phy: airoha: adjust initialization delay in airoha_pcie_phy_init() | expand

Commit Message

Lorenzo Bianconi Aug. 5, 2024, 7:57 p.m. UTC
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(-)

Comments

AngeloGioacchino Del Regno Aug. 6, 2024, 8:17 a.m. UTC | #1
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;
>   }
Lorenzo Bianconi Aug. 6, 2024, 3:56 p.m. UTC | #2
> 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 mbox series

Patch

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;
 }