Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 May 2014 10:49:09 +0000 (UTC)
From:      Mark Murray <markm@FreeBSD.org>
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
Message-ID:  <201405051049.s45An9Rf027671@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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) ||



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405051049.s45An9Rf027671>