net: dsa: microchip: ksz9477: separate phylink mode from switch register
As per 'commit 3506b2f42d
("net: dsa: microchip: call
phy_remove_link_mode during probe")' phy_remove_link_mode is added in
the switch_register function after dsa_switch_register. In order to have
the common switch register function, moving this phylink validation to
phylink_get_caps validation hook.
Signed-off-by: Arun Ramadoss <arun.ramadoss@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1958eee85f
commit
7a8988a17c
@ -1059,8 +1059,11 @@ static void ksz9477_phy_errata_setup(struct ksz_device *dev, int port)
|
||||
static void ksz9477_get_caps(struct ksz_device *dev, int port,
|
||||
struct phylink_config *config)
|
||||
{
|
||||
config->mac_capabilities = MAC_10 | MAC_100 | MAC_1000FD |
|
||||
MAC_ASYM_PAUSE | MAC_SYM_PAUSE;
|
||||
config->mac_capabilities = MAC_10 | MAC_100 | MAC_ASYM_PAUSE |
|
||||
MAC_SYM_PAUSE;
|
||||
|
||||
if (dev->features & GBIT_SUPPORT)
|
||||
config->mac_capabilities |= MAC_1000FD;
|
||||
}
|
||||
|
||||
static void ksz9477_port_setup(struct ksz_device *dev, int port, bool cpu_port)
|
||||
@ -1381,29 +1384,7 @@ static const struct ksz_dev_ops ksz9477_dev_ops = {
|
||||
|
||||
int ksz9477_switch_register(struct ksz_device *dev)
|
||||
{
|
||||
int ret, i;
|
||||
struct phy_device *phydev;
|
||||
|
||||
ret = ksz_switch_register(dev, &ksz9477_dev_ops);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < dev->phy_port_cnt; ++i) {
|
||||
if (!dsa_is_user_port(dev->ds, i))
|
||||
continue;
|
||||
|
||||
phydev = dsa_to_port(dev->ds, i)->slave->phydev;
|
||||
|
||||
/* The MAC actually cannot run in 1000 half-duplex mode. */
|
||||
phy_remove_link_mode(phydev,
|
||||
ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
|
||||
|
||||
/* PHY does not support gigabit. */
|
||||
if (!(dev->features & GBIT_SUPPORT))
|
||||
phy_remove_link_mode(phydev,
|
||||
ETHTOOL_LINK_MODE_1000baseT_Full_BIT);
|
||||
}
|
||||
return ret;
|
||||
return ksz_switch_register(dev, &ksz9477_dev_ops);
|
||||
}
|
||||
EXPORT_SYMBOL(ksz9477_switch_register);
|
||||
|
||||
|
@ -1332,7 +1332,7 @@ int ksz_switch_register(struct ksz_device *dev,
|
||||
/* Start the MIB timer. */
|
||||
schedule_delayed_work(&dev->mib_read, 0);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ksz_switch_register);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user