Re: [PATCH net] net: pse-pd: Fix enabled status mismatch

From: Kory Maincent
Date: Wed Oct 02 2024 - 08:47:21 EST


On Wed, 2 Oct 2024 14:38:19 +0200
Andrew Lunn <andrew@xxxxxxx> wrote:

> On Wed, Oct 02, 2024 at 02:17:05PM +0200, Kory Maincent wrote:
> > PSE controllers like the TPS23881 can forcefully turn off their
> > configuration state. In such cases, the is_enabled() and get_status()
> > callbacks will report the PSE as disabled, while admin_state_enabled
> > will show it as enabled. This mismatch can lead the user to attempt
> > to enable it, but no action is taken as admin_state_enabled remains set.
> >
> > The solution is to disable the PSE before enabling it, ensuring the
> > actual status matches admin_state_enabled.
> >
> > Fixes: d83e13761d5b ("net: pse-pd: Use regulator framework within PSE
> > framework") Signed-off-by: Kory Maincent <kory.maincent@xxxxxxxxxxx>
> > ---
> >
> > FYI: Saving the enabled state in the driver is not a viable solution, as a
> > reboot may cause a mismatch between the real and software-saved states.
>
> This seems O.K. to me.
>
> I'm assuming the controller has turned the configuration state to off
> to stop the magic smoke escaping? Is there any sort of notification of
> this? Does it raise an interrupt? Sometime in the future we might
> want to add a netlink notification about this?

Thanks for your review!

Yes, in case of over-current or over-temperature, there is an interrupt. The
netlink notifications support will arrive soon in the series in progress.

Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com