lkml.org 
[lkml]   [2018]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH net-next 2/7] net: phy: mscc: add support for VSC8584 PHY

> 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

\
 
 \ /
  Last update: 2018-09-14 19:28    [W:0.277 / U:0.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site