Commit 6016ba34 authored by Oleksij Rempel's avatar Oleksij Rempel Committed by David S. Miller

net: fec: make use of generic NET_SELFTESTS library

With this patch FEC on iMX will able to run generic net selftests
Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3e1e58d6
...@@ -26,6 +26,7 @@ config FEC ...@@ -26,6 +26,7 @@ config FEC
ARCH_MXC || SOC_IMX28 || COMPILE_TEST) ARCH_MXC || SOC_IMX28 || COMPILE_TEST)
default ARCH_MXC || SOC_IMX28 if ARM default ARCH_MXC || SOC_IMX28 if ARM
select CRC32 select CRC32
select NET_SELFTESTS
select PHYLIB select PHYLIB
imply PTP_1588_CLOCK imply PTP_1588_CLOCK
help help
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include <linux/in.h> #include <linux/in.h>
#include <linux/ip.h> #include <linux/ip.h>
#include <net/ip.h> #include <net/ip.h>
#include <net/selftests.h>
#include <net/tso.h> #include <net/tso.h>
#include <linux/tcp.h> #include <linux/tcp.h>
#include <linux/udp.h> #include <linux/udp.h>
...@@ -2482,6 +2483,9 @@ static void fec_enet_get_strings(struct net_device *netdev, ...@@ -2482,6 +2483,9 @@ static void fec_enet_get_strings(struct net_device *netdev,
memcpy(data + i * ETH_GSTRING_LEN, memcpy(data + i * ETH_GSTRING_LEN,
fec_stats[i].name, ETH_GSTRING_LEN); fec_stats[i].name, ETH_GSTRING_LEN);
break; break;
case ETH_SS_TEST:
net_selftest_get_strings(data);
break;
} }
} }
...@@ -2490,6 +2494,8 @@ static int fec_enet_get_sset_count(struct net_device *dev, int sset) ...@@ -2490,6 +2494,8 @@ static int fec_enet_get_sset_count(struct net_device *dev, int sset)
switch (sset) { switch (sset) {
case ETH_SS_STATS: case ETH_SS_STATS:
return ARRAY_SIZE(fec_stats); return ARRAY_SIZE(fec_stats);
case ETH_SS_TEST:
return net_selftest_get_count();
default: default:
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -2741,6 +2747,7 @@ static const struct ethtool_ops fec_enet_ethtool_ops = { ...@@ -2741,6 +2747,7 @@ static const struct ethtool_ops fec_enet_ethtool_ops = {
.set_wol = fec_enet_set_wol, .set_wol = fec_enet_set_wol,
.get_link_ksettings = phy_ethtool_get_link_ksettings, .get_link_ksettings = phy_ethtool_get_link_ksettings,
.set_link_ksettings = phy_ethtool_set_link_ksettings, .set_link_ksettings = phy_ethtool_set_link_ksettings,
.self_test = net_selftest,
}; };
static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd) static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment