summaryrefslogtreecommitdiff
path: root/kernel/xpp/xbus-core.h
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-07 00:45:53 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-07 00:45:53 +0000
commit1a571d19740d87e24b92ef49a2d38b26256112ae (patch)
tree8490182ea096b25f977d73c8c7a89b286014b94c /kernel/xpp/xbus-core.h
parent92d02c5fadec34a75c085e9f95eeab268c3683c8 (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/xbus-core.h')
-rw-r--r--kernel/xpp/xbus-core.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/kernel/xpp/xbus-core.h b/kernel/xpp/xbus-core.h
index de6e859..2ebb3c0 100644
--- a/kernel/xpp/xbus-core.h
+++ b/kernel/xpp/xbus-core.h
@@ -60,6 +60,7 @@ enum {
XBUS_N_TX_BYTES,
XBUS_N_RX_BYTES,
XBUS_N_TX_PCM_FRAG,
+ XBUS_N_RX_CMD,
XBUS_N_TX_CMD,
};
@@ -81,6 +82,7 @@ static struct xbus_counters {
C_(TX_BYTES),
C_(RX_BYTES),
C_(TX_PCM_FRAG),
+ C_(RX_CMD),
C_(TX_CMD),
};
@@ -129,7 +131,7 @@ struct xbus {
char busname[XBUS_NAMELEN]; /* set by xbus_new() */
/* low-level bus drivers set these 2 fields */
- char busdesc[XBUS_DESCLEN];
+ char location[XBUS_DESCLEN];
char label[LABEL_SIZE];
struct xbus_transport transport;
@@ -152,11 +154,13 @@ struct xbus {
enum sync_mode sync_mode;
struct timer_list command_timer;
unsigned int xbus_frag_count;
- struct xframe_queue pcm_tospan[2]; /* double buffer */
- struct xpp_timing timing;
+ struct xframe_queue pcm_tospan;
+
+ struct xpp_ticker ticker; /* for tick rate */
+ struct xpp_drift drift; /* for tick offset */
+
atomic_t pcm_rx_counter;
unsigned int global_counter;
- long sync_offset_usec;
/* Device-Model */
struct device astribank;
@@ -173,6 +177,12 @@ struct xbus {
unsigned long max_rx_sync;
unsigned long min_rx_sync;
unsigned long max_rx_process; /* packet processing time (usec) */
+#ifdef SAMPLE_TICKS
+#define SAMPLE_SIZE 1000
+ int sample_ticks[SAMPLE_SIZE];
+ bool sample_running;
+ int sample_pos;
+#endif
struct xbus_poller *poller;
@@ -238,7 +248,7 @@ int xbus_log(xbus_t *xbus, xpd_t *xpd, int direction, const void *buf, unsigned
#endif
/* Frame handling */
-void dump_xframe(const char msg[], const xbus_t *xbus, const xframe_t *xframe);
+void dump_xframe(const char msg[], const xbus_t *xbus, const xframe_t *xframe, int print_dbg);
int send_cmd_frame(xbus_t *xbus, xframe_t *xframe);
/*