Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / ethernet / freescale / fec_main.c
index befdf78b3f695c77f30b4e4eaf2ca3d9c850d803..2451ab1b5a83c46dc6c1bae24ad8bfee509f6eab 100644 (file)
 
 #include <asm/cacheflush.h>
 
-#ifndef CONFIG_ARM
-#include <asm/coldfire.h>
-#include <asm/mcfsim.h>
-#endif
-
 #include "fec.h"
 
 #if defined(CONFIG_ARM)
@@ -266,7 +261,7 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                /* Ooops.  All transmit buffers are full.  Bail out.
                 * This should not happen, since ndev->tbusy should be set.
                 */
-               printk("%s: tx queue full!.\n", ndev->name);
+               netdev_err(ndev, "tx queue full!\n");
                return NETDEV_TX_BUSY;
        }
 
@@ -578,7 +573,7 @@ fec_stop(struct net_device *ndev)
                writel(1, fep->hwp + FEC_X_CNTRL); /* Graceful transmit stop */
                udelay(10);
                if (!(readl(fep->hwp + FEC_IEVENT) & FEC_ENET_GRA))
-                       printk("fec_stop : Graceful transmit stop did not complete !\n");
+                       netdev_err(ndev, "Graceful transmit stop did not complete!\n");
        }
 
        /* Whack a reset.  We should wait for this. */
@@ -676,7 +671,7 @@ fec_enet_tx(struct net_device *ndev)
                }
 
                if (status & BD_ENET_TX_READY)
-                       printk("HEY! Enet xmit interrupt and TX_READY.\n");
+                       netdev_err(ndev, "HEY! Enet xmit interrupt and TX_READY\n");
 
                /* Deferred means some collisions occurred during transmit,
                 * but we eventually sent the packet OK.
@@ -744,7 +739,7 @@ fec_enet_rx(struct net_device *ndev, int budget)
                 * the last indicator should be set.
                 */
                if ((status & BD_ENET_RX_LAST) == 0)
-                       printk("FEC ENET: rcv is not +last\n");
+                       netdev_err(ndev, "rcv is not +last\n");
 
                if (!fep->opened)
                        goto rx_processing_done;
@@ -1002,6 +997,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
        } else {
                if (fep->link) {
                        fec_stop(ndev);
+                       fep->link = phy_dev->link;
                        status_change = 1;
                }
        }
@@ -1031,7 +1027,7 @@ static int fec_enet_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
                        usecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
                fep->mii_timeout = 1;
-               printk(KERN_ERR "FEC: MDIO read timeout\n");
+               netdev_err(fep->netdev, "MDIO read timeout\n");
                return -ETIMEDOUT;
        }
 
@@ -1059,7 +1055,7 @@ static int fec_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum,
                        usecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
                fep->mii_timeout = 1;
-               printk(KERN_ERR "FEC: MDIO write timeout\n");
+               netdev_err(fep->netdev, "MDIO write timeout\n");
                return -ETIMEDOUT;
        }
 
@@ -1099,9 +1095,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
        }
 
        if (phy_id >= PHY_MAX_ADDR) {
-               printk(KERN_INFO
-                       "%s: no PHY, assuming direct connection to switch\n",
-                       ndev->name);
+               netdev_info(ndev, "no PHY, assuming direct connection to switch\n");
                strncpy(mdio_bus_id, "fixed-0", MII_BUS_ID_SIZE);
                phy_id = 0;
        }
@@ -1110,7 +1104,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
        phy_dev = phy_connect(ndev, phy_name, &fec_enet_adjust_link,
                              fep->phy_interface);
        if (IS_ERR(phy_dev)) {
-               printk(KERN_ERR "%s: could not attach to PHY\n", ndev->name);
+               netdev_err(ndev, "could not attach to PHY\n");
                return PTR_ERR(phy_dev);
        }
 
@@ -1128,11 +1122,9 @@ static int fec_enet_mii_probe(struct net_device *ndev)
        fep->link = 0;
        fep->full_duplex = 0;
 
-       printk(KERN_INFO
-               "%s: Freescale FEC PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n",
-               ndev->name,
-               fep->phy_dev->drv->name, dev_name(&fep->phy_dev->dev),
-               fep->phy_dev->irq);
+       netdev_info(ndev, "Freescale FEC PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n",
+                   fep->phy_dev->drv->name, dev_name(&fep->phy_dev->dev),
+                   fep->phy_dev->irq);
 
        return 0;
 }
@@ -1858,6 +1850,9 @@ fec_probe(struct platform_device *pdev)
        if (ret)
                goto failed_register;
 
+       if (fep->bufdesc_ex && fep->ptp_clock)
+               netdev_info(ndev, "registered PHC device %d\n", fep->dev_id);
+
        return 0;
 
 failed_register:
@@ -1910,7 +1905,7 @@ fec_drv_remove(struct platform_device *pdev)
        return 0;
 }
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 static int
 fec_suspend(struct device *dev)
 {
@@ -1942,24 +1937,15 @@ fec_resume(struct device *dev)
 
        return 0;
 }
+#endif /* CONFIG_PM_SLEEP */
 
-static const struct dev_pm_ops fec_pm_ops = {
-       .suspend        = fec_suspend,
-       .resume         = fec_resume,
-       .freeze         = fec_suspend,
-       .thaw           = fec_resume,
-       .poweroff       = fec_suspend,
-       .restore        = fec_resume,
-};
-#endif
+static SIMPLE_DEV_PM_OPS(fec_pm_ops, fec_suspend, fec_resume);
 
 static struct platform_driver fec_driver = {
        .driver = {
                .name   = DRIVER_NAME,
                .owner  = THIS_MODULE,
-#ifdef CONFIG_PM
                .pm     = &fec_pm_ops,
-#endif
                .of_match_table = fec_dt_ids,
        },
        .id_table = fec_devtype,