Re: [PATCH net-next 4/4] net: pse-pd: realtek-pse-mcu: avoid global disable on teardown
From: Jonas Jelonek
Date: Wed Nov 04 2026 - 04:55:39 EST
Hi Kory,
On 04.11.26 10:45, Kory Maincent wrote:
>
>
> On 11/3/26 23:03, Jonas Jelonek wrote:
>> 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.
>
> No SoB?
>
> Also this patch is not related to power management. Please send it standalone.
I messed it up completely, my fault. Sorry for that.
I'll drop it from this series for v2 and send it standalone.
> IMHO this should de send as a fix because we don't want to have a remove behavior change according to the Linux version.
> With all this change you can add my Reviewed-by.
>
>> ---
>> 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;
>> - }
>> }
>> /*
>
Best,
Jonas