Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5a03bfd authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller
Browse files

phy: Add an mdio_device structure



Not all devices attached to an MDIO bus are phys. So add an
mdio_device structure to represent the generic parts of an mdio
device, and place this structure into the phy_device.

Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e7f4dc35
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -1235,7 +1235,7 @@ static int et131x_mii_read(struct et131x_adapter *adapter, u8 reg, u16 *value)
	if (!phydev)
		return -EIO;

	return et131x_phy_mii_read(adapter, phydev->addr, reg, value);
	return et131x_phy_mii_read(adapter, phydev->mdio.addr, reg, value);
}

static int et131x_mii_write(struct et131x_adapter *adapter, u8 addr, u8 reg,
@@ -1462,7 +1462,7 @@ static void et1310_phy_power_switch(struct et131x_adapter *adapter, bool down)
	data &= ~BMCR_PDOWN;
	if (down)
		data |= BMCR_PDOWN;
	et131x_mii_write(adapter, phydev->addr, MII_BMCR, data);
	et131x_mii_write(adapter, phydev->mdio.addr, MII_BMCR, data);
}

/* et131x_xcvr_init - Init the phy if we are setting it into force mode */
@@ -1490,7 +1490,7 @@ static void et131x_xcvr_init(struct et131x_adapter *adapter)
		else
			lcr2 |= (LED_VAL_LINKON << LED_TXRX_SHIFT);

		et131x_mii_write(adapter, phydev->addr, PHY_LED_2, lcr2);
		et131x_mii_write(adapter, phydev->mdio.addr, PHY_LED_2, lcr2);
	}
}

@@ -3192,14 +3192,14 @@ static void et131x_adjust_link(struct net_device *netdev)

			et131x_mii_read(adapter, PHY_MPHY_CONTROL_REG,
					&register18);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_MPHY_CONTROL_REG,
					 register18 | 0x4);
			et131x_mii_write(adapter, phydev->addr, PHY_INDEX_REG,
					 register18 | 0x8402);
			et131x_mii_write(adapter, phydev->addr, PHY_DATA_REG,
					 register18 | 511);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_INDEX_REG, register18 | 0x8402);
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_DATA_REG, register18 | 511);
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_MPHY_CONTROL_REG, register18);
		}

@@ -3212,8 +3212,8 @@ static void et131x_adjust_link(struct net_device *netdev)
			et131x_mii_read(adapter, PHY_CONFIG, &reg);
			reg &= ~ET_PHY_CONFIG_TX_FIFO_DEPTH;
			reg |= ET_PHY_CONFIG_FIFO_DEPTH_32;
			et131x_mii_write(adapter, phydev->addr, PHY_CONFIG,
					 reg);
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_CONFIG, reg);
		}

		et131x_set_rx_dma_timer(adapter);
@@ -3226,14 +3226,14 @@ static void et131x_adjust_link(struct net_device *netdev)

			et131x_mii_read(adapter, PHY_MPHY_CONTROL_REG,
					&register18);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_MPHY_CONTROL_REG,
					 register18 | 0x4);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_INDEX_REG, register18 | 0x8402);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_DATA_REG, register18 | 511);
			et131x_mii_write(adapter, phydev->addr,
			et131x_mii_write(adapter, phydev->mdio.addr,
					 PHY_MPHY_CONTROL_REG, register18);
		}

+1 −1
Original line number Diff line number Diff line
@@ -844,7 +844,7 @@ static int init_phy(struct net_device *dev)
	}

	netdev_dbg(dev, "attached to PHY %d UID 0x%08x Link = %d\n",
		   phydev->addr, phydev->phy_id, phydev->link);
		   phydev->mdio.addr, phydev->phy_id, phydev->link);

	priv->phydev = phydev;
	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -2305,7 +2305,7 @@ static int b44_register_phy_one(struct b44 *bp)

	bp->phydev = phydev;
	bp->old_link = 0;
	bp->phy_addr = phydev->addr;
	bp->phy_addr = phydev->mdio.addr;

	phy_attached_info(phydev);

+1 −1
Original line number Diff line number Diff line
@@ -401,7 +401,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
	 * Ethernet MAC ISRs
	 */
	if (priv->internal_phy)
		priv->mii_bus->irq[phydev->addr] = PHY_IGNORE_INTERRUPT;
		priv->mii_bus->irq[phydev->mdio.addr] = PHY_IGNORE_INTERRUPT;

	return 0;
}
+2 −2
Original line number Diff line number Diff line
@@ -2366,8 +2366,8 @@ static int sbmac_mii_probe(struct net_device *dev)
		return -ENXIO;
	}

	phy_dev = phy_connect(dev, dev_name(&phy_dev->dev), &sbmac_mii_poll,
			      PHY_INTERFACE_MODE_GMII);
	phy_dev = phy_connect(dev, dev_name(&phy_dev->mdio.dev),
			      &sbmac_mii_poll, PHY_INTERFACE_MODE_GMII);
	if (IS_ERR(phy_dev)) {
		printk(KERN_ERR "%s: could not attach to PHY\n", dev->name);
		return PTR_ERR(phy_dev);
Loading