net: dpaa2-mac: use lynx_pcs_create_fwnode()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 7 Jun 2023 11:58:34 +0000 (12:58 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Jun 2023 02:19:50 +0000 (19:19 -0700)
Use lynx_pcs_create_fwnode() to create a lynx PCS from a fwnode handle.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c

index c0f7dd3..38e6208 100644 (file)
@@ -247,8 +247,8 @@ static int dpaa2_pcs_create(struct dpaa2_mac *mac,
                            struct fwnode_handle *dpmac_node,
                            int id)
 {
-       struct mdio_device *mdiodev;
        struct fwnode_handle *node;
+       struct phylink_pcs *pcs;
 
        node = fwnode_find_reference(dpmac_node, "pcs-handle", 0);
        if (IS_ERR(node)) {
@@ -263,20 +263,22 @@ static int dpaa2_pcs_create(struct dpaa2_mac *mac,
                return -ENODEV;
        }
 
-       mdiodev = fwnode_mdio_find_device(node);
+       pcs = lynx_pcs_create_fwnode(node);
        fwnode_handle_put(node);
-       if (!mdiodev) {
+
+       if (pcs == ERR_PTR(-EPROBE_DEFER)) {
                netdev_dbg(mac->net_dev, "missing PCS device\n");
                return -EPROBE_DEFER;
        }
 
-       mac->pcs = lynx_pcs_create(mdiodev);
-       mdio_device_put(mdiodev);
-       if (!mac->pcs) {
-               netdev_err(mac->net_dev, "lynx_pcs_create() failed\n");
-               return -ENOMEM;
+       if (IS_ERR(pcs)) {
+               netdev_err(mac->net_dev,
+                          "lynx_pcs_create_fwnode() failed: %pe\n", pcs);
+               return PTR_ERR(pcs);
        }
 
+       mac->pcs = pcs;
+
        return 0;
 }