[zaptel-commits] mogorman: trunk r1560 - /trunk/ztcodec_dte.c
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Mon Nov 6 14:03:05 MST 2006
Author: mogorman
Date: Mon Nov 6 15:03:05 2006
New Revision: 1560
URL: http://svn.digium.com/view/zaptel?rev=1560&view=rev
Log:
Reduces dma memory requirement and fixes multi card support
-John Sloan
Modified:
trunk/ztcodec_dte.c
Modified: trunk/ztcodec_dte.c
URL: http://svn.digium.com/view/zaptel/trunk/ztcodec_dte.c?rev=1560&r1=1559&r2=1560&view=diff
==============================================================================
--- trunk/ztcodec_dte.c (original)
+++ trunk/ztcodec_dte.c Mon Nov 6 15:03:05 2006
@@ -87,7 +87,7 @@
#define MAX_COMMAND_LEN BOOT_CMD_LEN /* Must be the larger of BOOT_CMD_LEN or OTHER_CMD_LEN */
-#define ERING_SIZE (NUM_CHANNELS * 2) /* Maximum ring size */
+#define ERING_SIZE (NUM_CHANNELS / 2) /* Maximum ring size */
#define SFRAME_SIZE MAX_COMMAND_LEN
@@ -264,6 +264,9 @@
volatile unsigned int *writechunk; /* Double-word aligned write memory */
volatile unsigned int *readchunk; /* Double-word aligned read memory */
volatile unsigned int *descripchunk; /* Descriptors */
+
+ struct zt_transcoder *uencode;
+ struct zt_transcoder *udecode;
};
struct wcdte_desc {
@@ -661,7 +664,7 @@
if ((rcodec == 0x00) || (rcodec == 0x08)) /* ulaw or alaw (decoders) */
{
- ztc = &(udecode->channels[ztc_ndx]);
+ ztc = &(wc->udecode->channels[ztc_ndx]);
zth = ztc->tch;
st = ztc->pvt;
@@ -679,7 +682,7 @@
if ((rcodec == 0x04) || (rcodec == 0x12)) /* g.723 or g.729 (encoders) */
{
- ztc = &(uencode->channels[ztc_ndx]);
+ ztc = &(wc->uencode->channels[ztc_ndx]);
zth = ztc->tch;
st = ztc->pvt;
@@ -1052,8 +1055,8 @@
/* Set reset */
wcdte_setctl(wc, 0x00A0, 0x04000000);
- /* Wait 300msec to ensure processor reset */
- mdelay(300);
+ /* Wait 1000msec to ensure processor reset */
+ mdelay(1000);
/* Clear reset */
wcdte_setctl(wc, 0x00A0, 0x04080000);
@@ -1303,6 +1306,9 @@
uencode->channels[x].pvt = encoders + x;
udecode->channels[x].pvt = decoders + x;
}
+
+ wc->uencode = uencode;
+ wc->udecode = udecode;
zt_transcoder_register(uencode);
zt_transcoder_register(udecode);
@@ -1402,6 +1408,14 @@
struct wcdte *wc = pci_get_drvdata(pdev);
if (wc) {
+
+ zt_transcoder_unregister(wc->udecode);
+ zt_transcoder_unregister(wc->uencode);
+ zt_transcoder_free(wc->uencode);
+ zt_transcoder_free(wc->udecode);
+ vfree(wc->uencode->channels[0].pvt);
+ vfree(wc->udecode->channels[0].pvt);
+
/* Stop any DMA */
wcdte_stop_dma(wc);
@@ -1456,8 +1470,9 @@
void ztdte_cleanup(void)
{
- int i;
-
+// int i;
+
+#if 0
if (debug)
{
for(i = 0; i < NUM_CHANNELS; i++)
@@ -1466,15 +1481,10 @@
printk("decoder[%d] packets_sent = %d, packets_received = %d [%d]\n", i, decoders[i].packets_sent, decoders[i].packets_received, decoders[i].packets_sent - decoders[i].packets_received);
}
}
+#endif
pci_unregister_driver(&wcdte_driver);
- zt_transcoder_unregister(udecode);
- zt_transcoder_unregister(uencode);
- zt_transcoder_free(uencode);
- zt_transcoder_free(udecode);
- vfree(encoders);
- vfree(decoders);
printk("Zaptel DTE (G.729/G.723) Transcoder support unloaded.\n");
}
More information about the zaptel-commits
mailing list