aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/allwinner/sun4i-emac.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
index af27f9dbedf2..74012196bce9 100644
--- a/drivers/net/ethernet/allwinner/sun4i-emac.c
+++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
@@ -37,6 +37,11 @@
37 37
38#define EMAC_MAX_FRAME_LEN 0x0600 38#define EMAC_MAX_FRAME_LEN 0x0600
39 39
40#define EMAC_DEFAULT_MSG_ENABLE 0x0000
41static int debug = -1; /* defaults above */;
42module_param(debug, int, 0);
43MODULE_PARM_DESC(debug, "debug message flags");
44
40/* Transmit timeout, default 5 seconds. */ 45/* Transmit timeout, default 5 seconds. */
41static int watchdog = 5000; 46static int watchdog = 5000;
42module_param(watchdog, int, 0400); 47module_param(watchdog, int, 0400);
@@ -225,11 +230,27 @@ static void emac_get_drvinfo(struct net_device *dev,
225 strlcpy(info->bus_info, dev_name(&dev->dev), sizeof(info->bus_info)); 230 strlcpy(info->bus_info, dev_name(&dev->dev), sizeof(info->bus_info));
226} 231}
227 232
233static u32 emac_get_msglevel(struct net_device *dev)
234{
235 struct emac_board_info *db = netdev_priv(dev);
236
237 return db->msg_enable;
238}
239
240static void emac_set_msglevel(struct net_device *dev, u32 value)
241{
242 struct emac_board_info *db = netdev_priv(dev);
243
244 db->msg_enable = value;
245}
246
228static const struct ethtool_ops emac_ethtool_ops = { 247static const struct ethtool_ops emac_ethtool_ops = {
229 .get_drvinfo = emac_get_drvinfo, 248 .get_drvinfo = emac_get_drvinfo,
230 .get_link = ethtool_op_get_link, 249 .get_link = ethtool_op_get_link,
231 .get_link_ksettings = phy_ethtool_get_link_ksettings, 250 .get_link_ksettings = phy_ethtool_get_link_ksettings,
232 .set_link_ksettings = phy_ethtool_set_link_ksettings, 251 .set_link_ksettings = phy_ethtool_set_link_ksettings,
252 .get_msglevel = emac_get_msglevel,
253 .set_msglevel = emac_set_msglevel,
233}; 254};
234 255
235static unsigned int emac_setup(struct net_device *ndev) 256static unsigned int emac_setup(struct net_device *ndev)
@@ -804,6 +825,7 @@ static int emac_probe(struct platform_device *pdev)
804 db->dev = &pdev->dev; 825 db->dev = &pdev->dev;
805 db->ndev = ndev; 826 db->ndev = ndev;
806 db->pdev = pdev; 827 db->pdev = pdev;
828 db->msg_enable = netif_msg_init(debug, EMAC_DEFAULT_MSG_ENABLE);
807 829
808 spin_lock_init(&db->lock); 830 spin_lock_init(&db->lock);
809 831