diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-07 00:45:53 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-07 00:45:53 +0000 |
commit | 1a571d19740d87e24b92ef49a2d38b26256112ae (patch) | |
tree | 8490182ea096b25f977d73c8c7a89b286014b94c /kernel/xpp/utils/zconf/Zaptel | |
parent | 92d02c5fadec34a75c085e9f95eeab268c3683c8 (diff) |
xpp.r5512:
* Build:
- Zaptel >= 1.4.9 is migrating to storing kernel stuff in zaptel/kernel/*
- We conditionally use old/new directory scheme:
In xpp/Kbuild and xpp/utils/Makefile use ZAP_KERNEL variable, so it's
not confused with ZAPTEL_DIR (which appears in zaptel/Makefile as well).
- Fix compile warnings on 64 bit systems.
- Compile fixes for kernel-2.6.24
* UDEV:
- /etc/udev/rules.d/xpp.rules now uses XPP_INIT_DIR to find astribank_hook.
- astribank_hook: Modify to do nothing. Add some documentation.
* Autoconfiguration -- zapconf:
- Don't fail zapconf et.al. if no config file was found.
- Skip the 'IRQ Missing:' line in /proc/zaptel/nnn for wcte1xp(?).
- Add some newer Digium cards to our hardware inventory.
- Partially handle cases where the /proc/zaptel strings does not contain
info about E1/T1/J1 or NT/TE.
* Better SYNC:
- Finer tuning of PLL (New firmware).
- Change calculation algorithm of sync offset. It now copes better
with the variance in USB frame reception timing.
- Statistics:
. The view of results was moved from /proc/xpp/XBUS-*/summary to
a new /sys/bus/astribanks/devices/xbus-*/timing and enhanced.
. A new xpp_timing script shows all astribanks.
. A new write only /sys/bus/astribanks/devices/xbus-*/cls is
used to clear statistics. Eventually, clearing of XBUS related
statistics should be done here. One that was migrated is the
clearing of 'PCM [TR]X:' numbers currently appearing in
/proc/xpp/XBUS-*/summary (they should be moved too later).
- Shorten the strings representation sync_mode ("SYNC_MODE_AB" -> "AB")
adapted their use in printk and /proc so the text is clear.
- Added a command line parameter xpp.disable_pll_sync to stop all
adjustments command to AB (calculations still continue as usual).
* PRI:
- 4 port support
- set clocking master span via ztcfg, like other zaptel devices.
* FXO:
- Fix false hangups in some countries (voltage fluctuations).
- Some countries send caller-id before first ring.
Added code to handle caller-id PCM pass through according to
a new command line parameter (xpd_fxo.caller_id_style).
- No longer sends an event on zt_open. See #12160 .
* Misc:
- Adapt to zaptel-1.4.8 and above ztscan: added fields returend by
new ZT_SPANSTAT_V2 ioctl()
- Document sysfs and waitfor_xpds.
- Miscelaneous optimizations and bugfixes.
- Remove deprecated pcm_tasklet parameter. The rx_tasklet parameter has
replaced it a long time ago.
- Add RX_CMD counter to /proc/xpp/XBUS-*/summary
- Unclutter some of the usb disconnect messages.
- xpp_usb: minor preformance improvements in receive.
Expose the number of pending receive URB's in /proc/xpp/XBUS-*/xpp_usb
Merged revisions 3952 via svnmerge from
http://svn.digium.com/svn/zaptel/branches/1.2
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3957 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'kernel/xpp/utils/zconf/Zaptel')
-rw-r--r-- | kernel/xpp/utils/zconf/Zaptel/Hardware/PCI.pm | 3 | ||||
-rw-r--r-- | kernel/xpp/utils/zconf/Zaptel/Span.pm | 64 |
2 files changed, 54 insertions, 13 deletions
diff --git a/kernel/xpp/utils/zconf/Zaptel/Hardware/PCI.pm b/kernel/xpp/utils/zconf/Zaptel/Hardware/PCI.pm index 45173d4..8ebddf0 100644 --- a/kernel/xpp/utils/zconf/Zaptel/Hardware/PCI.pm +++ b/kernel/xpp/utils/zconf/Zaptel/Hardware/PCI.pm @@ -41,6 +41,7 @@ my %pci_ids = ( 'd161:0800' => { DRIVER => 'wctdm24xxp', DESCRIPTION => 'Wildcard TDM800P' }, 'd161:8002' => { DRIVER => 'wctdm24xxp', DESCRIPTION => 'Wildcard AEX800' }, 'd161:8003' => { DRIVER => 'wctdm24xxp', DESCRIPTION => 'Wildcard AEX2400' }, + 'd161:8005' => { DRIVER => 'wctdm24xxp', DESCRIPTION => 'Wildcard TDM410P' }, # from pciradio 'e159:0001/e16b' => { DRIVER => 'pciradio', DESCRIPTION => 'PCIRADIO' }, @@ -79,6 +80,8 @@ my %pci_ids = ( # from wcte12xp 'd161:0120' => { DRIVER => 'wcte12xp', DESCRIPTION => 'Wildcard TE12xP' }, + 'd161:8000' => { DRIVER => 'wcte12xp', DESCRIPTION => 'Wildcard TE121' }, + 'd161:8001' => { DRIVER => 'wcte12xp', DESCRIPTION => 'Wildcard TE122' }, # from tor2 '10b5:9030' => { DRIVER => 'tor2', DESCRIPTION => 'PLX 9030' }, diff --git a/kernel/xpp/utils/zconf/Zaptel/Span.pm b/kernel/xpp/utils/zconf/Zaptel/Span.pm index 7c08484..92dc4dd 100644 --- a/kernel/xpp/utils/zconf/Zaptel/Span.pm +++ b/kernel/xpp/utils/zconf/Zaptel/Span.pm @@ -36,7 +36,15 @@ my @bri_strings = ( ); my @pri_strings = ( - '(E1|T1|J1)_(NT|TE)' + '(E1|T1|J1)_(NT|TE)', + 'Tormenta 2 .*Quad (E1|T1)', # tor2. + 'Digium Wildcard .100P (T1|E1)/', # wct1xxp + 'ISA Tormenta Span 1', # torisa + 'TE110P T1/E1', # wcte11xp + 'Wildcard TE120P', # wcte12xp + 'Wildcard TE121', # wcte12xp + 'Wildcard TE122', # wcte12xp + 'T[24]XXP \(PCI\) Card ', # wct4xxp ); our $ZAPBRI_NET = 'bri_net'; @@ -45,6 +53,21 @@ our $ZAPBRI_CPE = 'bri_cpe'; our $ZAPPRI_NET = 'pri_net'; our $ZAPPRI_CPE = 'pri_cpe'; +sub init_proto($$) { + my $self = shift; + my $proto = shift; + + $self->{PROTO} = $proto; + if($proto eq 'E1') { + $self->{DCHAN_IDX} = 15; + $self->{BCHAN_LIST} = [ 0 .. 14, 16 .. 30 ]; + } elsif($proto eq 'T1') { + $self->{DCHAN_IDX} = 23; + $self->{BCHAN_LIST} = [ 0 .. 22 ]; + } + $self->{TYPE} = "${proto}_$self->{TERMTYPE}"; +} + sub new($$) { my $pack = shift or die "Wasn't called as a class method\n"; my $num = shift or die "Missing a span number parameter\n"; @@ -76,20 +99,19 @@ sub new($$) { } foreach my $cardtype (@pri_strings) { if($head =~ m/$cardtype/) { + my @info; + + push(@info, $1) if defined $1; + push(@info, $2) if defined $2; + my ($proto) = grep(/(E1|T1|J1)/, @info); + $proto = 'UNKNOWN' unless defined $proto; + my ($termtype) = grep(/(NT|TE)/, @info); + $termtype = 'TE' unless defined $termtype; + $self->{IS_DIGITAL} = 1; $self->{IS_PRI} = 1; - $self->{PROTO} = "$1"; - $self->{TERMTYPE} = $2; - $self->{TYPE} = "$1_$2"; - if($self->{PROTO} eq 'E1') { - $self->{DCHAN_IDX} = 15; - $self->{BCHAN_LIST} = [ 0 .. 14, 16 .. 30 ]; - } elsif($self->{PROTO} eq 'T1') { - $self->{DCHAN_IDX} = 23; - $self->{BCHAN_LIST} = [ 0 .. 22 ]; - } else { - die "'$self->{PROTO}' unsupported yet"; - } + $self->{TERMTYPE} = $termtype; + $self->init_proto($proto); last; } } @@ -112,6 +134,22 @@ sub new($$) { $index++; } close F; + if($self->is_pri()) { + # Check for PRI with unknown type strings + if($index == 31) { + if($self->{PROTO} eq 'UNKNOWN') { + $self->init_proto('E1'); + } elsif($self->{PROTO} ne 'E1') { + die "$index channels in a $self->{PROTO} span"; + } + } elsif($index == 24) { + if($self->{PROTO} eq 'UNKNOWN') { + $self->init_proto('T1'); # FIXME: J1? + } elsif($self->{PROTO} ne 'T1') { + die "$index channels in a $self->{PROTO} span"; + } + } + } @channels = sort { $a->num <=> $b->num } @channels; $self->{CHANS} = \@channels; $self->{YELLOW} = undef; |