Re: [PATCH net-next RFC V1 2/5] net: phy: Move time stamping interface into the generic mdio layer.

Richard Cochran
2018-03-21T21:45:16Z

On Wed, Mar 21, 2018 at 12:10:07PM -0700, Florian Fainelli wrote:
> > + phydev->mdio.ts_info = dp83640_ts_info;
> > + phydev->mdio.hwtstamp = dp83640_hwtstamp;
> > + phydev->mdio.rxtstamp = dp83640_rxtstamp;
> > + phydev->mdio.txtstamp = dp83640_txtstamp;
>
> Why is this implemented a the mdio_device level and not at the
> mdio_driver level? This looks like the wrong level at which this is done.

The question could be asked of:

struct mdio_device {
int (*bus_match)(struct device *dev, struct device_driver *drv);
void (*device_free)(struct mdio_device *mdiodev);
void (*device_remove)(struct mdio_device *mdiodev);
}

I saw how this is done for the phy, etc, but I don't see any benefit
of doing it that way. It would add an extra layer (or two) of
indirection and save the space four pointer functions. Is that
trade-off worth it?

Thanks,
Richard