Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Oct 2013 16:45:02 +0000 (UTC)
From:      Navdeep Parhar <np@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r256794 - stable/10/sys/dev/cxgbe
Message-ID:  <201310201645.r9KGj2ZT031509@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: np
Date: Sun Oct 20 16:45:01 2013
New Revision: 256794
URL: http://svnweb.freebsd.org/changeset/base/256794

Log:
  MFC r256477:
  
  cxgbe(4): Store the log2 of the # of doorbells per BAR2 page for both
  ingress and egress queues, and for both T4 and T5.  These values are
  used by the T4/T5 iWARP driver.
  
  Approved by:	re (glebius)

Modified:
  stable/10/sys/dev/cxgbe/adapter.h
  stable/10/sys/dev/cxgbe/t4_sge.c
Directory Properties:
  stable/10/sys/   (props changed)

Modified: stable/10/sys/dev/cxgbe/adapter.h
==============================================================================
--- stable/10/sys/dev/cxgbe/adapter.h	Sun Oct 20 16:37:03 2013	(r256793)
+++ stable/10/sys/dev/cxgbe/adapter.h	Sun Oct 20 16:45:01 2013	(r256794)
@@ -510,7 +510,8 @@ struct sge {
 	int timer_val[SGE_NTIMERS];
 	int counter_val[SGE_NCOUNTERS];
 	int fl_starve_threshold;
-	int s_qpp;
+	int eq_s_qpp;
+	int iq_s_qpp;
 
 	int nrxq;	/* total # of Ethernet rx queues */
 	int ntxq;	/* total # of Ethernet tx tx queues */

Modified: stable/10/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- stable/10/sys/dev/cxgbe/t4_sge.c	Sun Oct 20 16:37:03 2013	(r256793)
+++ stable/10/sys/dev/cxgbe/t4_sge.c	Sun Oct 20 16:45:01 2013	(r256794)
@@ -569,12 +569,17 @@ t4_read_chip_settings(struct adapter *sc
 	r = t4_read_reg(sc, A_SGE_CONM_CTRL);
 	s->fl_starve_threshold = G_EGRTHRESHOLD(r) * 2 + 1;
 
-	if (is_t5(sc)) {
-		r = t4_read_reg(sc, A_SGE_EGRESS_QUEUES_PER_PAGE_PF);
-		r >>= S_QUEUESPERPAGEPF0 +
-		    (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf;
-		s->s_qpp = r & M_QUEUESPERPAGEPF0;
-	}
+	/* egress queues: log2 of # of doorbells per BAR2 page */
+	r = t4_read_reg(sc, A_SGE_EGRESS_QUEUES_PER_PAGE_PF);
+	r >>= S_QUEUESPERPAGEPF0 +
+	    (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf;
+	s->eq_s_qpp = r & M_QUEUESPERPAGEPF0;
+
+	/* ingress queues: log2 of # of doorbells per BAR2 page */
+	r = t4_read_reg(sc, A_SGE_INGRESS_QUEUES_PER_PAGE_PF);
+	r >>= S_QUEUESPERPAGEPF0 +
+	    (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf;
+	s->iq_s_qpp = r & M_QUEUESPERPAGEPF0;
 
 	t4_init_tp_params(sc);
 
@@ -2799,7 +2804,7 @@ alloc_eq(struct adapter *sc, struct port
 	if (isset(&eq->doorbells, DOORBELL_UDB) ||
 	    isset(&eq->doorbells, DOORBELL_UDBWC) ||
 	    isset(&eq->doorbells, DOORBELL_WCWR)) {
-		uint32_t s_qpp = sc->sge.s_qpp;
+		uint32_t s_qpp = sc->sge.eq_s_qpp;
 		uint32_t mask = (1 << s_qpp) - 1;
 		volatile uint8_t *udb;
 



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