Re: [net-next PATCH v5 9/9] net: phy: qca807x: add support for configurable LED

From: Andrew Lunn
Date: Fri Feb 02 2024 - 12:10:53 EST


On Fri, Feb 02, 2024 at 05:40:21PM +0100, Christian Marangi wrote:
> On Fri, Feb 02, 2024 at 02:43:37AM +0100, Andrew Lunn wrote:
> > > +
> > > + phydev->drv->led_brightness_set = NULL;
> > > + phydev->drv->led_blink_set = NULL;
> > > + phydev->drv->led_hw_is_supported = NULL;
> > > + phydev->drv->led_hw_control_set = NULL;
> > > + phydev->drv->led_hw_control_get = NULL;
> >
> > I don't see how that works. You have multiple PHYs using this
> > driver. Some might have LEDs, some might have GPOs. But if you modify
> > the driver structure like this, you prevent all PHYs from having LEDs,
> > and maybe cause a Opps if a PHY device has already registered its
> > LEDs?
> >
>
> God you are right! Off-topic but given the effects this may cause, why
> the thing is not const?

I would like it to be, but its not easy. There are fields in the
driver structure that phylib needs to modify. e.g. mdiodrv.driver gets
passed to the driver core when registering the driver, and it modifies
it. mdiodrv.flags is also manipulated. So we cannot make the whole
structure const.

Andrew