From owner-svn-src-all@freebsd.org Fri Aug 5 17:16:36 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6477DBB0FC6; Fri, 5 Aug 2016 17:16:36 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1CA801F7C; Fri, 5 Aug 2016 17:16:36 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u75HGZAq060710; Fri, 5 Aug 2016 17:16:35 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u75HGZAl060709; Fri, 5 Aug 2016 17:16:35 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201608051716.u75HGZAl060709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Fri, 5 Aug 2016 17:16:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303778 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2016 17:16:36 -0000 Author: adrian Date: Fri Aug 5 17:16:35 2016 New Revision: 303778 URL: https://svnweb.freebsd.org/changeset/base/303778 Log: [arge] add some extra MDIO debugging support * add an ANY debug level which will always echo the message if debugging is compiled in; * log MDIO transaction timeouts if debugging is compiled in; * the argemdio device is different to arge, so turning on MDIO debugging flags in arge->sc_debug doesn't help. Add a debug sysctl to argemdio as well so that MDIO transactions can be debugged. Tested: * AR9331 Modified: head/sys/mips/atheros/if_arge.c Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Fri Aug 5 17:14:45 2016 (r303777) +++ head/sys/mips/atheros/if_arge.c Fri Aug 5 17:16:35 2016 (r303778) @@ -108,6 +108,7 @@ typedef enum { ARGE_DBG_ERR = 0x00000010, ARGE_DBG_RESET = 0x00000020, ARGE_DBG_PLL = 0x00000040, + ARGE_DBG_ANY = 0xffffffff, } arge_debug_flags; static const char * arge_miicfg_str[] = { @@ -122,7 +123,7 @@ static const char * arge_miicfg_str[] = #ifdef ARGE_DEBUG #define ARGEDEBUG(_sc, _m, ...) \ do { \ - if ((_m) & (_sc)->arge_debug) \ + if (((_m) & (_sc)->arge_debug) || ((_m) == ARGE_DBG_ANY)) \ device_printf((_sc)->arge_dev, __VA_ARGS__); \ } while (0) #else @@ -1123,7 +1124,7 @@ arge_miibus_readreg(device_t dev, int ph if (arge_mdio_busy(sc) != 0) { mtx_unlock(&miibus_mtx); - ARGEDEBUG(sc, ARGE_DBG_MII, "%s timedout\n", __func__); + ARGEDEBUG(sc, ARGE_DBG_ANY, "%s timedout\n", __func__); /* XXX: return ERRNO istead? */ return (-1); } @@ -1160,7 +1161,7 @@ arge_miibus_writereg(device_t dev, int p if (arge_mdio_busy(sc) != 0) { mtx_unlock(&miibus_mtx); - ARGEDEBUG(sc, ARGE_DBG_MII, "%s timedout\n", __func__); + ARGEDEBUG(sc, ARGE_DBG_ANY, "%s timedout\n", __func__); /* XXX: return ERRNO istead? */ return (-1); } @@ -2690,7 +2691,10 @@ argemdio_attach(device_t dev) { struct arge_softc *sc; int error = 0; - +#ifdef ARGE_DEBUG + struct sysctl_ctx_list *ctx; + struct sysctl_oid *tree; +#endif sc = device_get_softc(dev); sc->arge_dev = dev; sc->arge_mac_unit = device_get_unit(dev); @@ -2703,6 +2707,14 @@ argemdio_attach(device_t dev) goto fail; } +#ifdef ARGE_DEBUG + ctx = device_get_sysctl_ctx(dev); + tree = device_get_sysctl_tree(dev); + SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, + "debug", CTLFLAG_RW, &sc->arge_debug, 0, + "argemdio interface debugging flags"); +#endif + /* Reset MAC - required for AR71xx MDIO to successfully occur */ arge_reset_mac(sc); /* Reset MII bus */