On 09/14/2018 02:44 AM, Quentin Schulz wrote: > Part of the config init is common between the VSC8584 and the VSC8574, > so to prepare the upcoming support for VSC8574, separate config_init > PHY-specific code to config_pre_init function which is set in the probe > function of the PHY and used in config_init. > > Signed-off-by: Quentin Schulz <quentin.schulz@xxxxxxxxxxx> > --- > drivers/net/phy/mscc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/phy/mscc.c b/drivers/net/phy/mscc.c > index b450489..69cc3cf 100644 > --- a/drivers/net/phy/mscc.c > +++ b/drivers/net/phy/mscc.c > @@ -355,6 +355,7 @@ struct vsc8531_private { > u64 *stats; > int nstats; > bool pkg_init; > + int (*config_pre_init)(struct mii_bus *bus, int phy); Is not this overkill given that you have a reference to the phy_device, you could check for the for phy_id to know which exact type you have and call the appropriate pre_init function? unsigned int phy might be more appropriate. -- Florian