[dahdi-commits] kpfleming: linux/trunk r7038 - in /linux/trunk/drivers/dahdi: wct4xxp/ wctdm2...
SVN commits to the DAHDI project
dahdi-commits at lists.digium.com
Wed Aug 19 11:40:18 CDT 2009
Author: kpfleming
Date: Wed Aug 19 11:40:13 2009
New Revision: 7038
URL: http://svn.asterisk.org/svn-view/dahdi?view=rev&rev=7038
Log:
Ensure that dahdi_scan correctly reports VPM presence.
The wct4xxp driver (for the dual/quad span T1/E1 cards) and the wcte12xp
driver (for the single span VoiceBus-based T1/E1 cards) did not properly
update the 'devicetype' field reported by dahdi_scan when a VPM was found
during the card startup process. As a result, dahdi_scan did not show that
a VPM was present on the card, even if it was.
Modified:
linux/trunk/drivers/dahdi/wct4xxp/base.c
linux/trunk/drivers/dahdi/wctdm24xxp/base.c
linux/trunk/drivers/dahdi/wcte12xp/base.c
Modified: linux/trunk/drivers/dahdi/wct4xxp/base.c
URL: http://svn.asterisk.org/svn-view/dahdi/linux/trunk/drivers/dahdi/wct4xxp/base.c?view=diff&rev=7038&r1=7037&r2=7038
==============================================================================
--- linux/trunk/drivers/dahdi/wct4xxp/base.c (original)
+++ linux/trunk/drivers/dahdi/wct4xxp/base.c Wed Aug 19 11:40:13 2009
@@ -1581,6 +1581,24 @@
return 0;
}
+static void set_span_devicetype(struct t4 *wc)
+{
+ int x;
+ struct t4_span *ts;
+
+ for (x = 0; x < wc->numspans; x++) {
+ ts = wc->tspans[x];
+ dahdi_copy_string(ts->span.devicetype, wc->variety, sizeof(ts->span.devicetype));
+ if (wc->vpm == T4_VPM_PRESENT) {
+ if (!wc->vpm450m)
+ strncat(ts->span.devicetype, " (VPM400M)", sizeof(ts->span.devicetype) - 1);
+ else
+ strncat(ts->span.devicetype, (wc->numspans > 2) ? " (VPMOCT128)" : " (VPMOCT064)",
+ sizeof(ts->span.devicetype) - 1);
+ }
+ }
+}
+
/* The number of cards we have seen with each
possible 'order' switch setting.
*/
@@ -1602,14 +1620,6 @@
snprintf(ts->span.desc, sizeof(ts->span.desc) - 1,
"T%dXXP (PCI) Card %d Span %d", wc->numspans, wc->num, x+1);
ts->span.manufacturer = "Digium";
- dahdi_copy_string(ts->span.devicetype, wc->variety, sizeof(ts->span.devicetype));
- if (wc->vpm == T4_VPM_PRESENT) {
- if (!wc->vpm450m)
- strncat(ts->span.devicetype, " with VPM400M", sizeof(ts->span.devicetype) - 1);
- else
- strncat(ts->span.devicetype, (wc->numspans > 2) ? " with VPMOCT128" : " with VPMOCT064",
- sizeof(ts->span.devicetype) - 1);
- }
if (order_index[wc->order] == 1)
snprintf(ts->span.location, sizeof(ts->span.location) - 1, "Board ID Switch %d", wc->order);
else
@@ -1682,6 +1692,7 @@
}
}
}
+ set_span_devicetype(wc);
}
static void t4_serial_setup(struct t4 *wc, int unit)
@@ -2150,6 +2161,8 @@
t4_vpm450_init(wc);
wc->dmactrl |= wc->vpm;
t4_pci_out(wc, WC_DMACTRL, wc->dmactrl);
+ if (wc->vpm)
+ set_span_devicetype(wc);
}
#endif
printk(KERN_INFO "Completed startup!\n");
Modified: linux/trunk/drivers/dahdi/wctdm24xxp/base.c
URL: http://svn.asterisk.org/svn-view/dahdi/linux/trunk/drivers/dahdi/wctdm24xxp/base.c?view=diff&rev=7038&r1=7037&r2=7038
==============================================================================
--- linux/trunk/drivers/dahdi/wctdm24xxp/base.c (original)
+++ linux/trunk/drivers/dahdi/wctdm24xxp/base.c Wed Aug 19 11:40:13 2009
@@ -3332,9 +3332,9 @@
}
if (wc->vpm100) {
- strncat(wc->span.devicetype, " with VPM100M", sizeof(wc->span.devicetype) - 1);
+ strncat(wc->span.devicetype, " (VPM100M)", sizeof(wc->span.devicetype) - 1);
} else if (wc->vpmadt032) {
- strncat(wc->span.devicetype, " with VPMADT032", sizeof(wc->span.devicetype) - 1);
+ strncat(wc->span.devicetype, " (VPMADT032)", sizeof(wc->span.devicetype) - 1);
}
}
Modified: linux/trunk/drivers/dahdi/wcte12xp/base.c
URL: http://svn.asterisk.org/svn-view/dahdi/linux/trunk/drivers/dahdi/wcte12xp/base.c?view=diff&rev=7038&r1=7037&r2=7038
==============================================================================
--- linux/trunk/drivers/dahdi/wcte12xp/base.c (original)
+++ linux/trunk/drivers/dahdi/wcte12xp/base.c Wed Aug 19 11:40:13 2009
@@ -1169,6 +1169,16 @@
vpmadt032_echocan_free(wc->vpmadt032, chan, ec);
}
+static void set_span_devicetype(struct t1 *wc)
+{
+ strncpy(wc->span.devicetype, wc->variety, sizeof(wc->span.devicetype) - 1);
+
+#if defined(VPM_SUPPORT)
+ if (wc->vpmadt032)
+ strncat(wc->span.devicetype, " (VPMADT032)", sizeof(wc->span.devicetype) - 1);
+#endif
+}
+
static int t1_software_init(struct t1 *wc)
{
int x;
@@ -1194,12 +1204,7 @@
sprintf(wc->span.name, "WCT1/%d", num);
snprintf(wc->span.desc, sizeof(wc->span.desc) - 1, "%s Card %d", wc->variety, num);
wc->span.manufacturer = "Digium";
- strncpy(wc->span.devicetype, wc->variety, sizeof(wc->span.devicetype) - 1);
-
-#if defined(VPM_SUPPORT)
- if (wc->vpmadt032)
- strncat(wc->span.devicetype, " with VPMADT032", sizeof(wc->span.devicetype) - 1);
-#endif
+ set_span_devicetype(wc);
snprintf(wc->span.location, sizeof(wc->span.location) - 1,
"PCI Bus %02d Slot %02d", dev->bus->number, PCI_SLOT(dev->devfn) + 1);
@@ -1377,6 +1382,7 @@
config_vpmadt032(wc->vpmadt032);
+ set_span_devicetype(wc);
module_printk("VPM present and operational (Firmware version %x)\n", wc->vpmadt032->version);
wc->ctlreg |= 0x10; /* turn on vpm (RX audio from vpm module) */
if (vpmtsisupport) {
More information about the dahdi-commits
mailing list