[Asterisk-bsd] Setting opermode in wcfxs

Thomas Sandford thomas at paradisegreen.co.uk
Fri Oct 21 09:04:21 CDT 2005


"Thomas Sandford" <thomas at paradise-green.co.uk> wrote:
> "Arne Steinkamm" <arne at Steinkamm.COM> wrote:
>> Max Khon made a patch for this [setting opermode for TDM400 cards]. After 
>> inserting it you can adjust opermode
>> in /boot/device.hints:
>>
>> hint.wcfxs.0.flags="1"
>>
>> As far as I know Max gave this patch to the maintainers...
>
> I'm guessing it would be this entry in the changelog
>
> 14/09/2005 Max Khon <fjoe at freebsd.org>
> o Get opermode from device flags.
> o Make qozap interrupt INTR_FAST
>
> There is code in the driver that looks as though it should do this, and I 
> had already tried this method. Unfortunately it appears that (unlike I 
> believe is the case for the Linux driver) the FreeBSD port doesn't report 
> the opermode in the probe printf so I'm not actually sure whether it is 
> working.
>
> ... but I did try setting an invalid flags/opermode value to see if I 
> could get an error message, and nothing seemed to happen.
>
> I think I'll try adding some printf statements and see what is actually 
> coming through in flags and opermode.

OK. Tried that, and I now have it working.

What I found is that it is no good just changing the value in 
/boot/device.hints or by kenv.

The value used by the driver is that in /boot/device.hints _AT THE TIME THE 
KERNEL WAS BOOTED_, even if you have changed the kenv value or the file 
subsequent to the last boot.

I'd also like to propose the attached patch (against SVN trunk from 
Wednesday am) which makes our driver behave more like the Linux one in 
reporting the country configuration used.

-- 
Thomas Sandford 
-------------- next part --------------
diff -ruN trunk/wcfxs/wcfxs.c new/wcfxs/wcfxs.c
--- trunk/wcfxs/wcfxs.c	Sat Sep 24 19:55:51 2005
+++ new/wcfxs/wcfxs.c	Fri Oct 21 14:48:42 2005
@@ -2111,7 +2111,7 @@
 				} 
 			} else if (!(ret = wcfxs_init_voicedaa(sc, x, 0, 0, sane))) {
 				sc->cardflag |= (1 << x);
-				printf("Module %d: Installed -- AUTO FXO\n",x);
+				printf("Module %d: Installed -- AUTO FXO (%s mode)\n",x, fxo_modes[sc->opermode].name);
 			} else
 				printf("Module %d: Not installed\n", x);
 		}


More information about the Asterisk-BSD mailing list