Hi Andrew, Andrew Lunn <and...@lunn.ch> writes:
>> +struct mv88e6xxx_smi_ops { >> + int (*read)(struct mii_bus *bus, int sw_addr, >> + int addr, int reg, u16 *val); >> + int (*write)(struct mii_bus *bus, int sw_addr, >> + int addr, int reg, u16 val); >> +}; > > Hi Vivien > > I still think this API should be based on ps. > > With the way you have restructured probe, this now also works, there > is no longer a read without PS in order to get the device ID. > > Also, think about the case of reading/writing registers via Ethernet > frames. Such functions would need ps, bus and sw_addr is not useful. Yes, I do RMU in mind, that was one motivation behind isolating SMI-specific pieces of code. I considered mv88e6xxx_smi_ops private to the SMI (MDIO) access, needing an additional abstraction for regs access operations. But I can indeed rename mv88e6xxx_smi_ops to mv88e6xxx_ops and make them use a ps before one day, implementing an optional ps->rmu_ops. Thanks, Vivien