* [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks
@ 2019-03-26 14:53 Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Antoine Tenart @ 2019-03-26 14:53 UTC (permalink / raw)
To: davem, linux, andrew, f.fainelli, hkallweit1
Cc: Antoine Tenart, netdev, linux-kernel, thomas.petazzoni,
maxime.chevallier, gregory.clement, miquel.raynal, nadavh,
stefanc, mw
Hello,
This series implements the suspend/resume callbacks in the marvell10g
PHY driver.
Thanks,
Antoine
Since v2:
- Removed the third patch, setting the PHY in low power by default, as
the change was controversial.
- Rebased on the latest net-next.
Since v1:
- Fixed a mix up in the patches where two implementations of the
suspend/resume callbacks were kept in the driver.
- Rebased on the latest net-next.
Antoine Tenart (2):
net: phy: marvell10g: implement suspend/resume callbacks
net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210
drivers/net/phy/marvell10g.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
--
2.20.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-26 14:53 [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks Antoine Tenart
@ 2019-03-26 14:53 ` Antoine Tenart
2019-03-26 18:43 ` Heiner Kallweit
2019-03-29 21:32 ` Heiner Kallweit
2019-03-26 14:53 ` [PATCH net-next v3 2/2] net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210 Antoine Tenart
2019-03-29 17:57 ` [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks David Miller
2 siblings, 2 replies; 8+ messages in thread
From: Antoine Tenart @ 2019-03-26 14:53 UTC (permalink / raw)
To: davem, linux, andrew, f.fainelli, hkallweit1
Cc: Antoine Tenart, netdev, linux-kernel, thomas.petazzoni,
maxime.chevallier, gregory.clement, miquel.raynal, nadavh,
stefanc, mw
This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The
three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS
are powered down) when the PHY isn't used.
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
drivers/net/phy/marvell10g.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
index 100b401b1f4a..b56cd35182d5 100644
--- a/drivers/net/phy/marvell10g.c
+++ b/drivers/net/phy/marvell10g.c
@@ -226,11 +226,25 @@ static int mv3310_probe(struct phy_device *phydev)
static int mv3310_suspend(struct phy_device *phydev)
{
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
+
return 0;
}
static int mv3310_resume(struct phy_device *phydev)
{
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, 0);
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, 0);
+ phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
+ MDIO_CTRL1_LPOWER, 0);
+
return mv3310_hwmon_config(phydev, true);
}
--
2.20.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next v3 2/2] net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210
2019-03-26 14:53 [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
@ 2019-03-26 14:53 ` Antoine Tenart
2019-03-29 17:57 ` [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks David Miller
2 siblings, 0 replies; 8+ messages in thread
From: Antoine Tenart @ 2019-03-26 14:53 UTC (permalink / raw)
To: davem, linux, andrew, f.fainelli, hkallweit1
Cc: Antoine Tenart, netdev, linux-kernel, thomas.petazzoni,
maxime.chevallier, gregory.clement, miquel.raynal, nadavh,
stefanc, mw
When the 88x2110 PHY support was added, the suspend and resume callbacks
were forgotten. This patch adds them to the 88x2110 PHY callback
definition.
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
drivers/net/phy/marvell10g.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
index b56cd35182d5..08dd2ea08236 100644
--- a/drivers/net/phy/marvell10g.c
+++ b/drivers/net/phy/marvell10g.c
@@ -488,6 +488,8 @@ static struct phy_driver mv3310_drivers[] = {
.name = "mv88x2110",
.get_features = genphy_c45_pma_read_abilities,
.probe = mv3310_probe,
+ .suspend = mv3310_suspend,
+ .resume = mv3310_resume,
.soft_reset = genphy_no_soft_reset,
.config_init = mv3310_config_init,
.config_aneg = mv3310_config_aneg,
--
2.20.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
@ 2019-03-26 18:43 ` Heiner Kallweit
2019-04-02 9:50 ` Antoine Tenart
2019-03-29 21:32 ` Heiner Kallweit
1 sibling, 1 reply; 8+ messages in thread
From: Heiner Kallweit @ 2019-03-26 18:43 UTC (permalink / raw)
To: Antoine Tenart, davem, linux, andrew, f.fainelli
Cc: netdev, linux-kernel, thomas.petazzoni, maxime.chevallier,
gregory.clement, miquel.raynal, nadavh, stefanc, mw
On 26.03.2019 15:53, Antoine Tenart wrote:
> This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The
> three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS
> are powered down) when the PHY isn't used.
>
At least for the 3310 the datasheet mentions that via VEND2.f001.11
the port can be powered down completely. As this would simplify the code,
did you test this?
> Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> ---
> drivers/net/phy/marvell10g.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
> index 100b401b1f4a..b56cd35182d5 100644
> --- a/drivers/net/phy/marvell10g.c
> +++ b/drivers/net/phy/marvell10g.c
> @@ -226,11 +226,25 @@ static int mv3310_probe(struct phy_device *phydev)
>
> static int mv3310_suspend(struct phy_device *phydev)
> {
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> +
> return 0;
> }
>
> static int mv3310_resume(struct phy_device *phydev)
> {
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> +
> return mv3310_hwmon_config(phydev, true);
> }
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-26 14:53 [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 2/2] net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210 Antoine Tenart
@ 2019-03-29 17:57 ` David Miller
2 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2019-03-29 17:57 UTC (permalink / raw)
To: antoine.tenart
Cc: linux, andrew, f.fainelli, hkallweit1, netdev, linux-kernel,
thomas.petazzoni, maxime.chevallier, gregory.clement,
miquel.raynal, nadavh, stefanc, mw
From: Antoine Tenart <antoine.tenart@bootlin.com>
Date: Tue, 26 Mar 2019 15:53:00 +0100
> This series implements the suspend/resume callbacks in the
> marvell10g PHY driver.
Heiner gave you feedback, you have not responded.
Therefore I am removing your patches from my queue.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
2019-03-26 18:43 ` Heiner Kallweit
@ 2019-03-29 21:32 ` Heiner Kallweit
2019-04-02 9:50 ` Antoine Tenart
1 sibling, 1 reply; 8+ messages in thread
From: Heiner Kallweit @ 2019-03-29 21:32 UTC (permalink / raw)
To: Antoine Tenart, davem, linux, andrew, f.fainelli
Cc: netdev, linux-kernel, thomas.petazzoni, maxime.chevallier,
gregory.clement, miquel.raynal, nadavh, stefanc, mw
On 26.03.2019 15:53, Antoine Tenart wrote:
> This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The
> three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS
> are powered down) when the PHY isn't used.
>
> Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> ---
> drivers/net/phy/marvell10g.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
> index 100b401b1f4a..b56cd35182d5 100644
> --- a/drivers/net/phy/marvell10g.c
> +++ b/drivers/net/phy/marvell10g.c
> @@ -226,11 +226,25 @@ static int mv3310_probe(struct phy_device *phydev)
>
> static int mv3310_suspend(struct phy_device *phydev)
> {
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> +
When you re-submit this series, in addition to my previous comment:
Instead of phy_modify_mmd() it would be clearer to use
phy_set/clear_bits_mmd(). And checking the return value wouldn't hurt.
> return 0;
> }
>
> static int mv3310_resume(struct phy_device *phydev)
> {
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
> + MDIO_CTRL1_LPOWER, 0);
> +
> return mv3310_hwmon_config(phydev, true);
> }
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-26 18:43 ` Heiner Kallweit
@ 2019-04-02 9:50 ` Antoine Tenart
0 siblings, 0 replies; 8+ messages in thread
From: Antoine Tenart @ 2019-04-02 9:50 UTC (permalink / raw)
To: Heiner Kallweit
Cc: Antoine Tenart, davem, linux, andrew, f.fainelli, netdev,
linux-kernel, thomas.petazzoni, maxime.chevallier,
gregory.clement, miquel.raynal, nadavh, stefanc, mw
Hi Heiner,
Sorry for the late answer.
On Tue, Mar 26, 2019 at 07:43:27PM +0100, Heiner Kallweit wrote:
> On 26.03.2019 15:53, Antoine Tenart wrote:
> > This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The
> > three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS
> > are powered down) when the PHY isn't used.
> >
> At least for the 3310 the datasheet mentions that via VEND2.f001.11
> the port can be powered down completely. As this would simplify the code,
> did you test this?
I just tested this, and it does simplify the code a lot. Thanks for
pointing out this bit.
I'll update and make a v2.
Antoine
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
2019-03-29 21:32 ` Heiner Kallweit
@ 2019-04-02 9:50 ` Antoine Tenart
0 siblings, 0 replies; 8+ messages in thread
From: Antoine Tenart @ 2019-04-02 9:50 UTC (permalink / raw)
To: Heiner Kallweit
Cc: Antoine Tenart, davem, linux, andrew, f.fainelli, netdev,
linux-kernel, thomas.petazzoni, maxime.chevallier,
gregory.clement, miquel.raynal, nadavh, stefanc, mw
Hi Heiner,
On Fri, Mar 29, 2019 at 10:32:02PM +0100, Heiner Kallweit wrote:
> On 26.03.2019 15:53, Antoine Tenart wrote:
> > This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The
> > three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS
> > are powered down) when the PHY isn't used.
> >
> > Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
> > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > ---
> > drivers/net/phy/marvell10g.c | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
> > index 100b401b1f4a..b56cd35182d5 100644
> > --- a/drivers/net/phy/marvell10g.c
> > +++ b/drivers/net/phy/marvell10g.c
> > @@ -226,11 +226,25 @@ static int mv3310_probe(struct phy_device *phydev)
> >
> > static int mv3310_suspend(struct phy_device *phydev)
> > {
> > + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1,
> > + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> > + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1,
> > + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> > + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1,
> > + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER);
> > +
> When you re-submit this series, in addition to my previous comment:
> Instead of phy_modify_mmd() it would be clearer to use
> phy_set/clear_bits_mmd(). And checking the return value wouldn't hurt.
OK, will do.
Thanks!
Antoine
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-04-02 9:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-26 14:53 [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 1/2] " Antoine Tenart
2019-03-26 18:43 ` Heiner Kallweit
2019-04-02 9:50 ` Antoine Tenart
2019-03-29 21:32 ` Heiner Kallweit
2019-04-02 9:50 ` Antoine Tenart
2019-03-26 14:53 ` [PATCH net-next v3 2/2] net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210 Antoine Tenart
2019-03-29 17:57 ` [PATCH net-next v3 0/2] net: phy: marvell10g: implement suspend/resume callbacks David Miller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.