From patchwork Mon Aug 22 16:42:16 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Weiser X-Patchwork-Id: 661544 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3sHzys0dySz9stc for ; Tue, 23 Aug 2016 02:48:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932992AbcHVQsB (ORCPT ); Mon, 22 Aug 2016 12:48:01 -0400 Received: from heinz.dinsnail.net ([85.214.155.104]:35546 "EHLO heinz.dinsnail.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932297AbcHVQsB (ORCPT ); Mon, 22 Aug 2016 12:48:01 -0400 Received: from heinz.dinsnail.net (localhost [127.0.0.1]) by heinz.dinsnail.net (8.14.9/8.14.9) with ESMTP id u7MGj4NH018370; Mon, 22 Aug 2016 18:45:04 +0200 Received: from eldalonde.UUCP (uucp@localhost) by heinz.dinsnail.net (8.14.9/8.14.9/Submit) with bsmtp id u7MGj4LV018369; Mon, 22 Aug 2016 18:45:04 +0200 Received: from rivendell.weiser.dinsnail.net (rivendell.weiser.dinsnail.net [192.168.1.8]) by eldalonde.weiser.dinsnail.net (8.14.9/8.14.8) with ESMTP id u7MGggNM025125; Mon, 22 Aug 2016 18:42:42 +0200 Received: (from michael@localhost) by rivendell.weiser.dinsnail.net (8.14.9/8.14.3/Submit) id u7MGggWo014335; Mon, 22 Aug 2016 18:42:42 +0200 From: Michael Weiser To: linux-arm-kernel@lists.infradead.org Cc: Michael Weiser , Maxime Ripard , netdev@vger.kernel.org Subject: [PATCH 2/5] net: ethernet: sun4i-emac: Allow to enable netif messages Date: Mon, 22 Aug 2016 18:42:16 +0200 Message-Id: <20160822164219.14272-3-michael.weiser@gmx.de> X-Mailer: git-send-email 2.9.2 In-Reply-To: <20160822164219.14272-1-michael.weiser@gmx.de> References: <20160822164219.14272-1-michael.weiser@gmx.de> X-dinsnail.net-MailScanner-ID: u7MGj4NH018370 X-MailScanner: Found to be clean X-MailScanner-From: michael@rivendell.weiser.dinsnail.net Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sun4i-emac has the ability to print a number of diagnostic messages using dev_dbg depending on message level settings implemented using netif_msg_* macros. But there's no way to actually enable them. Add the ability to switch diagnostic messages on using either a module parameter debug or ethtool -s msglvl . Signed-off-by: Michael Weiser Cc: Maxime Ripard Cc: netdev@vger.kernel.org --- drivers/net/ethernet/allwinner/sun4i-emac.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c index 6ffdff6..cd08885 100644 --- a/drivers/net/ethernet/allwinner/sun4i-emac.c +++ b/drivers/net/ethernet/allwinner/sun4i-emac.c @@ -37,6 +37,11 @@ #define EMAC_MAX_FRAME_LEN 0x0600 +#define EMAC_DEFAULT_MSG_ENABLE 0x0000 +static int debug = -1; /* defaults above */; +module_param(debug, int, 0); +MODULE_PARM_DESC(debug, "debug message flags"); + /* Transmit timeout, default 5 seconds. */ static int watchdog = 5000; module_param(watchdog, int, 0400); @@ -225,11 +230,27 @@ static void emac_get_drvinfo(struct net_device *dev, strlcpy(info->bus_info, dev_name(&dev->dev), sizeof(info->bus_info)); } +static u32 emac_get_msglevel(struct net_device *dev) +{ + struct emac_board_info *db = netdev_priv(dev); + + return db->msg_enable; +} + +static void emac_set_msglevel(struct net_device *dev, u32 value) +{ + struct emac_board_info *db = netdev_priv(dev); + + db->msg_enable = value; +} + static const struct ethtool_ops emac_ethtool_ops = { .get_drvinfo = emac_get_drvinfo, .get_link = ethtool_op_get_link, .get_link_ksettings = phy_ethtool_get_link_ksettings, .set_link_ksettings = phy_ethtool_set_link_ksettings, + .get_msglevel = emac_get_msglevel, + .set_msglevel = emac_set_msglevel, }; static unsigned int emac_setup(struct net_device *ndev) @@ -805,6 +826,7 @@ static int emac_probe(struct platform_device *pdev) db->dev = &pdev->dev; db->ndev = ndev; db->pdev = pdev; + db->msg_enable = netif_msg_init(debug, EMAC_DEFAULT_MSG_ENABLE); spin_lock_init(&db->lock);