net: phy: remove flags argument from phy_{attach, connect, connect_direct}

The flags argument of the phy_{attach,connect,connect_direct} functions
is then used to assign a struct phy_device dev_flags with its value.
All callers but the tg3 driver pass the flag 0, which results in the
underlying PHY drivers in drivers/net/phy/ not being able to actually
use any of the flags they would set in dev_flags. This patch gets rid of
the flags argument, and passes phydev->dev_flags to the internal PHY
library call phy_attach_direct() such that drivers which actually modify
a phy device dev_flags get the value preserved for use by the underlying
phy driver.

Acked-by: Kosta Zertsekel <konszert@marvell.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Florian Fainelli 2013-01-14 00:52:52 +00:00 committed by David S. Miller
parent c1b52739e4
commit f9a8f83b04
34 changed files with 56 additions and 64 deletions

View File

@ -103,7 +103,7 @@ Letting the PHY Abstraction Layer do Everything
Now, to connect, just call this function: Now, to connect, just call this function:
phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); phydev = phy_connect(dev, phy_name, &adjust_link, interface);
phydev is a pointer to the phy_device structure which represents the PHY. If phydev is a pointer to the phy_device structure which represents the PHY. If
phy_connect is successful, it will return the pointer. dev, here, is the phy_connect is successful, it will return the pointer. dev, here, is the
@ -113,7 +113,9 @@ Letting the PHY Abstraction Layer do Everything
current state, though the PHY will not yet be truly operational at this current state, though the PHY will not yet be truly operational at this
point. point.
flags is a u32 which can optionally contain phy-specific flags. PHY-specific flags should be set in phydev->dev_flags prior to the call
to phy_connect() such that the underlying PHY driver can check for flags
and perform specific operations based on them.
This is useful if the system has put hardware restrictions on This is useful if the system has put hardware restrictions on
the PHY/controller, of which the PHY needs to be aware. the PHY/controller, of which the PHY needs to be aware.
@ -185,11 +187,10 @@ Doing it all yourself
start, or disables then frees them for stop. start, or disables then frees them for stop.
struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, struct phy_device * phy_attach(struct net_device *dev, const char *phy_id,
u32 flags, phy_interface_t interface); phy_interface_t interface);
Attaches a network device to a particular PHY, binding the PHY to a generic Attaches a network device to a particular PHY, binding the PHY to a generic
driver if none was found during bus initialization. Passes in driver if none was found during bus initialization.
any phy-specific flags as needed.
int phy_start_aneg(struct phy_device *phydev); int phy_start_aneg(struct phy_device *phydev);

View File

@ -358,7 +358,7 @@ static int ax_mii_probe(struct net_device *dev)
return -ENODEV; return -ENODEV;
} }
ret = phy_connect_direct(dev, phy_dev, ax_handle_link_change, 0, ret = phy_connect_direct(dev, phy_dev, ax_handle_link_change,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (ret) { if (ret) {
netdev_err(dev, "Could not attach to PHY\n"); netdev_err(dev, "Could not attach to PHY\n");

View File

@ -425,8 +425,8 @@ static int mii_probe(struct net_device *dev, int phy_mode)
return -EINVAL; return -EINVAL;
} }
phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link, phydev = phy_connect(dev, dev_name(&phydev->dev),
0, phy_mode); &bfin_mac_adjust_link, phy_mode);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
netdev_err(dev, "could not attach PHY\n"); netdev_err(dev, "could not attach PHY\n");

View File

@ -1288,9 +1288,7 @@ static int greth_mdio_probe(struct net_device *dev)
} }
ret = phy_connect_direct(dev, phy, &greth_link_change, ret = phy_connect_direct(dev, phy, &greth_link_change,
0, greth->gbit_mac ? greth->gbit_mac ? PHY_INTERFACE_MODE_GMII : PHY_INTERFACE_MODE_MII);
PHY_INTERFACE_MODE_GMII :
PHY_INTERFACE_MODE_MII);
if (ret) { if (ret) {
if (netif_msg_ifup(greth)) if (netif_msg_ifup(greth))
dev_err(&dev->dev, "could not attach to PHY\n"); dev_err(&dev->dev, "could not attach to PHY\n");

View File

@ -437,8 +437,8 @@ static int au1000_mii_probe(struct net_device *dev)
/* now we are supposed to have a proper phydev, to attach to... */ /* now we are supposed to have a proper phydev, to attach to... */
BUG_ON(phydev->attached_dev); BUG_ON(phydev->attached_dev);
phydev = phy_connect(dev, dev_name(&phydev->dev), &au1000_adjust_link, phydev = phy_connect(dev, dev_name(&phydev->dev),
0, PHY_INTERFACE_MODE_MII); &au1000_adjust_link, PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
netdev_err(dev, "Could not attach to PHY\n"); netdev_err(dev, "Could not attach to PHY\n");

View File

@ -799,7 +799,7 @@ static int bcm_enet_open(struct net_device *dev)
snprintf(phy_id, sizeof(phy_id), PHY_ID_FMT, snprintf(phy_id, sizeof(phy_id), PHY_ID_FMT,
priv->mii_bus->id, priv->phy_id); priv->mii_bus->id, priv->phy_id);
phydev = phy_connect(dev, phy_id, bcm_enet_adjust_phy_link, 0, phydev = phy_connect(dev, phy_id, bcm_enet_adjust_phy_link,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {

View File

@ -2385,7 +2385,7 @@ static int sbmac_mii_probe(struct net_device *dev)
return -ENXIO; return -ENXIO;
} }
phy_dev = phy_connect(dev, dev_name(&phy_dev->dev), &sbmac_mii_poll, 0, phy_dev = phy_connect(dev, dev_name(&phy_dev->dev), &sbmac_mii_poll,
PHY_INTERFACE_MODE_GMII); PHY_INTERFACE_MODE_GMII);
if (IS_ERR(phy_dev)) { if (IS_ERR(phy_dev)) {
printk(KERN_ERR "%s: could not attach to PHY\n", dev->name); printk(KERN_ERR "%s: could not attach to PHY\n", dev->name);

View File

@ -2004,8 +2004,8 @@ static int tg3_phy_init(struct tg3 *tp)
phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR]; phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR];
/* Attach the MAC to the PHY. */ /* Attach the MAC to the PHY. */
phydev = phy_connect(tp->dev, dev_name(&phydev->dev), tg3_adjust_link, phydev = phy_connect(tp->dev, dev_name(&phydev->dev),
phydev->dev_flags, phydev->interface); tg3_adjust_link, phydev->interface);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
dev_err(&tp->pdev->dev, "Could not attach to PHY\n"); dev_err(&tp->pdev->dev, "Could not attach to PHY\n");
return PTR_ERR(phydev); return PTR_ERR(phydev);

View File

@ -287,7 +287,7 @@ static int macb_mii_probe(struct net_device *dev)
} }
/* attach the mac to the phy */ /* attach the mac to the phy */
ret = phy_connect_direct(dev, phydev, &macb_handle_link_change, 0, ret = phy_connect_direct(dev, phydev, &macb_handle_link_change,
bp->phy_interface); bp->phy_interface);
if (ret) { if (ret) {
netdev_err(dev, "Could not attach to PHY\n"); netdev_err(dev, "Could not attach to PHY\n");

View File

@ -281,11 +281,11 @@ static int dnet_mii_probe(struct net_device *dev)
/* attach the mac to the phy */ /* attach the mac to the phy */
if (bp->capabilities & DNET_HAS_RMII) { if (bp->capabilities & DNET_HAS_RMII) {
phydev = phy_connect(dev, dev_name(&phydev->dev), phydev = phy_connect(dev, dev_name(&phydev->dev),
&dnet_handle_link_change, 0, &dnet_handle_link_change,
PHY_INTERFACE_MODE_RMII); PHY_INTERFACE_MODE_RMII);
} else { } else {
phydev = phy_connect(dev, dev_name(&phydev->dev), phydev = phy_connect(dev, dev_name(&phydev->dev),
&dnet_handle_link_change, 0, &dnet_handle_link_change,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
} }

View File

@ -682,7 +682,7 @@ static int ethoc_mdio_probe(struct net_device *dev)
return -ENXIO; return -ENXIO;
} }
err = phy_connect_direct(dev, phy, ethoc_mdio_poll, 0, err = phy_connect_direct(dev, phy, ethoc_mdio_poll,
PHY_INTERFACE_MODE_GMII); PHY_INTERFACE_MODE_GMII);
if (err) { if (err) {
dev_err(&dev->dev, "could not attach to PHY\n"); dev_err(&dev->dev, "could not attach to PHY\n");

View File

@ -858,8 +858,7 @@ static int ftgmac100_mii_probe(struct ftgmac100 *priv)
} }
phydev = phy_connect(netdev, dev_name(&phydev->dev), phydev = phy_connect(netdev, dev_name(&phydev->dev),
&ftgmac100_adjust_link, 0, &ftgmac100_adjust_link, PHY_INTERFACE_MODE_GMII);
PHY_INTERFACE_MODE_GMII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
netdev_err(netdev, "%s: Could not attach to PHY\n", netdev->name); netdev_err(netdev, "%s: Could not attach to PHY\n", netdev->name);

View File

@ -1008,7 +1008,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
} }
snprintf(phy_name, sizeof(phy_name), PHY_ID_FMT, mdio_bus_id, phy_id); snprintf(phy_name, sizeof(phy_name), PHY_ID_FMT, mdio_bus_id, phy_id);
phy_dev = phy_connect(ndev, phy_name, &fec_enet_adjust_link, 0, phy_dev = phy_connect(ndev, phy_name, &fec_enet_adjust_link,
fep->phy_interface); fep->phy_interface);
if (IS_ERR(phy_dev)) { if (IS_ERR(phy_dev)) {
printk(KERN_ERR "%s: could not attach to PHY\n", ndev->name); printk(KERN_ERR "%s: could not attach to PHY\n", ndev->name);

View File

@ -393,8 +393,8 @@ ltq_etop_mdio_probe(struct net_device *dev)
return -ENODEV; return -ENODEV;
} }
phydev = phy_connect(dev, dev_name(&phydev->dev), &ltq_etop_mdio_link, phydev = phy_connect(dev, dev_name(&phydev->dev),
0, priv->pldata->mii_mode); &ltq_etop_mdio_link, priv->pldata->mii_mode);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
netdev_err(dev, "Could not attach to PHY\n"); netdev_err(dev, "Could not attach to PHY\n");

View File

@ -2789,7 +2789,7 @@ static void phy_init(struct mv643xx_eth_private *mp, int speed, int duplex)
phy_reset(mp); phy_reset(mp);
phy_attach(mp->dev, dev_name(&phy->dev), 0, PHY_INTERFACE_MODE_GMII); phy_attach(mp->dev, dev_name(&phy->dev), PHY_INTERFACE_MODE_GMII);
if (speed == 0) { if (speed == 0) {
phy->autoneg = AUTONEG_ENABLE; phy->autoneg = AUTONEG_ENABLE;

View File

@ -1390,7 +1390,7 @@ static void phy_init(struct pxa168_eth_private *pep, int speed, int duplex)
struct phy_device *phy = pep->phy; struct phy_device *phy = pep->phy;
ethernet_phy_reset(pep); ethernet_phy_reset(pep);
phy_attach(pep->dev, dev_name(&phy->dev), 0, PHY_INTERFACE_MODE_MII); phy_attach(pep->dev, dev_name(&phy->dev), PHY_INTERFACE_MODE_MII);
if (speed == 0) { if (speed == 0) {
phy->autoneg = AUTONEG_ENABLE; phy->autoneg = AUTONEG_ENABLE;

View File

@ -800,7 +800,7 @@ static int lpc_mii_probe(struct net_device *ndev)
else else
netdev_info(ndev, "using RMII interface\n"); netdev_info(ndev, "using RMII interface\n");
phydev = phy_connect(ndev, dev_name(&phydev->dev), phydev = phy_connect(ndev, dev_name(&phydev->dev),
&lpc_handle_link_change, 0, &lpc_handle_link_change,
lpc_phy_interface_mode(&pldat->pdev->dev)); lpc_phy_interface_mode(&pldat->pdev->dev));
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {

View File

@ -1042,7 +1042,7 @@ static int r6040_mii_probe(struct net_device *dev)
} }
phydev = phy_connect(dev, dev_name(&phydev->dev), &r6040_adjust_link, phydev = phy_connect(dev, dev_name(&phydev->dev), &r6040_adjust_link,
0, PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
dev_err(&lp->pdev->dev, "could not attach to PHY\n"); dev_err(&lp->pdev->dev, "could not attach to PHY\n");

View File

@ -1422,7 +1422,7 @@ static int sh_eth_phy_init(struct net_device *ndev)
/* Try connect to PHY */ /* Try connect to PHY */
phydev = phy_connect(ndev, phy_id, sh_eth_adjust_link, phydev = phy_connect(ndev, phy_id, sh_eth_adjust_link,
0, mdp->phy_interface); mdp->phy_interface);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
dev_err(&ndev->dev, "phy_connect failed\n"); dev_err(&ndev->dev, "phy_connect failed\n");
return PTR_ERR(phydev); return PTR_ERR(phydev);

View File

@ -795,7 +795,7 @@ static inline int s6gmac_phy_start(struct net_device *dev)
struct phy_device *p = NULL; struct phy_device *p = NULL;
while ((i < PHY_MAX_ADDR) && (!(p = pd->mii.bus->phy_map[i]))) while ((i < PHY_MAX_ADDR) && (!(p = pd->mii.bus->phy_map[i])))
i++; i++;
p = phy_connect(dev, dev_name(&p->dev), &s6gmac_adjust_link, 0, p = phy_connect(dev, dev_name(&p->dev), &s6gmac_adjust_link,
PHY_INTERFACE_MODE_RGMII); PHY_INTERFACE_MODE_RGMII);
if (IS_ERR(p)) { if (IS_ERR(p)) {
printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);

View File

@ -997,8 +997,7 @@ static int smsc911x_mii_probe(struct net_device *dev)
SMSC_TRACE(pdata, probe, "PHY: addr %d, phy_id 0x%08X", SMSC_TRACE(pdata, probe, "PHY: addr %d, phy_id 0x%08X",
phydev->addr, phydev->phy_id); phydev->addr, phydev->phy_id);
ret = phy_connect_direct(dev, phydev, ret = phy_connect_direct(dev, phydev, &smsc911x_phy_adjust_link,
&smsc911x_phy_adjust_link, 0,
pdata->config.phy_interface); pdata->config.phy_interface);
if (ret) { if (ret) {

View File

@ -1179,7 +1179,7 @@ static int smsc9420_mii_probe(struct net_device *dev)
phydev->phy_id); phydev->phy_id);
phydev = phy_connect(dev, dev_name(&phydev->dev), phydev = phy_connect(dev, dev_name(&phydev->dev),
smsc9420_phy_adjust_link, 0, PHY_INTERFACE_MODE_MII); smsc9420_phy_adjust_link, PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
pr_err("%s: Could not attach to PHY\n", dev->name); pr_err("%s: Could not attach to PHY\n", dev->name);

View File

@ -428,8 +428,7 @@ static int stmmac_init_phy(struct net_device *dev)
priv->plat->phy_addr); priv->plat->phy_addr);
pr_debug("stmmac_init_phy: trying to attach to %s\n", phy_id_fmt); pr_debug("stmmac_init_phy: trying to attach to %s\n", phy_id_fmt);
phydev = phy_connect(dev, phy_id_fmt, &stmmac_adjust_link, 0, phydev = phy_connect(dev, phy_id_fmt, &stmmac_adjust_link, interface);
interface);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
pr_err("%s: Could not attach to PHY\n", dev->name); pr_err("%s: Could not attach to PHY\n", dev->name);

View File

@ -1172,7 +1172,7 @@ static int cpmac_probe(struct platform_device *pdev)
snprintf(priv->phy_name, MII_BUS_ID_SIZE, PHY_ID_FMT, snprintf(priv->phy_name, MII_BUS_ID_SIZE, PHY_ID_FMT,
mdio_bus_id, phy_id); mdio_bus_id, phy_id);
priv->phy = phy_connect(dev, priv->phy_name, cpmac_adjust_link, 0, priv->phy = phy_connect(dev, priv->phy_name, cpmac_adjust_link,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(priv->phy)) { if (IS_ERR(priv->phy)) {

View File

@ -592,7 +592,7 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
1 << slave_port, 0, ALE_MCAST_FWD_2); 1 << slave_port, 0, ALE_MCAST_FWD_2);
slave->phy = phy_connect(priv->ndev, slave->data->phy_id, slave->phy = phy_connect(priv->ndev, slave->data->phy_id,
&cpsw_adjust_link, 0, slave->data->phy_if); &cpsw_adjust_link, slave->data->phy_if);
if (IS_ERR(slave->phy)) { if (IS_ERR(slave->phy)) {
dev_err(priv->dev, "phy %s not found on slave %d\n", dev_err(priv->dev, "phy %s not found on slave %d\n",
slave->data->phy_id, slave->slave_num); slave->data->phy_id, slave->slave_num);

View File

@ -1599,7 +1599,7 @@ static int emac_dev_open(struct net_device *ndev)
if (priv->phy_id && *priv->phy_id) { if (priv->phy_id && *priv->phy_id) {
priv->phydev = phy_connect(ndev, priv->phy_id, priv->phydev = phy_connect(ndev, priv->phy_id,
&emac_adjust_link, 0, &emac_adjust_link,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(priv->phydev)) { if (IS_ERR(priv->phydev)) {

View File

@ -633,9 +633,8 @@ static int tc_mii_probe(struct net_device *dev)
/* attach the mac to the phy */ /* attach the mac to the phy */
phydev = phy_connect(dev, dev_name(&phydev->dev), phydev = phy_connect(dev, dev_name(&phydev->dev),
&tc_handle_link_change, 0, &tc_handle_link_change,
lp->chiptype == TC35815_TX4939 ? lp->chiptype == TC35815_TX4939 ? PHY_INTERFACE_MODE_RMII : PHY_INTERFACE_MODE_MII);
PHY_INTERFACE_MODE_RMII : PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
return PTR_ERR(phydev); return PTR_ERR(phydev);

View File

@ -1451,7 +1451,7 @@ static int eth_init_one(struct platform_device *pdev)
snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT, snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT,
mdio_bus->id, plat->phy); mdio_bus->id, plat->phy);
port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0, port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link,
PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(port->phydev)) { if (IS_ERR(port->phydev)) {
err = PTR_ERR(port->phydev); err = PTR_ERR(port->phydev);

View File

@ -416,16 +416,15 @@ static void phy_prepare_link(struct phy_device *phydev,
* @dev: the network device to connect * @dev: the network device to connect
* @phydev: the pointer to the phy device * @phydev: the pointer to the phy device
* @handler: callback function for state change notifications * @handler: callback function for state change notifications
* @flags: PHY device's dev_flags
* @interface: PHY device's interface * @interface: PHY device's interface
*/ */
int phy_connect_direct(struct net_device *dev, struct phy_device *phydev, int phy_connect_direct(struct net_device *dev, struct phy_device *phydev,
void (*handler)(struct net_device *), u32 flags, void (*handler)(struct net_device *),
phy_interface_t interface) phy_interface_t interface)
{ {
int rc; int rc;
rc = phy_attach_direct(dev, phydev, flags, interface); rc = phy_attach_direct(dev, phydev, phydev->dev_flags, interface);
if (rc) if (rc)
return rc; return rc;
@ -443,7 +442,6 @@ EXPORT_SYMBOL(phy_connect_direct);
* @dev: the network device to connect * @dev: the network device to connect
* @bus_id: the id string of the PHY device to connect * @bus_id: the id string of the PHY device to connect
* @handler: callback function for state change notifications * @handler: callback function for state change notifications
* @flags: PHY device's dev_flags
* @interface: PHY device's interface * @interface: PHY device's interface
* *
* Description: Convenience function for connecting ethernet * Description: Convenience function for connecting ethernet
@ -455,7 +453,7 @@ EXPORT_SYMBOL(phy_connect_direct);
* the desired functionality. * the desired functionality.
*/ */
struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, struct phy_device * phy_connect(struct net_device *dev, const char *bus_id,
void (*handler)(struct net_device *), u32 flags, void (*handler)(struct net_device *),
phy_interface_t interface) phy_interface_t interface)
{ {
struct phy_device *phydev; struct phy_device *phydev;
@ -471,7 +469,7 @@ struct phy_device * phy_connect(struct net_device *dev, const char *bus_id,
} }
phydev = to_phy_device(d); phydev = to_phy_device(d);
rc = phy_connect_direct(dev, phydev, handler, flags, interface); rc = phy_connect_direct(dev, phydev, handler, interface);
if (rc) if (rc)
return ERR_PTR(rc); return ERR_PTR(rc);
@ -576,14 +574,13 @@ static int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
* phy_attach - attach a network device to a particular PHY device * phy_attach - attach a network device to a particular PHY device
* @dev: network device to attach * @dev: network device to attach
* @bus_id: Bus ID of PHY device to attach * @bus_id: Bus ID of PHY device to attach
* @flags: PHY device's dev_flags
* @interface: PHY device's interface * @interface: PHY device's interface
* *
* Description: Same as phy_attach_direct() except that a PHY bus_id * Description: Same as phy_attach_direct() except that a PHY bus_id
* string is passed instead of a pointer to a struct phy_device. * string is passed instead of a pointer to a struct phy_device.
*/ */
struct phy_device *phy_attach(struct net_device *dev, struct phy_device *phy_attach(struct net_device *dev,
const char *bus_id, u32 flags, phy_interface_t interface) const char *bus_id, phy_interface_t interface)
{ {
struct bus_type *bus = &mdio_bus_type; struct bus_type *bus = &mdio_bus_type;
struct phy_device *phydev; struct phy_device *phydev;
@ -599,7 +596,7 @@ struct phy_device *phy_attach(struct net_device *dev,
} }
phydev = to_phy_device(d); phydev = to_phy_device(d);
rc = phy_attach_direct(dev, phydev, flags, interface); rc = phy_attach_direct(dev, phydev, phydev->dev_flags, interface);
if (rc) if (rc)
return ERR_PTR(rc); return ERR_PTR(rc);

View File

@ -377,7 +377,7 @@ static int ax88172a_reset(struct usbnet *dev)
priv->phydev = phy_connect(dev->net, priv->phy_name, priv->phydev = phy_connect(dev->net, priv->phy_name,
&ax88172a_adjust_link, &ax88172a_adjust_link,
0, PHY_INTERFACE_MODE_MII); PHY_INTERFACE_MODE_MII);
if (IS_ERR(priv->phydev)) { if (IS_ERR(priv->phydev)) {
netdev_err(dev->net, "Could not connect to PHY device %s\n", netdev_err(dev->net, "Could not connect to PHY device %s\n",
priv->phy_name); priv->phy_name);

View File

@ -157,7 +157,7 @@ struct phy_device *of_phy_connect(struct net_device *dev,
if (!phy) if (!phy)
return NULL; return NULL;
return phy_connect_direct(dev, phy, hndlr, flags, iface) ? NULL : phy; return phy_connect_direct(dev, phy, hndlr, iface) ? NULL : phy;
} }
EXPORT_SYMBOL(of_phy_connect); EXPORT_SYMBOL(of_phy_connect);
@ -194,7 +194,7 @@ struct phy_device *of_phy_connect_fixed_link(struct net_device *dev,
sprintf(bus_id, PHY_ID_FMT, "fixed-0", be32_to_cpu(phy_id[0])); sprintf(bus_id, PHY_ID_FMT, "fixed-0", be32_to_cpu(phy_id[0]));
phy = phy_connect(dev, bus_id, hndlr, 0, iface); phy = phy_connect(dev, bus_id, hndlr, iface);
return IS_ERR(phy) ? NULL : phy; return IS_ERR(phy) ? NULL : phy;
} }
EXPORT_SYMBOL(of_phy_connect_fixed_link); EXPORT_SYMBOL(of_phy_connect_fixed_link);

View File

@ -3917,7 +3917,7 @@ static int et131x_mii_probe(struct net_device *netdev)
} }
phydev = phy_connect(netdev, dev_name(&phydev->dev), phydev = phy_connect(netdev, dev_name(&phydev->dev),
&et131x_adjust_link, 0, PHY_INTERFACE_MODE_MII); &et131x_adjust_link, PHY_INTERFACE_MODE_MII);
if (IS_ERR(phydev)) { if (IS_ERR(phydev)) {
dev_err(&adapter->pdev->dev, "Could not attach to PHY\n"); dev_err(&adapter->pdev->dev, "Could not attach to PHY\n");

View File

@ -506,13 +506,13 @@ struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45);
int phy_device_register(struct phy_device *phy); int phy_device_register(struct phy_device *phy);
int phy_init_hw(struct phy_device *phydev); int phy_init_hw(struct phy_device *phydev);
struct phy_device * phy_attach(struct net_device *dev, struct phy_device * phy_attach(struct net_device *dev,
const char *bus_id, u32 flags, phy_interface_t interface); const char *bus_id, phy_interface_t interface);
struct phy_device *phy_find_first(struct mii_bus *bus); struct phy_device *phy_find_first(struct mii_bus *bus);
int phy_connect_direct(struct net_device *dev, struct phy_device *phydev, int phy_connect_direct(struct net_device *dev, struct phy_device *phydev,
void (*handler)(struct net_device *), u32 flags, void (*handler)(struct net_device *),
phy_interface_t interface); phy_interface_t interface);
struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, struct phy_device * phy_connect(struct net_device *dev, const char *bus_id,
void (*handler)(struct net_device *), u32 flags, void (*handler)(struct net_device *),
phy_interface_t interface); phy_interface_t interface);
void phy_disconnect(struct phy_device *phydev); void phy_disconnect(struct phy_device *phydev);
void phy_detach(struct phy_device *phydev); void phy_detach(struct phy_device *phydev);

View File

@ -391,7 +391,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent,
if (p->phy != NULL) { if (p->phy != NULL) {
phy_attach(slave_dev, dev_name(&p->phy->dev), phy_attach(slave_dev, dev_name(&p->phy->dev),
0, PHY_INTERFACE_MODE_GMII); PHY_INTERFACE_MODE_GMII);
p->phy->autoneg = AUTONEG_ENABLE; p->phy->autoneg = AUTONEG_ENABLE;
p->phy->speed = 0; p->phy->speed = 0;