Re: [PATCH net-next] net: phy: intel-xway: add support for PHY LEDs

From: Andrew Lunn
Date: Wed Oct 09 2024 - 08:38:39 EST


On Wed, Oct 09, 2024 at 01:32:20PM +0100, Daniel Golle wrote:
> On Wed, Oct 09, 2024 at 02:16:29PM +0200, Andrew Lunn wrote:
> > > +static int xway_gphy_led_polarity_set(struct phy_device *phydev, int index,
> > > + unsigned long modes)
> > > +{
> > > + bool active_low = false;
> > > + u32 mode;
> > > +
> > > + if (index >= XWAY_GPHY_MAX_LEDS)
> > > + return -EINVAL;
> > > +
> > > + for_each_set_bit(mode, &modes, __PHY_LED_MODES_NUM) {
> > > + switch (mode) {
> > > + case PHY_LED_ACTIVE_LOW:
> > > + active_low = true;
> > > + break;
> > > + case PHY_LED_ACTIVE_HIGH:
> > > + break;
> > > + default:
> > > + return -EINVAL;
> > > + }
> > > + }
> > > +
> > > + return phy_modify(phydev, XWAY_MDIO_LED, XWAY_GPHY_LED_INV(index),
> > > + active_low ? XWAY_GPHY_LED_INV(index) : 0);
> >
> > This does not appear to implement the 'leave it alone' option.
>
> The framework already implements that. The function is never called with
> modes == 0.

I was wondering about that.

But if this ever gets extended to support other properties, like HI-Z,
it is a bit of a trap waiting for somebody to fall into.

It is correct, so: Reviewed-by: Andrew Lunn <andrew@xxxxxxx> but it
would be nice if it was a bit more robust.

Andrew