Re: [PATCHv3 1/4] net: phy: decouple PHY id and PHY address in fixed PHY driver
From: Grant Likely <hidden>
Date: 2014-03-08 04:09:23
Also in:
linux-arm-kernel, linux-devicetree
On Tue, 4 Mar 2014 20:04:24 +0100, Thomas Petazzoni [off-list ref] wrote:
Dear Florian Fainelli, On Tue, 4 Mar 2014 10:43:12 -0800, Florian Fainelli wrote:quoted
quoted
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.