From owner-svn-src-head@FreeBSD.ORG Thu Aug 19 16:29:09 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C51810656AC; Thu, 19 Aug 2010 16:29:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E4CB78FC1C; Thu, 19 Aug 2010 16:29:08 +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 o7JGT89e009580; Thu, 19 Aug 2010 16:29:08 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7JGT86G009577; Thu, 19 Aug 2010 16:29:08 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201008191629.o7JGT86G009577@svn.freebsd.org> From: Adrian Chadd Date: Thu, 19 Aug 2010 16:29:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r211511 - head/sys/mips/atheros X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Aug 2010 16:29:09 -0000 Author: adrian Date: Thu Aug 19 16:29:08 2010 New Revision: 211511 URL: http://svn.freebsd.org/changeset/base/211511 Log: Migrate if_arge to use the PLL cpuops. This has been lightly tested on the AR7161 and AR9132. Modified: head/sys/mips/atheros/if_arge.c head/sys/mips/atheros/if_argevar.h Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Thu Aug 19 16:25:15 2010 (r211510) +++ head/sys/mips/atheros/if_arge.c Thu Aug 19 16:29:08 2010 (r211511) @@ -233,13 +233,6 @@ arge_attach(device_t dev) KASSERT(((sc->arge_mac_unit == 0) || (sc->arge_mac_unit == 1)), ("if_arge: Only MAC0 and MAC1 supported")); - if (sc->arge_mac_unit == 0) { - sc->arge_pll_reg = AR71XX_PLL_ETH_INT0_CLK; - sc->arge_pll_reg_shift = 17; - } else { - sc->arge_pll_reg = AR71XX_PLL_ETH_INT1_CLK; - sc->arge_pll_reg_shift = 19; - } /* * Get which PHY of 5 available we should use for this unit @@ -668,7 +661,8 @@ arge_link_task(void *arg, int pending) static void arge_set_pll(struct arge_softc *sc, int media, int duplex) { - uint32_t cfg, ifcontrol, rx_filtmask, pll, sec_cfg; + uint32_t cfg, ifcontrol, rx_filtmask; + int if_speed; cfg = ARGE_READ(sc, AR71XX_MAC_CFG2); cfg &= ~(MAC_CFG2_IFACE_MODE_1000 @@ -687,21 +681,21 @@ arge_set_pll(struct arge_softc *sc, int switch(media) { case IFM_10_T: cfg |= MAC_CFG2_IFACE_MODE_10_100; - pll = PLL_ETH_INT_CLK_10; + if_speed = 10; break; case IFM_100_TX: cfg |= MAC_CFG2_IFACE_MODE_10_100; ifcontrol |= MAC_IFCONTROL_SPEED; - pll = PLL_ETH_INT_CLK_100; + if_speed = 100; break; case IFM_1000_T: case IFM_1000_SX: cfg |= MAC_CFG2_IFACE_MODE_1000; rx_filtmask |= FIFO_RX_MASK_BYTE_MODE; - pll = PLL_ETH_INT_CLK_1000; + if_speed = 1000; break; default: - pll = PLL_ETH_INT_CLK_100; + if_speed = 100; device_printf(sc->arge_dev, "Unknown media %d\n", media); } @@ -715,22 +709,10 @@ arge_set_pll(struct arge_softc *sc, int rx_filtmask); /* set PLL registers */ - sec_cfg = ATH_READ_REG(AR71XX_PLL_SEC_CONFIG); - sec_cfg &= ~(3 << sc->arge_pll_reg_shift); - sec_cfg |= (2 << sc->arge_pll_reg_shift); - - ATH_WRITE_REG(AR71XX_PLL_SEC_CONFIG, sec_cfg); - DELAY(100); - - ATH_WRITE_REG(sc->arge_pll_reg, pll); - - sec_cfg |= (3 << sc->arge_pll_reg_shift); - ATH_WRITE_REG(AR71XX_PLL_SEC_CONFIG, sec_cfg); - DELAY(100); - - sec_cfg &= ~(3 << sc->arge_pll_reg_shift); - ATH_WRITE_REG(AR71XX_PLL_SEC_CONFIG, sec_cfg); - DELAY(100); + if (sc->arge_mac_unit == 0) + ar71xx_device_set_pll_ge0(if_speed); + else + ar71xx_device_set_pll_ge1(if_speed); } Modified: head/sys/mips/atheros/if_argevar.h ============================================================================== --- head/sys/mips/atheros/if_argevar.h Thu Aug 19 16:25:15 2010 (r211510) +++ head/sys/mips/atheros/if_argevar.h Thu Aug 19 16:29:08 2010 (r211511) @@ -150,8 +150,6 @@ struct arge_softc { uint32_t arge_intr_status; int arge_mac_unit; int arge_phymask; - uint32_t arge_pll_reg; - uint32_t arge_pll_reg_shift; int arge_if_flags; uint32_t arge_debug; struct {