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