42 lines
1.5 KiB
Diff
42 lines
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Holland <samuel@sholland.org>
|
|
Date: Sun, 3 Jan 2021 05:25:42 -0600
|
|
Subject: [PATCH] net: stmmac: dwmac-sun8i: Add a shutdown callback
|
|
|
|
The Ethernet MAC and PHY are usually major consumers of power on boards
|
|
which may not be able to fully power off (that have no PMIC). Powering
|
|
down the MAC and internal PHY saves power while these boards are "off".
|
|
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
|
|
---
|
|
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
|
@@ -1282,6 +1282,15 @@ static int sun8i_dwmac_remove(struct pla
|
|
return 0;
|
|
}
|
|
|
|
+static void sun8i_dwmac_shutdown(struct platform_device *pdev)
|
|
+{
|
|
+ struct net_device *ndev = platform_get_drvdata(pdev);
|
|
+ struct stmmac_priv *priv = netdev_priv(ndev);
|
|
+ struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
|
|
+
|
|
+ sun8i_dwmac_exit(pdev, gmac);
|
|
+}
|
|
+
|
|
static const struct of_device_id sun8i_dwmac_match[] = {
|
|
{ .compatible = "allwinner,sun8i-h3-emac",
|
|
.data = &emac_variant_h3 },
|
|
@@ -1302,6 +1311,7 @@ MODULE_DEVICE_TABLE(of, sun8i_dwmac_matc
|
|
static struct platform_driver sun8i_dwmac_driver = {
|
|
.probe = sun8i_dwmac_probe,
|
|
.remove = sun8i_dwmac_remove,
|
|
+ .shutdown = sun8i_dwmac_shutdown,
|
|
.driver = {
|
|
.name = "dwmac-sun8i",
|
|
.pm = &stmmac_pltfr_pm_ops,
|