This enables the ethtool's "-d" and "--register-dump"
options for fec devices.

Signed-off-by: Philippe Reynes <[email protected]>
---
 drivers/net/ethernet/freescale/fec_main.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c 
b/drivers/net/ethernet/freescale/fec_main.c
index 66d47e4..07aee1f 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -2118,6 +2118,28 @@ static void fec_enet_get_drvinfo(struct net_device *ndev,
        strlcpy(info->bus_info, dev_name(&ndev->dev), sizeof(info->bus_info));
 }
 
+static int fec_enet_get_regs_len(struct net_device *ndev)
+{
+       struct fec_enet_private *fep = netdev_priv(ndev);
+       struct resource *r;
+       int s = 0;
+
+       r = platform_get_resource(fep->pdev, IORESOURCE_MEM, 0);
+       if (r) {
+               s = resource_size(r);
+       }
+
+       return s;
+}
+
+static void fec_enet_get_regs(struct net_device *ndev,
+                             struct ethtool_regs *regs, void *regbuf)
+{
+       struct fec_enet_private *fep = netdev_priv(ndev);
+
+       memcpy_fromio(regbuf, fep->hwp, regs->len);
+}
+
 static int fec_enet_get_ts_info(struct net_device *ndev,
                                struct ethtool_ts_info *info)
 {
@@ -2515,6 +2537,8 @@ static const struct ethtool_ops fec_enet_ethtool_ops = {
        .get_settings           = fec_enet_get_settings,
        .set_settings           = fec_enet_set_settings,
        .get_drvinfo            = fec_enet_get_drvinfo,
+       .get_regs_len           = fec_enet_get_regs_len,
+       .get_regs               = fec_enet_get_regs,
        .nway_reset             = fec_enet_nway_reset,
        .get_link               = ethtool_op_get_link,
        .get_coalesce           = fec_enet_get_coalesce,
-- 
1.7.4.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to