Author: np
Date: Wed May  7 05:28:23 2014
New Revision: 265486
URL: http://svnweb.freebsd.org/changeset/base/265486

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.

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

Modified: stable/9/sys/dev/cxgbe/adapter.h
==============================================================================
--- stable/9/sys/dev/cxgbe/adapter.h    Wed May  7 05:14:48 2014        
(r265485)
+++ stable/9/sys/dev/cxgbe/adapter.h    Wed May  7 05:28:23 2014        
(r265486)
@@ -509,7 +509,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/9/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- stable/9/sys/dev/cxgbe/t4_sge.c     Wed May  7 05:14:48 2014        
(r265485)
+++ stable/9/sys/dev/cxgbe/t4_sge.c     Wed May  7 05:28:23 2014        
(r265486)
@@ -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);
 
@@ -2770,7 +2775,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;
 
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to