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

Reply via email to