X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=drivers%2Fstaging%2Focteon%2Fethernet-rgmii.c;h=88889d30cc0317d98d2080804a0cfa28aef46e4a;hb=9e3ae4f9aecffcc376a714d5088a1275054f9dbf;hp=e36f9bc695430bf89fefd00b9feba9fe37bcc698;hpb=ab074ade9c33b3585da86d62e87bcb3e897a3f54;p=deliverable%2Flinux.git diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c index e36f9bc69543..88889d30cc03 100644 --- a/drivers/staging/octeon/ethernet-rgmii.c +++ b/drivers/staging/octeon/ethernet-rgmii.c @@ -298,37 +298,7 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id) int cvm_oct_rgmii_open(struct net_device *dev) { - union cvmx_gmxx_prtx_cfg gmx_cfg; - struct octeon_ethernet *priv = netdev_priv(dev); - int interface = INTERFACE(priv->port); - int index = INDEX(priv->port); - cvmx_helper_link_info_t link_info; - int rv; - - rv = cvm_oct_phy_setup_device(dev); - if (rv) - return rv; - - gmx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface)); - gmx_cfg.s.en = 1; - cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmx_cfg.u64); - - if (!octeon_is_simulation()) { - if (priv->phydev) { - int r = phy_read_status(priv->phydev); - - if (r == 0 && priv->phydev->link == 0) - netif_carrier_off(dev); - cvm_oct_adjust_link(dev); - } else { - link_info = cvmx_helper_link_get(priv->port); - if (!link_info.s.link_up) - netif_carrier_off(dev); - priv->poll = cvm_oct_rgmii_poll; - } - } - - return 0; + return cvm_oct_common_open(dev, cvm_oct_rgmii_poll, false); } int cvm_oct_rgmii_stop(struct net_device *dev)