--- org_base.c 2010-07-24 23:48:01.000000000 +0800 +++ base.c 2010-07-25 01:48:30.000000000 +0800 @@ -84,6 +84,7 @@ static int debug = 0; static int spanfilter = 0xFF; /* Bitmap for ports 1-8 */ +static int te_nt_override = 0xFFFF; #ifdef LOOPBACK_SUPPORTED static int loopback = 0; #endif @@ -1471,16 +1472,22 @@ * jumper is the oposite of how other HFC-4S cards do: * - In B410P: GPIO=0: NT * - In Junghanns: GPIO=0: TE + * - Set NT/TE mode(openvox/Junghanss B800P/) */ - if (b4->card_type == B410P) + if(te_nt_override == 0xFFFF) + { + if (b4->card_type == B410P) nt = ((gpio & (1 << (i + 4))) == 0); else nt = ((gpio & (1 << (i + 4))) != 0); - + dev_info(b4->dev, "Port %d: %s mode\n", i + 1, (nt ? "NT" : "TE")); + } + else + { + nt = !((te_nt_override >> i) & 1); + dev_info(b4->dev, "Port %d: %s mode manually set\n", i + 1, (nt ? "NT" : "TE")); + } s->te_mode = !nt; - - dev_info(b4->dev, "Port %d: %s mode\n", i + 1, (nt ? "NT" : "TE")); - hfc_reset_st(s); hfc_start_st(s); } @@ -2946,7 +2953,7 @@ module_param(vpmsupport, int, S_IRUGO); module_param(timer_1_ms, int, S_IRUGO | S_IWUSR); module_param(timer_3_ms, int, S_IRUGO | S_IWUSR); - +module_param(te_nt_override, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(debug, "bitmap: 1=general 2=dtmf 4=regops 8=fops 16=ec 32=st state 64=hdlc 128=alarm"); MODULE_PARM_DESC(spanfilter, "debug filter for spans. bitmap: 1=port 1, 2=port 2, 4=port 3, 8=port 4"); #ifdef LOOKBACK_SUPPORTED @@ -2959,7 +2966,7 @@ MODULE_PARM_DESC(vpmsupport, "1=enable hardware EC, 0=disable hardware EC"); MODULE_PARM_DESC(timer_1_ms, "NT: msec to wait for link activation, TE: unused."); MODULE_PARM_DESC(timer_3_ms, "TE: msec to wait for link activation, NT: unused."); - +MODULE_PARM_DESC(te_nt_override, "TE/NT mode override bitmap for spans. 1 - TE, 0 - NT"); MODULE_AUTHOR("Digium Incorporated "); MODULE_DESCRIPTION("B410P & Similars multi-port BRI module driver."); MODULE_LICENSE("GPL");