summaryrefslogtreecommitdiff
path: root/xpp/xpp_usb.c
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-05-17 22:55:21 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-05-17 22:55:21 +0000
commit3af1b5fa2ec86d21762ad1cea81d2b275d4a9d48 (patch)
tree12da5f31396b3b1d3f99ed1bad8725bd50120689 /xpp/xpp_usb.c
parentc16f6ead0e9050d59d73f39f3015ecb64aecc214 (diff)
XPP revision 3965:
* Tested with zaptel-1.2.17.1 * Add D-Channel TX, RX and BAD frames count in /proc/xpp/XBUS-*/XPD-*/bri_info * Adjust output of xpp_sync script. Pad for 8 port BRI. * Added a debugging module parport_debug (not compiled by default). * Added an optional patch to zaptel: - compiles only if ZAPTEL_SYNC_TICK is defined - Allow interested driver to register for "sync" notification. - Does not affect drivers that do not use this feature. * Added external synchronization feature: - Only if ZAPTEL_SYNC_TICK feature is compiled in - Than XPP may be synchronized by another card (e.g: an Astribank with FXS can be synchronized by a Digium PRI card). - May be enabled/disabled in runtime via the 'sync_tick_active' module parameter to the xpp.ko module. * Fixed a potential bug in D-Channel hexdump printing. * New visual indications in BRI leds: - Constant ON RED/GREEN: Shows the port type -- NT/TE. - Very fast "double blink": Layer1 work, no D-Channel yet. - Steady blinking (1/2 sec): D-Channel trafic detected. * xpp_fxloader moved to /usr/share/zaptel . * adj_clock removed: never really used. * Now we have Zaptel::Hardware and a sample zaptel_hardware script (not (installed by default). * We also have a sample perl zapconf (not installed by default) which aims at replacing genzaptelconf (sans the modules detection). git-svn-id: http://svn.digium.com/svn/zaptel/trunk@2537 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/xpp_usb.c')
-rw-r--r--xpp/xpp_usb.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/xpp/xpp_usb.c b/xpp/xpp_usb.c
index 3f0bfaa..8403777 100644
--- a/xpp/xpp_usb.c
+++ b/xpp/xpp_usb.c
@@ -45,6 +45,7 @@
#include "card_fxs.h"
#include "card_fxo.h"
#endif
+#include "parport_debug.h"
static const char rcsid[] = "$Id$";
@@ -733,6 +734,7 @@ static void xpp_send_callback(USB_PASS_CB(urb))
long usec_diff;
BUG_ON(!xbus);
+ //flip_parport_bit(6);
atomic_dec(&xusb->pending_writes);
do_gettimeofday(&now);
usec_diff =
@@ -740,7 +742,7 @@ static void xpp_send_callback(USB_PASS_CB(urb))
(now.tv_usec - xusb->last_tx.tv_usec);
if(usec_diff > xusb->max_tx_delay)
xusb->max_tx_delay = usec_diff;
- if(unlikely(usec_diff > 200)) {
+ if(unlikely(usec_diff > 500)) {
static int rate_limit;
if((rate_limit++ % 5003) == 0)
@@ -780,6 +782,7 @@ static void xpp_receive_callback(USB_PASS_CB(urb))
NOTICE("spurious URB\n");
return;
}
+ //flip_parport_bit(7);
if (urb->status) {
DBG("nonzero read bulk status received: %d\n", urb->status);
XUSB_COUNTER(xusb, RX_ERRORS)++;
@@ -874,20 +877,24 @@ static int xusb_read_proc(char *page, char **start, off_t off, int count, int *e
goto out;
// TODO: probably needs a per-xusb lock:
spin_lock_irqsave(&xusb_lock, flags);
- len += sprintf(page + len, "device: %d, #altsettings: %d, minor: %d\n"
- "\tModel Info: Bus Type=%d (%s)\n"
- "\tIn: 0x%02X - Size: %d)\n"
- "\tOut: 0x%02X - Size: %d)\n",
- xusb->udev->devnum,
- xusb->interface->num_altsetting,
+ len += sprintf(page + len, "Device: %03d/%03d\n",
+ xusb->udev->bus->busnum,
+ xusb->udev->devnum
+ );
+ len += sprintf(page + len, "Minor: %d\n"
+ "Model Info: Bus Type=%d (%s)\n",
xusb->minor,
xusb->model_info->bus_type,
- xusb->model_info->desc,
+ xusb->model_info->desc
+ );
+ len += sprintf(page + len, "Endpoints:\n"
+ "\tIn: 0x%02X - Size: %d)\n"
+ "\tOut: 0x%02X - Size: %d)\n",
xusb->endpoints[XUSB_RECV].ep_addr,
xusb->endpoints[XUSB_RECV].max_size,
xusb->endpoints[XUSB_SEND].ep_addr,
xusb->endpoints[XUSB_SEND].max_size
- );
+ );
len += sprintf(page + len, "\npending_writes=%d\n", atomic_read(&xusb->pending_writes));
len += sprintf(page + len, "max_tx_delay=%d\n", xusb->max_tx_delay);
xusb->max_tx_delay = 0;