summaryrefslogtreecommitdiff
path: root/xpp/xproto.c
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-06 22:54:16 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-06 22:54:16 +0000
commit3b3d8f7b1186f672e16cd7e4ded2f405ec43cb1c (patch)
tree5e592d92e3030b4eb28cab7585f769dbbeab2d74 /xpp/xproto.c
parent07b404b68141bc981adbc1f5a00cbe90116fb9c1 (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 git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3952 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/xproto.c')
-rw-r--r--xpp/xproto.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/xpp/xproto.c b/xpp/xproto.c
index d55949e..010f0de 100644
--- a/xpp/xproto.c
+++ b/xpp/xproto.c
@@ -218,7 +218,7 @@ static int xframe_receive_cmd(xbus_t *xbus, xframe_t *xframe)
if((rate_limit++ % 1003) == 0) {
XBUS_DBG(GENERAL, xbus, "A PCM packet within a Non-PCM xframe\n");
- dump_xframe("In Non-PCM xframe", xbus, xframe);
+ dump_xframe("In Non-PCM xframe", xbus, xframe, print_dbg);
}
ret = -EPROTO;
goto out;
@@ -229,7 +229,7 @@ static int xframe_receive_cmd(xbus_t *xbus, xframe_t *xframe)
if((rate_limit++ % 1003) == 0) {
XBUS_NOTICE(xbus, "Invalid packet length %d\n", len);
- dump_xframe("BAD LENGTH", xbus, xframe);
+ dump_xframe("BAD LENGTH", xbus, xframe, print_dbg);
}
ret = -EPROTO;
goto out;
@@ -255,7 +255,7 @@ int xframe_receive(xbus_t *xbus, xframe_t *xframe)
if((rate_limit++ % 1003) == 0) {
XBUS_NOTICE(xbus, "short xframe\n");
- dump_xframe("short xframe", xbus, xframe);
+ dump_xframe("short xframe", xbus, xframe, print_dbg);
}
FREE_RECV_XFRAME(xbus, xframe);
return -EPROTO;
@@ -270,8 +270,10 @@ int xframe_receive(xbus_t *xbus, xframe_t *xframe)
*/
if(XPACKET_IS_PCM((xpacket_t *)xframe->packets))
xframe_receive_pcm(xbus, xframe);
- else
+ else {
+ XBUS_COUNTER(xbus, RX_CMD)++;
ret = xframe_receive_cmd(xbus, xframe);
+ }
/* Calculate total processing time */
do_gettimeofday(&now);
usec = (now.tv_sec - tv_received.tv_sec) * 1000000 +