[Asterisk-bsd] Zaptel driver problems
Dinesh Nair
dinesh at alphaque.com
Fri Oct 21 04:48:25 CDT 2005
On 10/21/05 01:03 Daniel Nielsen said the following:
> We've got some problems with the Zaptel FreeBSD driver. Our
> setup is:
>
> HP ProLiant DL360, 1GB Ram, 2 x 3GHz Xeon (G4).
> When the driver is loaded, the red flashing light stops on
> the card.
what version of freebsd ?
if you're on freebsd 4.x, you'd need the following patch to the 4.x branch
sources of the wct4xxp.c driver, as the current macro expansion for
DECLARE_MODULE/MODULE_DEPEND needs t4_load() defined before it works.
without this patch, a kldload would panic the system.
in addition, i'm investigation a condition where the use of
INTR_TYPE_FAST/INTR_FAST would cause a kernel panic if shared interrupts
were present. this can be avoided (i think !) by removing the RF_SHAREABLE
flag in the call to bus_alloc_resource(). i've noticed that adding
INTR_TYPE_FAST on freebsd 4.x with shared interrupts will cause a kernel
panic when asterisk is started, though kldload and ztcfg go ok.
the freebsd driver docs state that INTR_TYPE_FAST can only be used when
interrupts are not shared.
diff -ur src/zaptel-freebsd-0.11/wct4xxp/wct4xxp.c
zaptel-bsd-trunk/wct4xxp/wct4xxp.c
--- src/zaptel-freebsd-0.11/wct4xxp/wct4xxp.c Thu Oct 13 04:50:18 2005
+++ zaptel-bsd-trunk/wct4xxp/wct4xxp.c Fri Oct 21 06:08:53 2005
@@ -3107,6 +3094,22 @@
static devclass_t t4_devclass;
+static int t4_load(module_t mod, int cmd, void *arg) {
+ int err = 0;
+ switch(cmd) {
+ case MOD_LOAD:
+ err = driver_module_handler(mod, cmd, arg);
+ break;
+ case MOD_UNLOAD:
+ err = driver_module_handler(mod, cmd, arg);
+ break;
+ default:
+ err = EINVAL;
+ break;
+ }
+ return err;
+};
+
#if __FreeBSD_version < 500000
#define driver_module_handler t4_load
MODULE_DEPEND(wct4xxp, zaptel, 1, 1, 1);
@@ -3129,22 +3132,6 @@
DECLARE_MODULE(wct4xxp, t4_pci_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
#endif
-static int t4_load(module_t mod, int cmd, void *arg) {
- int err = 0;
- switch(cmd) {
- case MOD_LOAD:
- err = driver_module_handler(mod, cmd, arg);
- break;
- case MOD_UNLOAD:
- err = driver_module_handler(mod, cmd, arg);
- break;
- default:
- err = EINVAL;
- break;
- }
- return err;
-};
-
--
Regards, /\_/\ "All dogs go to heaven."
dinesh at alphaque.com (0 0) http://www.alphaque.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do |
| for b in clients employers associates relatives neighbours pets; do |
| echo "The opinions here in no way reflect the opinions of my $a $b." |
| done; done |
+=========================================================================+
More information about the Asterisk-BSD
mailing list