Thread (49 messages) flat view 49 messages, 7 authors, 2020-06-24

Re: [PATCH 14/15] net: phy: add PHY regulator support

From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
Date: 2020-06-24 16:57:26
Also in: linux-arm-kernel, linux-devicetree, linux-mediatek, lkml

On Tue, Jun 23, 2020 at 06:27:06PM +0200, Bartosz Golaszewski wrote:
wt., 23 cze 2020 o 11:56 Russell King - ARM Linux admin
[off-list ref] napisał(a):
quoted
On Tue, Jun 23, 2020 at 11:46:15AM +0200, Bartosz Golaszewski wrote:
quoted
wt., 23 cze 2020 o 11:43 Russell King - ARM Linux admin
[off-list ref] napisał(a):
quoted
On Tue, Jun 23, 2020 at 11:41:11AM +0200, Bartosz Golaszewski wrote:
quoted
pon., 22 cze 2020 o 15:29 Russell King - ARM Linux admin
[off-list ref] napisał(a):
quoted
[snip!]
quoted
This is likely to cause issues for some PHY drivers.  Note that we have
some PHY drivers which register a temperature sensor in the probe
function, which means they can be accessed independently of the lifetime
of the PHY bound to the network driver (which may only be while the
network device is "up".)  We certainly do not want hwmon failing just
because the network device is down.

That's kind of worked around for the reset stuff, because there are two
layers to that: the mdio device layer reset support which knows nothing
of the PHY binding state to the network driver, and the phylib reset
support, but it is not nice.
Regulators are reference counted so if the hwmon driver enables it
using mdio_device_power_on() it will stay on even after the PHY driver
calls phy_device_power_off(), right? Am I missing something?
If that is true, you will need to audit the PHY drivers to add that.
This change doesn't have any effect on devices which don't have a
regulator assigned in DT though. The one I'm adding in the last patch
is the first to use this.
It's quality of implementation.

Should we wait for someone else to make use of the new regulator
support that has been added with a PHY that uses hwmon, and they
don't realise that it breaks hwmon on it, and several kernel versions
go by without it being noticed.  It will only be a noticable issue
when the associated network device is down, and that network device
driver detaches from the PHY, so _is_ likely not to be noticed.

Or should we do a small amount of work now to properly implement
regulator support, which includes a trivial grep for "hwmon" amongst
the PHY drivers, and add the necessary call to avoid the regulator
being shut off.
I'm not sure what the correct approach is here. Provide some helper
that, when called, would increase the regulator's reference count even
more to keep it enabled from the moment hwmon is registered to when
the driver is detached?
I think a PHY driver needs the utility to control this.  We need to be
careful here with naming, because phylib is not the only code in the
kernel that uses the phy_ prefix.

If we had runtime PM support for PHYs, with regulator support hooked
into runtime PM, then we already have standard interfaces that drivers
can use to control whether the device gets powered down.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help