diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0171-staging-fsl-dpaa2-mac-Check-DPMAC-version.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0171-staging-fsl-dpaa2-mac-Check-DPMAC-version.patch | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0171-staging-fsl-dpaa2-mac-Check-DPMAC-version.patch b/target/linux/layerscape/patches-5.4/701-net-0171-staging-fsl-dpaa2-mac-Check-DPMAC-version.patch deleted file mode 100644 index ca3506b0db..0000000000 --- a/target/linux/layerscape/patches-5.4/701-net-0171-staging-fsl-dpaa2-mac-Check-DPMAC-version.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 2dc96021dc08d24eed822f66cb8fb5a454fee236 Mon Sep 17 00:00:00 2001 -From: Ioana Radulescu <ruxandra.radulescu@nxp.com> -Date: Fri, 19 Oct 2018 16:20:07 +0300 -Subject: [PATCH] staging: fsl-dpaa2/mac: Check DPMAC version - -Read the current API version exposed by the DPMAC object. -Add a check at probe time to make sure it is compatible with -the set of MC commands we intend to use on it. -Also, print the version number through ethtool driver info. - -Signed-off-by: Catalin Neacsu <valentin-catalin.neacsu@nxp.com> -Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com> ---- - drivers/staging/fsl-dpaa2/mac/mac.c | 39 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - ---- a/drivers/staging/fsl-dpaa2/mac/mac.c -+++ b/drivers/staging/fsl-dpaa2/mac/mac.c -@@ -56,6 +56,8 @@ struct dpaa2_mac_priv { - struct fsl_mc_device *mc_dev; - struct dpmac_attr attr; - struct dpmac_link_state old_state; -+ u16 dpmac_ver_major; -+ u16 dpmac_ver_minor; - }; - - /* TODO: fix the 10G modes, mapping can't be right: -@@ -81,6 +83,14 @@ static phy_interface_t dpaa2_mac_iface_m - PHY_INTERFACE_MODE_XGMII, /* DPMAC_ETH_IF_USXGMII */ - }; - -+static int cmp_dpmac_ver(struct dpaa2_mac_priv *priv, -+ u16 ver_major, u16 ver_minor) -+{ -+ if (priv->dpmac_ver_major == ver_major) -+ return priv->dpmac_ver_minor - ver_minor; -+ return priv->dpmac_ver_major - ver_major; -+} -+ - static void dpaa2_mac_link_changed(struct net_device *netdev) - { - struct phy_device *phydev; -@@ -154,6 +164,18 @@ static netdev_tx_t dpaa2_mac_drop_frame( - return NETDEV_TX_OK; - } - -+static void dpaa2_mac_get_drvinfo(struct net_device *net_dev, -+ struct ethtool_drvinfo *drvinfo) -+{ -+ struct dpaa2_mac_priv *priv = netdev_priv(net_dev); -+ -+ strlcpy(drvinfo->driver, KBUILD_MODNAME, sizeof(drvinfo->driver)); -+ snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), -+ "%u.%u", priv->dpmac_ver_major, priv->dpmac_ver_minor); -+ strlcpy(drvinfo->bus_info, dev_name(net_dev->dev.parent->parent), -+ sizeof(drvinfo->bus_info)); -+} -+ - static int dpaa2_mac_get_link_ksettings(struct net_device *netdev, - struct ethtool_link_ksettings *ks) - { -@@ -323,6 +345,7 @@ static const struct net_device_ops dpaa2 - }; - - static const struct ethtool_ops dpaa2_mac_ethtool_ops = { -+ .get_drvinfo = &dpaa2_mac_get_drvinfo, - .get_link_ksettings = &dpaa2_mac_get_link_ksettings, - .set_link_ksettings = &dpaa2_mac_set_link_ksettings, - .get_strings = &dpaa2_mac_get_strings, -@@ -510,6 +533,21 @@ static int dpaa2_mac_probe(struct fsl_mc - goto err_free_mcp; - } - -+ err = dpmac_get_api_version(mc_dev->mc_io, 0, &priv->dpmac_ver_major, -+ &priv->dpmac_ver_minor); -+ if (err) { -+ dev_err(dev, "dpmac_get_api_version failed\n"); -+ goto err_version; -+ } -+ -+ if (cmp_dpmac_ver(priv, DPMAC_VER_MAJOR, DPMAC_VER_MINOR) < 0) { -+ dev_err(dev, "DPMAC version %u.%u lower than supported %u.%u\n", -+ priv->dpmac_ver_major, priv->dpmac_ver_minor, -+ DPMAC_VER_MAJOR, DPMAC_VER_MINOR); -+ err = -ENOTSUPP; -+ goto err_version; -+ } -+ - err = dpmac_get_attributes(mc_dev->mc_io, 0, - mc_dev->mc_handle, &priv->attr); - if (err) { -@@ -622,6 +660,7 @@ err_no_phy: - err_free_irq: - #endif - teardown_irqs(mc_dev); -+err_version: - err_close: - dpmac_close(mc_dev->mc_io, 0, mc_dev->mc_handle); - err_free_mcp: |