Re: [PATCH net-next 3/3] net: phy: bcm54140: add hwmon support

From: Michael Walle
Date: Sun Apr 19 2020 - 06:29:39 EST


Am 2020-04-17 23:28, schrieb Andrew Lunn:
On Fri, Apr 17, 2020 at 11:08:56PM +0200, Michael Walle wrote:
Am 2020-04-17 22:13, schrieb Andrew Lunn:
> > Correct, and this function was actually stolen from there ;) This was
> > actually stolen from the mscc PHY ;)
>
> Which in itself indicates it is time to make it a helper :-)

Sure, do you have any suggestions?

mdiobus_get_phy() does the bit i was complaining about, the mdiobus
internal knowledge.

But that doesn't address your other comment.

There is also the question of locking. What happens if the PHY devices
is unbound while you have an instance of its phydev?

Is there any lock one could take to avoid that?

What happens if the base PHY is unbound? Are the three others then
unusable?

In my case, this would mean the hwmon device is also removed. I don't
see any other way to do it right now. I guess it would be better to
have the hwmon device registered to some kind of parent device.

I think we need to take a step back and look at how we handle quad
PHYs in general. The VSC8584 has many of the same issues.

For the BCM54140 there are three different functions:
(1) PHY functions accessible by the PHYs own address (ie PHY
status/control)
(2) PHY functions but only accessible by the global registers (ie
interrupt enables per PHY of the shared interrupt pin)
(3) global functions (like sensors, global configuration)

(1) is already supported in the current PHY framework. (2) and (3)
need the "hack" which uses mdiobus_read/write() with the base
address.

-michael