You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
From 781d22f6cf6aded86e80be995b5c875c61512567 Mon Sep 17 00:00:00 2001
|
|
From: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
Date: Thu, 18 Oct 2018 20:12:38 +0300
|
|
Subject: [PATCH] staging: fsl-dpaa2/mac: read phy mode from device tree
|
|
|
|
If the a dpmac node defines its phy mode in the device tree using
|
|
the 'phy-mode' or the 'phy-connection-type' attributes this will take
|
|
precedence over the interface mode reported by the MC in the
|
|
dpmac attributes structure.
|
|
|
|
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
|
---
|
|
drivers/staging/fsl-dpaa2/mac/mac.c | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/staging/fsl-dpaa2/mac/mac.c
|
|
+++ b/drivers/staging/fsl-dpaa2/mac/mac.c
|
|
@@ -466,7 +466,7 @@ static int dpaa2_mac_probe(struct fsl_mc
|
|
struct dpaa2_mac_priv *priv = NULL;
|
|
struct device_node *phy_node, *dpmac_node;
|
|
struct net_device *netdev;
|
|
- phy_interface_t if_mode;
|
|
+ int if_mode;
|
|
int err = 0;
|
|
|
|
dev = &mc_dev->dev;
|
|
@@ -555,6 +555,13 @@ static int dpaa2_mac_probe(struct fsl_mc
|
|
goto probe_fixed_link;
|
|
}
|
|
|
|
+ if_mode = of_get_phy_mode(dpmac_node);
|
|
+ if (if_mode >= 0) {
|
|
+ dev_dbg(dev, "\tusing if mode %s for eth_if %d\n",
|
|
+ phy_modes(if_mode), priv->attr.eth_if);
|
|
+ goto phy_connect;
|
|
+ }
|
|
+
|
|
if (priv->attr.eth_if < ARRAY_SIZE(dpaa2_mac_iface_mode)) {
|
|
if_mode = dpaa2_mac_iface_mode[priv->attr.eth_if];
|
|
dev_dbg(dev, "\tusing if mode %s for eth_if %d\n",
|
|
@@ -565,6 +572,7 @@ static int dpaa2_mac_probe(struct fsl_mc
|
|
goto probe_fixed_link;
|
|
}
|
|
|
|
+phy_connect:
|
|
/* try to connect to the PHY */
|
|
netdev->phydev = of_phy_connect(netdev, phy_node,
|
|
&dpaa2_mac_link_changed, 0, if_mode);
|