Author: np
Date: Thu Sep 22 18:47:07 2016
New Revision: 306206
URL: https://svnweb.freebsd.org/changeset/base/306206

Log:
  cxgbe(4): Catch up with the different layout of WHOAMI in T6.
  
  Note that the code moved below t4_prep_adapter() as part of this change
  because now it needs a working chip_id().

Modified:
  head/sys/dev/cxgbe/t4_main.c

Modified: head/sys/dev/cxgbe/t4_main.c
==============================================================================
--- head/sys/dev/cxgbe/t4_main.c        Thu Sep 22 18:45:25 2016        
(r306205)
+++ head/sys/dev/cxgbe/t4_main.c        Thu Sep 22 18:47:07 2016        
(r306206)
@@ -812,15 +812,6 @@ t4_attach(device_t dev)
        if (rc != 0)
                goto done; /* error message displayed already */
 
-       /*
-        * This is the real PF# to which we're attaching.  Works from within PCI
-        * passthrough environments too, where pci_get_function() could return a
-        * different PF# depending on the passthrough configuration.  We need to
-        * use the real PF# in all our communication with the firmware.
-        */
-       sc->pf = G_SOURCEPF(t4_read_reg(sc, A_PL_WHOAMI));
-       sc->mbox = sc->pf;
-
        memset(sc->chan_map, 0xff, sizeof(sc->chan_map));
 
        /* Prepare the adapter for operation. */
@@ -832,6 +823,16 @@ t4_attach(device_t dev)
                goto done;
        }
 
+       /*
+        * This is the real PF# to which we're attaching.  Works from within PCI
+        * passthrough environments too, where pci_get_function() could return a
+        * different PF# depending on the passthrough configuration.  We need to
+        * use the real PF# in all our communication with the firmware.
+        */
+       j = t4_read_reg(sc, A_PL_WHOAMI);
+       sc->pf = chip_id(sc) <= CHELSIO_T5 ? G_SOURCEPF(j) : G_T6_SOURCEPF(j);
+       sc->mbox = sc->pf;
+
        t4_init_devnames(sc);
        if (sc->names == NULL) {
                rc = ENOTSUP;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to