[PATCHv3 1/4] net: phy: decouple PHY id and PHY address in fixed PHY driver
Grant Likely
grant.likely at secretlab.ca
Fri Mar 7 23:09:23 EST 2014
On Tue, 4 Mar 2014 20:04:24 +0100, Thomas Petazzoni <thomas.petazzoni at free-electrons.com> wrote:
> Dear Florian Fainelli,
>
> On Tue, 4 Mar 2014 10:43:12 -0800, Florian Fainelli wrote:
>
> > > struct fixed_phy {
> > > - int id;
> > > + int addr;
> > > u16 regs[MII_REGS_NUM];
> > > struct phy_device *phydev;
> > > struct fixed_phy_status status;
> > > @@ -104,8 +104,8 @@ static int fixed_phy_update_regs(struct fixed_phy *fp)
> > > if (fp->status.asym_pause)
> > > lpa |= LPA_PAUSE_ASYM;
> > >
> > > - fp->regs[MII_PHYSID1] = fp->id >> 16;
> > > - fp->regs[MII_PHYSID2] = fp->id;
> > > + fp->regs[MII_PHYSID1] = 0xdead;
> > > + fp->regs[MII_PHYSID2] = 0xbeef;
> >
> > I am still scratching my head as to whether we want that change to be
> > in this particular version of changes, or if we want that to happen at
> > a later time when (if?) we can finally get some proper OUI number
> > allocation.
> >
> > Technically we are presenting some sort of ABI to user-space, although
> > detecting a fixed PHY device by reading its MII_PHYSID1/2 and matching
> > it against its PHY address on the fixed MDIO bus would have been a
> > little "weak" (especially when you can check that the parent device in
> > sysfs is the fixed-0 bus).
>
> Well the problem is that fp->id really isn't an id, it's the fake
> address of the PHY on the fake fixed MDIO bus. So it would mean that
> the MII_PHYSID of the first fixed PHY would probably be 0x0, then the
> second would have 0x1, then 0x2, and so on.
I think the change is reasonable, but I'm not thrilled with the 0xdeadbeaf
constant. I'd rather PHYSID simply be left as 0.
g.
More information about the linux-arm-kernel
mailing list