From owner-svn-src-all@FreeBSD.ORG Fri Jan 14 22:31:27 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5870D106566B; Fri, 14 Jan 2011 22:31:27 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 46FBC8FC1C; Fri, 14 Jan 2011 22:31:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0EMVRl6004220; Fri, 14 Jan 2011 22:31:27 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0EMVRWu004217; Fri, 14 Jan 2011 22:31:27 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201101142231.p0EMVRWu004217@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 14 Jan 2011 22:31:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r217427 - stable/8/sys/dev/usb/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 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, 14 Jan 2011 22:31:27 -0000 Author: yongari Date: Fri Jan 14 22:31:26 2011 New Revision: 217427 URL: http://svn.freebsd.org/changeset/base/217427 Log: MFC r215968: Introduce new macro AXE_IS_178_FAMILY and AXE_IS_772. Include AX88772A and AX88772B for future extension. While here add TX buffer size for 178 family controllers. Modified: stable/8/sys/dev/usb/net/if_axe.c stable/8/sys/dev/usb/net/if_axereg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/usb/net/if_axe.c ============================================================================== --- stable/8/sys/dev/usb/net/if_axe.c Fri Jan 14 22:29:45 2011 (r217426) +++ stable/8/sys/dev/usb/net/if_axe.c Fri Jan 14 22:31:26 2011 (r217427) @@ -302,7 +302,7 @@ axe_miibus_readreg(device_t dev, int phy axe_cmd(sc, AXE_CMD_MII_OPMODE_HW, 0, 0, NULL); val = le16toh(val); - if ((sc->sc_flags & AXE_FLAG_772) != 0 && reg == MII_BMSR) { + if (AXE_IS_772(sc) && reg == MII_BMSR) { /* * BMSR of AX88772 indicates that it supports extended * capability but the extended status register is @@ -384,7 +384,7 @@ axe_miibus_statchg(device_t dev) val = 0; if ((IFM_OPTIONS(mii->mii_media_active) & IFM_FDX) != 0) val |= AXE_MEDIA_FULL_DUPLEX; - if (sc->sc_flags & (AXE_FLAG_178 | AXE_FLAG_772)) { + if (AXE_IS_178_FAMILY(sc)) { val |= AXE_178_MEDIA_RX_EN | AXE_178_MEDIA_MAGIC; if ((sc->sc_flags & AXE_FLAG_178) != 0) val |= AXE_178_MEDIA_ENCK; @@ -700,15 +700,18 @@ axe_attach_post(struct usb_ether *ue) sc->sc_phyno = 0; } - if (sc->sc_flags & AXE_FLAG_178) + if (sc->sc_flags & AXE_FLAG_178) { axe_ax88178_init(sc); - else if (sc->sc_flags & AXE_FLAG_772) + sc->sc_tx_bufsz = 16 * 1024; + } else if (sc->sc_flags & AXE_FLAG_772) { axe_ax88772_init(sc); + sc->sc_tx_bufsz = 8 * 1024; + } /* * Get station address. */ - if (sc->sc_flags & (AXE_FLAG_178 | AXE_FLAG_772)) + if (AXE_IS_178_FAMILY(sc)) axe_cmd(sc, AXE_178_CMD_READ_NODEID, 0, 0, ue->ue_eaddr); else axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, ue->ue_eaddr); @@ -819,7 +822,7 @@ axe_bulk_read_callback(struct usb_xfer * err = 0; pc = usbd_xfer_get_frame(xfer, 0); - if (sc->sc_flags & (AXE_FLAG_772 | AXE_FLAG_178)) { + if (AXE_IS_178_FAMILY(sc)) { while (pos < actlen) { if ((pos + sizeof(hdr)) > actlen) { /* too little data */ @@ -916,7 +919,7 @@ tr_setup: if (m->m_pkthdr.len > MCLBYTES) { m->m_pkthdr.len = MCLBYTES; } - if (sc->sc_flags & (AXE_FLAG_772 | AXE_FLAG_178)) { + if (AXE_IS_178_FAMILY(sc)) { hdr.len = htole16(m->m_pkthdr.len); hdr.ilen = ~hdr.len; @@ -955,7 +958,7 @@ tr_setup: m_freem(m); - if (sc->sc_flags & (AXE_FLAG_772 | AXE_FLAG_178)) { + if (AXE_IS_178_FAMILY(sc)) { if (pos > (AXE_BULK_BUF_SIZE - MCLBYTES - sizeof(hdr))) { /* send out frame(s) */ break; @@ -1034,16 +1037,16 @@ axe_init(struct usb_ether *ue) axe_reset(sc); /* Set MAC address. */ - if (sc->sc_flags & (AXE_FLAG_178 | AXE_FLAG_772)) + if (AXE_IS_178_FAMILY(sc)) axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp)); else axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp)); /* Set transmitter IPG values */ - if (sc->sc_flags & (AXE_FLAG_178 | AXE_FLAG_772)) { + if (AXE_IS_178_FAMILY(sc)) axe_cmd(sc, AXE_178_CMD_WRITE_IPG012, sc->sc_ipgs[2], (sc->sc_ipgs[1] << 8) | (sc->sc_ipgs[0]), NULL); - } else { + else { axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->sc_ipgs[0], NULL); axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->sc_ipgs[1], NULL); axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->sc_ipgs[2], NULL); @@ -1051,7 +1054,7 @@ axe_init(struct usb_ether *ue) /* Enable receiver, set RX mode */ rxmode = (AXE_RXCMD_MULTICAST | AXE_RXCMD_ENABLE); - if (sc->sc_flags & (AXE_FLAG_178 | AXE_FLAG_772)) { + if (AXE_IS_178_FAMILY(sc)) { #if 0 rxmode |= AXE_178_RXCMD_MFB_2048; /* chip default */ #else Modified: stable/8/sys/dev/usb/net/if_axereg.h ============================================================================== --- stable/8/sys/dev/usb/net/if_axereg.h Fri Jan 14 22:29:45 2011 (r217426) +++ stable/8/sys/dev/usb/net/if_axereg.h Fri Jan 14 22:31:26 2011 (r217427) @@ -203,12 +203,22 @@ struct axe_softc { int sc_flags; #define AXE_FLAG_LINK 0x0001 #define AXE_FLAG_772 0x1000 /* AX88772 */ -#define AXE_FLAG_178 0x2000 /* AX88178 */ +#define AXE_FLAG_772A 0x2000 /* AX88772A */ +#define AXE_FLAG_772B 0x4000 /* AX88772B */ +#define AXE_FLAG_178 0x8000 /* AX88178 */ uint8_t sc_ipgs[3]; uint8_t sc_phyaddrs[2]; + int sc_tx_bufsz; }; +#define AXE_IS_178_FAMILY(sc) \ + ((sc)->sc_flags & (AXE_FLAG_772 | AXE_FLAG_772A | AXE_FLAG_772B | \ + AXE_FLAG_178)) + +#define AXE_IS_772(sc) \ + ((sc)->sc_flags & (AXE_FLAG_772 | AXE_FLAG_772A | AXE_FLAG_772B)) + #define AXE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) #define AXE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) #define AXE_LOCK_ASSERT(_sc, t) mtx_assert(&(_sc)->sc_mtx, t)