From owner-svn-src-projects@FreeBSD.ORG Mon May 5 10:49:11 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 34AED64F; Mon, 5 May 2014 10:49:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 159211AD3; Mon, 5 May 2014 10:49:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s45AnA5o027677; Mon, 5 May 2014 10:49:10 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s45An9Rf027671; Mon, 5 May 2014 10:49:09 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201405051049.s45An9Rf027671@svn.freebsd.org> From: Mark Murray Date: Mon, 5 May 2014 10:49:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r265354 - in projects/random_number_generator/sys: contrib/dev/ath/ath_hal/ar9300 dev/ath dev/ath/ath_hal geom/label X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 May 2014 10:49:11 -0000 Author: markm Date: Mon May 5 10:49:09 2014 New Revision: 265354 URL: http://svnweb.freebsd.org/changeset/base/265354 Log: MFC - tracking commit. Merging r265347 through r265353. Modified: projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c projects/random_number_generator/sys/dev/ath/ath_hal/ah_devid.h projects/random_number_generator/sys/dev/ath/if_ath.c projects/random_number_generator/sys/dev/ath/if_ath_rx_edma.c projects/random_number_generator/sys/dev/ath/if_ath_tx_edma.c projects/random_number_generator/sys/geom/label/g_label_ufs.c Directory Properties: projects/random_number_generator/ (props changed) projects/random_number_generator/sys/ (props changed) Modified: projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c ============================================================================== --- projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c Mon May 5 10:49:09 2014 (r265354) @@ -4113,6 +4113,8 @@ ar9300_probe(uint16_t vendorid, uint16_t return "Qualcomm Atheros QCA955x"; case AR9300_DEVID_QCA9565: /* Aphrodite */ return "Qualcomm Atheros AR9565"; + case AR9300_DEVID_AR1111_PCIE: + return "Atheros AR1111"; default: return AH_NULL; } Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ah_devid.h ============================================================================== --- projects/random_number_generator/sys/dev/ath/ath_hal/ah_devid.h Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/dev/ath/ath_hal/ah_devid.h Mon May 5 10:49:09 2014 (r265354) @@ -92,6 +92,7 @@ #define AR9300_DEVID_AR946X_PCIE 0x0034 #define AR9300_DEVID_AR9330 0x0035 #define AR9300_DEVID_QCA9565 0x0036 +#define AR9300_DEVID_AR1111_PCIE 0x0037 #define AR9300_DEVID_QCA955X 0x0039 #define AR_SUBVENDOR_ID_NOG 0x0e11 /* No 11G subvendor ID */ Modified: projects/random_number_generator/sys/dev/ath/if_ath.c ============================================================================== --- projects/random_number_generator/sys/dev/ath/if_ath.c Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/dev/ath/if_ath.c Mon May 5 10:49:09 2014 (r265354) @@ -165,6 +165,7 @@ static void ath_bmiss_vap(struct ieee802 static void ath_bmiss_proc(void *, int); static void ath_key_update_begin(struct ieee80211vap *); static void ath_key_update_end(struct ieee80211vap *); +static void ath_update_mcast_hw(struct ath_softc *); static void ath_update_mcast(struct ifnet *); static void ath_update_promisc(struct ifnet *); static void ath_updateslot(struct ifnet *); @@ -3379,10 +3380,15 @@ ath_update_promisc(struct ifnet *ifp) DPRINTF(sc, ATH_DEBUG_MODE, "%s: RX filter 0x%x\n", __func__, rfilt); } +/* + * Driver-internal mcast update call. + * + * Assumes the hardware is already awake. + */ static void -ath_update_mcast(struct ifnet *ifp) +ath_update_mcast_hw(struct ath_softc *sc) { - struct ath_softc *sc = ifp->if_softc; + struct ifnet *ifp = sc->sc_ifp; u_int32_t mfilt[2]; /* calculate and install multicast filter */ @@ -3410,13 +3416,31 @@ ath_update_mcast(struct ifnet *ifp) if_maddr_runlock(ifp); } else mfilt[0] = mfilt[1] = ~0; + + ath_hal_setmcastfilter(sc->sc_ah, mfilt[0], mfilt[1]); + + DPRINTF(sc, ATH_DEBUG_MODE, "%s: MC filter %08x:%08x\n", + __func__, mfilt[0], mfilt[1]); +} + +/* + * Called from the net80211 layer - force the hardware + * awake before operating. + */ +static void +ath_update_mcast(struct ifnet *ifp) +{ + struct ath_softc *sc = ifp->if_softc; + ATH_LOCK(sc); ath_power_set_power_state(sc, HAL_PM_AWAKE); - ath_hal_setmcastfilter(sc->sc_ah, mfilt[0], mfilt[1]); + ATH_UNLOCK(sc); + + ath_update_mcast_hw(sc); + + ATH_LOCK(sc); ath_power_restore_power_state(sc); ATH_UNLOCK(sc); - DPRINTF(sc, ATH_DEBUG_MODE, "%s: MC filter %08x:%08x\n", - __func__, mfilt[0], mfilt[1]); } void @@ -3444,7 +3468,7 @@ ath_mode_init(struct ath_softc *sc) ath_hal_setmac(ah, IF_LLADDR(ifp)); /* calculate and install multicast filter */ - ath_update_mcast(ifp); + ath_update_mcast_hw(sc); } /* Modified: projects/random_number_generator/sys/dev/ath/if_ath_rx_edma.c ============================================================================== --- projects/random_number_generator/sys/dev/ath/if_ath_rx_edma.c Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/dev/ath/if_ath_rx_edma.c Mon May 5 10:49:09 2014 (r265354) @@ -888,10 +888,13 @@ ath_edma_setup_rxfifo(struct ath_softc * qtype); return (-EINVAL); } - device_printf(sc->sc_dev, "%s: type=%d, FIFO depth = %d entries\n", - __func__, - qtype, - re->m_fifolen); + + if (bootverbose) + device_printf(sc->sc_dev, + "%s: type=%d, FIFO depth = %d entries\n", + __func__, + qtype, + re->m_fifolen); /* Allocate ath_buf FIFO array, pre-zero'ed */ re->m_fifo = malloc(sizeof(struct ath_buf *) * re->m_fifolen, @@ -982,10 +985,12 @@ ath_recv_setup_edma(struct ath_softc *sc (void) ath_hal_setrxbufsize(sc->sc_ah, sc->sc_edma_bufsize - sc->sc_rx_statuslen); - device_printf(sc->sc_dev, "RX status length: %d\n", - sc->sc_rx_statuslen); - device_printf(sc->sc_dev, "RX buffer size: %d\n", - sc->sc_edma_bufsize); + if (bootverbose) { + device_printf(sc->sc_dev, "RX status length: %d\n", + sc->sc_rx_statuslen); + device_printf(sc->sc_dev, "RX buffer size: %d\n", + sc->sc_edma_bufsize); + } sc->sc_rx.recv_stop = ath_edma_stoprecv; sc->sc_rx.recv_start = ath_edma_startrecv; Modified: projects/random_number_generator/sys/dev/ath/if_ath_tx_edma.c ============================================================================== --- projects/random_number_generator/sys/dev/ath/if_ath_tx_edma.c Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/dev/ath/if_ath_tx_edma.c Mon May 5 10:49:09 2014 (r265354) @@ -866,12 +866,14 @@ ath_xmit_setup_edma(struct ath_softc *sc (void) ath_hal_gettxstatuslen(sc->sc_ah, &sc->sc_tx_statuslen); (void) ath_hal_getntxmaps(sc->sc_ah, &sc->sc_tx_nmaps); - device_printf(sc->sc_dev, "TX descriptor length: %d\n", - sc->sc_tx_desclen); - device_printf(sc->sc_dev, "TX status length: %d\n", - sc->sc_tx_statuslen); - device_printf(sc->sc_dev, "TX buffers per descriptor: %d\n", - sc->sc_tx_nmaps); + if (bootverbose) { + device_printf(sc->sc_dev, "TX descriptor length: %d\n", + sc->sc_tx_desclen); + device_printf(sc->sc_dev, "TX status length: %d\n", + sc->sc_tx_statuslen); + device_printf(sc->sc_dev, "TX buffers per descriptor: %d\n", + sc->sc_tx_nmaps); + } sc->sc_tx.xmit_setup = ath_edma_dma_txsetup; sc->sc_tx.xmit_teardown = ath_edma_dma_txteardown; Modified: projects/random_number_generator/sys/geom/label/g_label_ufs.c ============================================================================== --- projects/random_number_generator/sys/geom/label/g_label_ufs.c Mon May 5 10:36:18 2014 (r265353) +++ projects/random_number_generator/sys/geom/label/g_label_ufs.c Mon May 5 10:49:09 2014 (r265354) @@ -81,13 +81,15 @@ g_label_ufs_taste_common(struct g_consum fs = (struct fs *)g_read_data(cp, superblock, SBLOCKSIZE, NULL); if (fs == NULL) continue; - /* Check for magic. We also need to check if file system size is equal + /* + * Check for magic. We also need to check if file system size is equal * to providers size, because sysinstall(8) used to bogusly put first * partition at offset 0 instead of 16, and glabel/ufs would find file * system on slice instead of partition. */ if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_fsize > 0 && - pp->mediasize / fs->fs_fsize == fs->fs_old_size) { + ((pp->mediasize / fs->fs_fsize == fs->fs_old_size) || + (pp->mediasize / fs->fs_fsize == fs->fs_providersize))) { /* Valid UFS1. */ } else if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_fsize > 0 && ((pp->mediasize / fs->fs_fsize == fs->fs_size) ||