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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html