Re: [PATCH 4/5] netdev/phy: Add driver for Broadcom BCM87XX 10G Ethernet PHYs
From: David Daney <hidden>
Date: 2012-05-22 18:26:59
Also in:
linux-mips, lkml, netdev
From: David Daney <hidden>
Date: 2012-05-22 18:26:59
Also in:
linux-mips, lkml, netdev
On 05/22/2012 11:17 AM, Joe Perches wrote:
On Tue, 2012-05-22 at 10:59 -0700, David Daney wrote:quoted
From: David Daney<redacted>trivia:
As long as we are splitting hairs...
quoted
diff --git a/drivers/net/phy/bcm87xx.c b/drivers/net/phy/bcm87xx.c[]quoted
@@ -0,0 +1,237 @@quoted
+static int bcm87xx_of_reg_init(struct phy_device *phydev) +{ + const __be32 *paddr; + int len, i, ret; + + if (!phydev->dev.of_node) + return 0; + + paddr = of_get_property(phydev->dev.of_node, + "broadcom,c45-reg-init",&len); + if (!paddr || len< (4 * sizeof(*paddr))) + return 0; + + ret = 0; + len /= sizeof(*paddr); + for (i = 0; i< len - 3; i += 4) { + u16 devid = be32_to_cpup(paddr + i); + u16 reg = be32_to_cpup(paddr + i + 1); + u16 mask = be32_to_cpup(paddr + i + 2); + u16 val_bits = be32_to_cpup(paddr + i + 3); + int val;These might read better as len /= 4;
Where did the magic value of 4 come from?
for (i = 0; i< len; i++) {
u16 devid = be32_to_cpu(*paddr++);
u16 reg = be32_to_cpu(*paddr++);
u16 mask = be32_to_cpu(*paddr++);
u16 val_bits = be32_to_cpu(*paddr++);Is the main problem that they didn't align, or that the index was explicit instead of implicit?