[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250603152724.3004759-1-abin.joseph@amd.com>
Date: Tue, 3 Jun 2025 20:57:24 +0530
From: Abin Joseph <abin.joseph@....com>
To: <nicolas.ferre@...rochip.com>, <claudiu.beznea@...on.dev>,
<andrew+netdev@...n.ch>, <davem@...emloft.net>, <edumazet@...gle.com>,
<kuba@...nel.org>, <pabeni@...hat.com>
CC: <git@....com>, <abin.joseph@....com>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: [PATCH net-next] net: macb: Add shutdown operation support
Implement the shutdown hook to ensure clean and complete deactivation of
MACB controller. Kexec utility calls the shutdown hooks and facilitates
loading and booting of new kernel directly from the currently running
kernel, thereby ensuring a seamless and efficient transition.
Signed-off-by: Abin Joseph <abin.joseph@....com>
---
Reference:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
---
drivers/net/ethernet/cadence/macb_main.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index e1e8bd2ec155..7ccfdb1155f3 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -5650,6 +5650,14 @@ static int __maybe_unused macb_runtime_resume(struct device *dev)
return 0;
}
+static void macb_shutdown(struct platform_device *pdev)
+{
+ struct net_device *netdev = dev_get_drvdata(&pdev->dev);
+
+ netif_device_detach(netdev);
+ dev_close(netdev);
+}
+
static const struct dev_pm_ops macb_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(macb_suspend, macb_resume)
SET_RUNTIME_PM_OPS(macb_runtime_suspend, macb_runtime_resume, NULL)
@@ -5663,6 +5671,7 @@ static struct platform_driver macb_driver = {
.of_match_table = of_match_ptr(macb_dt_ids),
.pm = &macb_pm_ops,
},
+ .shutdown = macb_shutdown,
};
module_platform_driver(macb_driver);
--
2.34.1
Powered by blists - more mailing lists