[svn-commits] kpfleming: branch 1.4 r3393 - /branches/1.4/wct4xxp/base.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Dec 10 14:31:29 CST 2007


Author: kpfleming
Date: Mon Dec 10 14:31:28 2007
New Revision: 3393

URL: http://svn.digium.com/view/zaptel?view=rev&rev=3393
Log:
report 'location' for cards supported by wct4xxp using the 'order' switches on the card when possible

Modified:
    branches/1.4/wct4xxp/base.c

Modified: branches/1.4/wct4xxp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.4/wct4xxp/base.c?view=diff&rev=3393&r1=3392&r2=3393
==============================================================================
--- branches/1.4/wct4xxp/base.c (original)
+++ branches/1.4/wct4xxp/base.c Mon Dec 10 14:31:28 2007
@@ -1514,6 +1514,11 @@
 	return 0;
 }
 
+/* The number of cards we have seen with each
+   possible 'order' switch setting.
+*/
+static unsigned int order_index[16];
+
 static void init_spans(struct t4 *wc)
 {
 	int x,y;
@@ -1540,9 +1545,12 @@
 		}
 		snprintf(ts->span.devicetype, sizeof(ts->span.devicetype) - 1, "%s%s", wc->variety,
 			 (wc->vpm != T4_VPM_PRESENT) ? "" : (wc->vpm450m) ? " with VPM450M" : "with VPM400M");
-		snprintf(ts->span.location, sizeof(ts->span.location) - 1,
-			 "PCI%s Bus %02d Slot %02d", (ts->spanflags & FLAG_EXPRESS) ? " Express" : " ",
-			 wc->dev->bus->number, PCI_SLOT(wc->dev->devfn) + 1);
+		if (order_index[wc->order] == 1)
+			snprintf(ts->span.location, sizeof(ts->span.location) - 1, "Board ID Switch %d", wc->order);
+		else
+			snprintf(ts->span.location, sizeof(ts->span.location) - 1,
+				 "PCI%s Bus %02d Slot %02d", (ts->spanflags & FLAG_EXPRESS) ? " Express" : " ",
+				 wc->dev->bus->number, PCI_SLOT(wc->dev->devfn) + 1);
 		switch (ts->spantype) {
 		case TYPE_T1:
 			ts->span.spantype = "T1";
@@ -3416,6 +3424,7 @@
 	else
 		wc->t1e1 = ((t4_pci_in(wc, WC_LEDS)) & 0x0f00) >> 8;
 	wc->order = ((t4_pci_in(wc, WC_LEDS)) & 0xf0000000) >> 28;
+	order_index[wc->order]++;
 	return 0;
 }
 
@@ -3639,8 +3648,7 @@
 			init_spans(wc);
 
 			/* Launch cards as appropriate */
-			x = 0;
-			for(;;) {
+			for (;;) {
 				/* Find a card to activate */
 				f = 0;
 				for (x=0;cards[x];x++) {
@@ -3758,6 +3766,9 @@
 #if 1
 		free_irq(pdev->irq, wc);
 #endif		
+
+		order_index[wc->order]--;
+
 		cards[wc->num] = NULL;
 		pci_set_drvdata(pdev, NULL);
 		for (x=0;x<wc->numspans;x++) {




More information about the svn-commits mailing list