[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191217180423.GI3160@kwain>
Date: Tue, 17 Dec 2019 19:04:23 +0100
From: Antoine Tenart <antoine.tenart@...tlin.com>
To: Russell King <rmk+kernel@...linux.org.uk>
Cc: Antoine Tenart <antoine.tenart@...tlin.com>,
maxime.chevallier@...tlin.com, Willy Tarreau <w@....eu>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next] net: mvpp2: cycle comphy to power it down
Hi Russell,
On Tue, Dec 17, 2019 at 03:47:36PM +0000, Russell King wrote:
> Presently, at boot time, the comphys are enabled. For firmware
> compatibility reasons, the comphy driver does not power down the
> comphys at boot. Consequently, the ethernet comphys are left active
> until the network interfaces are brought through an up/down cycle.
>
> If the port is never used, the port wastes power needlessly. Arrange
> for the ethernet comphys to be cycled by the mvpp2 driver as if the
> interface went through an up/down cycle during driver probe, thereby
> powering them down.
>
> This saves:
> 270mW per 10G SFP+ port on the Macchiatobin Single Shot (eth0/eth1)
> 370mW per 10G PHY port on the Macchiatobin Double Shot (eth0/eth1)
> 160mW on the SFP port on either Macchiatobin flavour (eth3)
>
> Signed-off-by: Russell King <rmk+kernel@...linux.org.uk>
Acked-by: Antoine Tenart <antoine.tenart@...tlin.com>
Thanks!
Antoine
> ---
> drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> index c17b6cafef07..88a475606f19 100644
> --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> @@ -5546,6 +5546,16 @@ static int mvpp2_port_probe(struct platform_device *pdev,
> port->phylink = NULL;
> }
>
> + /* Cycle the comphy to power it down, saving 270mW per port -
> + * don't worry about an error powering it up. When the comphy
> + * driver does this, we can remove this code.
> + */
> + if (port->comphy) {
> + err = mvpp22_comphy_init(port);
> + if (err == 0)
> + phy_power_off(port->comphy);
> + }
> +
> err = register_netdev(dev);
> if (err < 0) {
> dev_err(&pdev->dev, "failed to register netdev\n");
> --
> 2.20.1
>
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists