[svn-commits] sruffell: linux/trunk r6225 - /linux/trunk/drivers/dahdi/wctc4xxp/base.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Mar 23 18:49:00 CDT 2009


Author: sruffell
Date: Mon Mar 23 18:48:59 2009
New Revision: 6225

URL: http://svn.digium.com/svn-view/dahdi?view=rev&rev=6225
Log:
Optionally show total number of packets dropped when channel is closed.

Modified:
    linux/trunk/drivers/dahdi/wctc4xxp/base.c

Modified: linux/trunk/drivers/dahdi/wctc4xxp/base.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/wctc4xxp/base.c?view=diff&rev=6225&r1=6224&r2=6225
==============================================================================
--- linux/trunk/drivers/dahdi/wctc4xxp/base.c (original)
+++ linux/trunk/drivers/dahdi/wctc4xxp/base.c Mon Mar 23 18:48:59 2009
@@ -380,7 +380,6 @@
 	u16 chan_in_num;	/* DTE channel to receive from */
 	u16 chan_out_num;	/* DTE channel to send data to */
 	u32 timestamp;
-	u16 last_dte_seqno;
 	struct {
 		u8 encoder:1;	/* If we're an encoder */
 	};
@@ -1727,9 +1726,9 @@
 	spin_lock_bh(&cpvt->lock);
 	list_splice_init(&cpvt->rx_queue, &local_list);
 	dahdi_tc_clear_data_waiting(dtc);
-	cpvt->last_dte_seqno = 0;
 	spin_unlock_bh(&cpvt->lock);
 
+	memset(&cpvt->stats, 0, sizeof(cpvt->stats));
 	list_for_each_entry_safe(cmd, temp, &local_list, node) {
 		list_del(&cmd->node);
 		free_cmd(cmd);
@@ -1852,6 +1851,7 @@
 	struct channel_pvt *compl_cpvt;
 	struct channel_pvt *cpvt = dtc->pvt;
 	struct wcdte *wc = cpvt->wc;
+	int packets_received, packets_sent;
 
 	BUG_ON(!cpvt);
 	BUG_ON(!wc);
@@ -1869,6 +1869,14 @@
 		return -EINTR;
 #endif
 
+	packets_received = atomic_read(&cpvt->stats.packets_received);
+	packets_sent = atomic_read(&cpvt->stats.packets_sent);
+		
+	if ((packets_sent - packets_received) > 5) {
+		DTE_DEBUG(DTE_DEBUG_GENERAL, "%s channel %d sent %d packets and received %d packets.\n",
+			(cpvt->encoder) ? "encoder" : "decoder", 
+			cpvt->chan_out_num, packets_sent, packets_received);
+	}
 	/* Remove any packets that are waiting on the outbound queue. */
 	wctc4xxp_cleanup_channel_private(wc, dtc);
 	index = cpvt->timeslot_in_num/2;
@@ -1941,7 +1949,6 @@
 	struct tcb *cmd;
 	struct rtp_packet *packet;
 	ssize_t payload_bytes;
-	u16 rtp_eseq;
 
 	BUG_ON(!dtc);
 	BUG_ON(!cpvt);
@@ -1987,20 +1994,6 @@
 
 	atomic_inc(&cpvt->stats.packets_received);
 
-	if (!(cpvt->last_dte_seqno)) {
-		cpvt->last_dte_seqno = be16_to_cpu(packet->rtphdr.seqno);
-	} else {
-		rtp_eseq = ++cpvt->last_dte_seqno;
-		cpvt->last_dte_seqno = be16_to_cpu(packet->rtphdr.seqno);
-		if (rtp_eseq != cpvt->last_dte_seqno)
-			DTE_DEBUG(DTE_DEBUG_GENERAL,
-			 "Bad seqno from DTE! [%04X][%d][%d][%d]\n",
-			 be16_to_cpu(packet->rtphdr.seqno),
-			 (be16_to_cpu(packet->udphdr.dest) - 0x5000),
-			 be16_to_cpu(packet->rtphdr.seqno),
-			 rtp_eseq);
-	}
-
 	if (unlikely(copy_to_user(frame, &packet->payload[0], payload_bytes))) {
 		DTE_PRINTK(ERR, "Failed to copy data in %s\n", __func__);
 		free_cmd(cmd);
@@ -2078,9 +2071,8 @@
 	DTE_DEBUG(DTE_DEBUG_RTP_TX,
 	    "Sending packet of %Zu byte on channel (%p).\n", count, dtc);
 
+	atomic_inc(&cpvt->stats.packets_sent);
 	wctc4xxp_transmit_cmd(wc, cmd);
-	atomic_inc(&cpvt->stats.packets_sent);
-
 	return count;
 }
 
@@ -2148,7 +2140,8 @@
 	spin_unlock_bh(&wc->cmd_list_lock);
 
 	if (!handled) {
-		printk(KERN_INFO "Freeing unhandled response\n");
+		DTE_DEBUG(DTE_DEBUG_GENERAL, "Freeing unhandled response ch:(%04x)\n",
+			be16_to_cpu(rxhdr->channel));
 		free_cmd(cmd);
 	}
 }
@@ -3518,10 +3511,7 @@
 
 static void __devexit wctc4xxp_remove_one(struct pci_dev *pdev)
 {
-	int i;
 	struct wcdte *wc = pci_get_drvdata(pdev);
-	struct dahdi_transcoder_channel *dtc_en, *dtc_de;
-	struct channel_pvt *cpvt;
 
 	if (!wc) {
 		/* \todo print warning message here. */
@@ -3541,28 +3531,6 @@
 	}
 
 	wctc4xxp_net_unregister(wc);
-
-	if (debug) {
-		for (i = 0; i < wc->numchannels; ++i) {
-			dtc_en = &(wc->uencode->channels[i]);
-			cpvt = dtc_en->pvt;
-			DTE_DEBUG(DTE_DEBUG_GENERAL,
-			   "encoder[%d] snt = %d, rcv = %d [%d]\n", i,
-			   atomic_read(&cpvt->stats.packets_sent),
-			   atomic_read(&cpvt->stats.packets_received),
-			   atomic_read(&cpvt->stats.packets_sent) -
-			   atomic_read(&cpvt->stats.packets_received));
-
-			dtc_de = &(wc->udecode->channels[i]);
-			cpvt = dtc_de->pvt;
-			DTE_DEBUG(DTE_DEBUG_GENERAL,
-			   "decoder[%d] snt = %d, rcv = %d [%d]\n", i,
-			   atomic_read(&cpvt->stats.packets_sent),
-			   atomic_read(&cpvt->stats.packets_received),
-			   atomic_read(&cpvt->stats.packets_sent) -
-			   atomic_read(&cpvt->stats.packets_received));
-		}
-	}
 
 	/* Stop any DMA */
 	wctc4xxp_stop_dma(wc);




More information about the svn-commits mailing list