[PATCH net-next 4/4] net: pse-pd: realtek-pse-mcu: avoid global disable on teardown

From: Jonas Jelonek

Date: Tue Nov 03 2026 - 17:11:32 EST


The driver installs a global-disable cleanup action when it enables a
previously disabled MCU. Consequently, driver teardown stops all ports
only when the MCU was disabled at probe, making the behavior depend on
the initial firmware state.

Leave the MCU globally enabled on teardown so an independently powered
controller can continue autonomous delivery. This also allows persistent
supply constraints to keep the rail powered without an explicit global
disable command stopping the ports.
---
drivers/net/pse-pd/realtek-pse-mcu-core.c | 13 -------------
1 file changed, 13 deletions(-)

diff --git a/drivers/net/pse-pd/realtek-pse-mcu-core.c b/drivers/net/pse-pd/realtek-pse-mcu-core.c
index a90e19fb90e0..ab57c348436c 100644
--- a/drivers/net/pse-pd/realtek-pse-mcu-core.c
+++ b/drivers/net/pse-pd/realtek-pse-mcu-core.c
@@ -894,13 +894,6 @@ static void rtpse_mcu_cleanup_vmain(void *data)
regulator_disable(pse->vmain);
}

-static void rtpse_mcu_global_disable(void *data)
-{
- struct rtpse_mcu_ctrl *pse = data;
-
- rtpse_mcu_set_global_state(pse, false);
-}
-
int rtpse_mcu_register(struct rtpse_mcu_ctrl *pse)
{
const struct rtpse_mcu_match_data *match;
@@ -994,12 +987,6 @@ int rtpse_mcu_register(struct rtpse_mcu_ctrl *pse)
if (ret && ret != -EOPNOTSUPP)
return dev_err_probe(pse->dev, ret,
"failed to enable PSE system\n");
- if (!ret) {
- ret = devm_add_action_or_reset(pse->dev,
- rtpse_mcu_global_disable, pse);
- if (ret)
- return ret;
- }
}

/*
--
2.53.0