diff options
author | Aaro Koskinen <aaro.koskinen@iki.fi> | 2015-04-04 22:51:08 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-30 16:59:24 +0200 |
commit | a8d2e8171082854dadea64b808af4b54f78c0384 (patch) | |
tree | 953355b1057fc7335ba1808e032eb09a307b3985 /drivers/staging/octeon/ethernet-xaui.c | |
parent | staging: octeon-ethernet: consolidate carrier notifications (diff) | |
download | linux-dev-a8d2e8171082854dadea64b808af4b54f78c0384.tar.xz linux-dev-a8d2e8171082854dadea64b808af4b54f78c0384.zip |
staging: octeon-ethernet: sgmii/xaui: make link poll generic
Make link poll generic to avoid copy paste.
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/octeon/ethernet-xaui.c')
-rw-r--r-- | drivers/staging/octeon/ethernet-xaui.c | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c index 888b70b93a7b..42a4d2be0cff 100644 --- a/drivers/staging/octeon/ethernet-xaui.c +++ b/drivers/staging/octeon/ethernet-xaui.c @@ -41,31 +41,9 @@ #include <asm/octeon/cvmx-gmxx-defs.h> -static void cvm_oct_xaui_poll(struct net_device *dev) -{ - struct octeon_ethernet *priv = netdev_priv(dev); - cvmx_helper_link_info_t link_info; - - link_info = cvmx_helper_link_get(priv->port); - if (link_info.u64 == priv->link_info) - return; - - link_info = cvmx_helper_link_autoconf(priv->port); - priv->link_info = link_info.u64; - - /* Tell Linux */ - if (link_info.s.link_up) { - if (!netif_carrier_ok(dev)) - netif_carrier_on(dev); - } else if (netif_carrier_ok(dev)) { - netif_carrier_off(dev); - } - cvm_oct_note_carrier(priv, link_info); -} - int cvm_oct_xaui_open(struct net_device *dev) { - return cvm_oct_common_open(dev, cvm_oct_xaui_poll, true); + return cvm_oct_common_open(dev, cvm_oct_link_poll, true); } int cvm_oct_xaui_init(struct net_device *dev) @@ -74,7 +52,7 @@ int cvm_oct_xaui_init(struct net_device *dev) cvm_oct_common_init(dev); if (!octeon_is_simulation() && priv->phydev == NULL) - priv->poll = cvm_oct_xaui_poll; + priv->poll = cvm_oct_link_poll; return 0; } |