lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Mar 2009 23:29:49 +0300 From: Anton Vorontsov <avorontsov@...mvista.com> To: Grant Likely <grant.likely@...retlab.ca> Cc: afleming@...escale.com, linuxppc-dev@...abs.org, linux-kernel@...r.kernel.org, netdev@...r.kernel.org, jgarzik@...ox.com Subject: Re: [PATCH 5/5] net: make mpc5200 fec driver use of_mdio infrastructure On Tue, Mar 10, 2009 at 01:48:26PM -0600, Grant Likely wrote: [...] > >> eliminates the assumption that the PHY for the FEC is always > >> attached to the FEC's own MDIO bus. With this patch, the FEC can > >> use a PHY attached to any MDIO bus if it is described in the device > >> tree. > > > > AFAIK, Gianfar and UCC Geth drivers can do this too, so I'm assuming > > that this isn't the cause for these major changes. > > Certainly the mpc5200-fec driver's original phy code certainly wasn't > as robust as the ucc_geth and gianfar phy handling. > > ucc_geth open codes a solution to decode the phy_device name from > several nodes in the device tree and doesn't handle the case where the > ucc_geth is initialized before the phy_device is registered. gianfar > open codes the same thing. This solution uses common code to locate > the phy_device, and it works regardless of what order devices are > registered in. > > That being said, the 5200 driver originally using probe() time to > connect to the phy. If I change it to be connected at open time, then > does the registration order issue become irrelevant? Yup. `ifconfig ethX up' calls ->open(). If it fails (and prints nice error), you can try `ifconfig ethX up' again later. > Regardless, I > think all the drivers should be using common code for obtaining the > phy_device from the device tree. Not necessary `struct phy_device'. All we need is some common routine for translating PHY's "mdio_node->full_name + phy id" to phy_bus_id. That is, you can just factor out this code from the gianfar driver, void gfar_mdio_bus_name(char *name, struct device_node *np) { const u32 *reg; reg = of_get_property(np, "reg", NULL); snprintf(name, MII_BUS_ID_SIZE, "%s@%x", np->name, reg ? *reg : 0); } ... gfar_mdio_bus_name(bus_name, mdio); snprintf(priv->phy_bus_id, sizeof(priv->phy_bus_id), "%s:%02x", bus_name, *id); ... And make sure FEC MDIO driver does mdio_bus->parent = &ofdev->dev; -- Anton Vorontsov email: cbouatmailru@...il.com irc://irc.freenode.net/bd2 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists