dm: net: macb: Update macb_linkspd_cb() signature
authorBin Meng <bmeng.cn@gmail.com>
Wed, 22 May 2019 07:09:45 +0000 (00:09 -0700)
committerJoe Hershberger <joe.hershberger@ni.com>
Sat, 1 Jun 2019 18:33:17 +0000 (13:33 -0500)
This updates DM version macb_linkspd_cb() signature for future
expansion, eg: adding an implementation for link speed changes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/macb.c

index 72614164e9c7c36c283ece131a334468d78cc9f4..b7f404e857195fb57cfc8c82a88a6fe1d3c8c01d 100644 (file)
@@ -488,15 +488,23 @@ static int macb_phy_find(struct macb_device *macb, const char *name)
 
 /**
  * macb_linkspd_cb - Linkspeed change callback function
- * @regs:      Base Register of MACB devices
+ * @dev/@regs: MACB udevice (DM version) or
+ *             Base Register of MACB devices (non-DM version)
  * @speed:     Linkspeed
  * Returns 0 when operation success and negative errno number
  * when operation failed.
  */
+#ifdef CONFIG_DM_ETH
+int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
+{
+       return 0;
+}
+#else
 int __weak macb_linkspd_cb(void *regs, unsigned int speed)
 {
        return 0;
 }
+#endif
 
 #ifdef CONFIG_DM_ETH
 static int macb_phy_init(struct udevice *dev, const char *name)
@@ -589,7 +597,11 @@ static int macb_phy_init(struct macb_device *macb, const char *name)
 
                        macb_writel(macb, NCFGR, ncfgr);
 
+#ifdef CONFIG_DM_ETH
+                       ret = macb_linkspd_cb(dev, _1000BASET);
+#else
                        ret = macb_linkspd_cb(macb->regs, _1000BASET);
+#endif
                        if (ret)
                                return ret;
 
@@ -614,9 +626,17 @@ static int macb_phy_init(struct macb_device *macb, const char *name)
        ncfgr &= ~(MACB_BIT(SPD) | MACB_BIT(FD) | GEM_BIT(GBE));
        if (speed) {
                ncfgr |= MACB_BIT(SPD);
+#ifdef CONFIG_DM_ETH
+               ret = macb_linkspd_cb(dev, _100BASET);
+#else
                ret = macb_linkspd_cb(macb->regs, _100BASET);
+#endif
        } else {
+#ifdef CONFIG_DM_ETH
+               ret = macb_linkspd_cb(dev, _10BASET);
+#else
                ret = macb_linkspd_cb(macb->regs, _10BASET);
+#endif
        }
 
        if (ret)