Re: [PATCH net-next 2/7] net: phy: mscc: add support for VSC8584 PHY
From: Andrew Lunn <andrew@lunn.ch>
Date: 2018-09-14 17:28:06
Also in:
linux-devicetree, linux-mips, lkml
From: Andrew Lunn <andrew@lunn.ch>
Date: 2018-09-14 17:28:06
Also in:
linux-devicetree, linux-mips, lkml
struct vsc8531_private { int rate_magic; u16 supp_led_modes;@@ -181,6 +354,7 @@ struct vsc8531_private { struct vsc85xx_hw_stat *hw_stats; u64 *stats; int nstats; + bool pkg_init;
+/* bus->mdio_lock should be locked when using this function */
+static int vsc8584_cmd(struct mii_bus *bus, int phy, u16 val)
+{
+ unsigned long deadline;
+ u16 reg_val;
+
+ __mdiobus_write(bus, phy, MSCC_EXT_PAGE_ACCESS,
+ MSCC_PHY_PAGE_EXTENDED_GPIO);
+
+ __mdiobus_write(bus, phy, MSCC_PHY_PROC_CMD, PROC_CMD_NCOMPLETED | val);
Hi Quentin
All the __mdiobus_write() look a bit ugly. Maybe add bus and base_addr
to the vsc8531_private structure. Then add helpers
phy_write_base_phy(priv, reg, val) and phy_read_base_phy(priv, reg).
You could also add in:
if (unlikely(!mutex_is_locked(&priv->bus->mdio_lock))) {
dev_err(bus->dev, "MDIO bus lock not held!\n");
dump_stack();
}
Having such code in the mv88e6xxx driver has found a few bugs for me.
Andrew