X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fwigyori.git;a=blobdiff_plain;f=target%2Flinux%2Flayerscape%2Fpatches-5.4%2F701-net-0169-staging-fsl-dpaa2-mac-read-phy-mode-from-device-tree.patch;fp=target%2Flinux%2Flayerscape%2Fpatches-5.4%2F701-net-0169-staging-fsl-dpaa2-mac-read-phy-mode-from-device-tree.patch;h=1833319da6ae6824da4367f08781c8771a437199;hp=0000000000000000000000000000000000000000;hb=cddd4591404fb4c53dc0b3c0b15b942cdbed4356;hpb=d1d2c0b5579ea4f69a42246c9318539d61ba1999 diff --git a/target/linux/layerscape/patches-5.4/701-net-0169-staging-fsl-dpaa2-mac-read-phy-mode-from-device-tree.patch b/target/linux/layerscape/patches-5.4/701-net-0169-staging-fsl-dpaa2-mac-read-phy-mode-from-device-tree.patch new file mode 100644 index 0000000000..1833319da6 --- /dev/null +++ b/target/linux/layerscape/patches-5.4/701-net-0169-staging-fsl-dpaa2-mac-read-phy-mode-from-device-tree.patch @@ -0,0 +1,49 @@ +From 781d22f6cf6aded86e80be995b5c875c61512567 Mon Sep 17 00:00:00 2001 +From: Ioana Radulescu +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 +Signed-off-by: Ioana Radulescu +--- + 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);