[svn-commits] sruffell: branch sruffell/zaptel-1.4-transcoder r4242 - /team/sruffell/zaptel...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu May 8 00:47:32 CDT 2008
Author: sruffell
Date: Thu May 8 00:47:30 2008
New Revision: 4242
URL: http://svn.digium.com/view/zaptel?view=rev&rev=4242
Log:
Some fixes for 64-bit systems.
Modified:
team/sruffell/zaptel-1.4-transcoder/kernel/wctc4xxp/base.c
Modified: team/sruffell/zaptel-1.4-transcoder/kernel/wctc4xxp/base.c
URL: http://svn.digium.com/view/zaptel/team/sruffell/zaptel-1.4-transcoder/kernel/wctc4xxp/base.c?view=diff&rev=4242&r1=4241&r2=4242
==============================================================================
--- team/sruffell/zaptel-1.4-transcoder/kernel/wctc4xxp/base.c (original)
+++ team/sruffell/zaptel-1.4-transcoder/kernel/wctc4xxp/base.c Thu May 8 00:47:30 2008
@@ -452,6 +452,7 @@
spin_lock_irqsave(&dr->lock, flags);
d = dte_descriptor(dr, tail);
+ WARN_ON(!d);
if (d->buffer1) {
spin_unlock_irqrestore(&dr->lock, flags);
/* Do not overwrite a buffer that is still in progress. */
@@ -459,7 +460,7 @@
}
d->des1 &= cpu_to_le32(~(BUFFER1_SIZE_MASK));
d->des1 |= cpu_to_le32(len & BUFFER1_SIZE_MASK);
- d->buffer1 = dma_map_single(&dr->pdev->dev, c->cmd,
+ d->buffer1 = pci_map_single(dr->pdev, &c->cmd[0],
SFRAME_SIZE, dr->direction);
SET_OWNED(d); /* That's it until the hardware is done with it. */
@@ -483,7 +484,7 @@
spin_lock_irqsave(&dr->lock, flags);
d = dte_descriptor(dr, head);
if (d->buffer1 && !OWNED(d)) {
- dma_unmap_single(&dr->pdev->dev, d->buffer1,
+ pci_unmap_single(dr->pdev, d->buffer1,
SFRAME_SIZE, dr->direction);
c = dr->pending[head];
WARN_ON(!c);
@@ -1000,10 +1001,10 @@
}
WARN_ON(compl_ztc->chan_built); /* It shouldn't already have been built... */
compl_ztc->chan_built = 1;
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Marking (%08x)->chan_built = %d\n", (u32)compl_ztc, compl_ztc->chan_built);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Marking (%p)->chan_built = %d\n", compl_ztc, compl_ztc->chan_built);
compl_ztc->built_fmts = ztc->dstfmt | ztc->srcfmt;
compl_cpvt = compl_ztc->pvt;
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "ztc: %08x is the complement to %08x\n", (u32)compl_ztc, (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "ztc: %p is the complement to %p\n", compl_ztc, ztc);
compl_cpvt->chan_in_num = cpvt->chan_out_num;
compl_cpvt->chan_out_num = cpvt->chan_in_num;
wcdte_cleanup_channel_private(wc, compl_cpvt);
@@ -1026,17 +1027,17 @@
BUG_ON(!wc);
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Entering %s for channel %08x.\n", __FUNCTION__, (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Entering %s for channel %p.\n", __FUNCTION__, ztc);
if (down_interruptible(&wc->chansem)) {
HERE();
return -EINTR;
}
/* If the channel is already built then we're done. */
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%08x)->chan_built = %d\n", (u32)ztc, ztc->chan_built);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%p)->chan_built = %d\n", ztc, ztc->chan_built);
if (ztc->chan_built) {
up(&wc->chansem);
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Allocating channel %08x which is already built.\n", (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Allocating channel %p which is already built.\n", ztc);
LEAVING();
return 0;
}
@@ -1044,7 +1045,7 @@
/* Anything on the rx queue now is old news... */
wcdte_cleanup_channel_private(wc, cpvt);
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Allocating a new channel: %08x.\n", (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Allocating a new channel: %p.\n", ztc);
dte_srcfmt = wcdte_zapfmt_to_dtefmt(ztc->srcfmt);
dte_dstfmt = wcdte_zapfmt_to_dtefmt(ztc->dstfmt);
@@ -1120,17 +1121,17 @@
return res;
}
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Releasing channel: %08x\n", (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "Releasing channel: %p\n", ztc);
/* Mark this channel as not built */
ztc->chan_built = 0;
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%08x)->chan_built = %d\n", (u32)ztc, ztc->chan_built);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%p)->chan_built = %d\n", ztc, ztc->chan_built);
ztc->built_fmts = 0;
cpvt->chan_in_num = INVALID;
cpvt->chan_out_num = INVALID;
/* Mark the channel complement as not built */
compl_ztc->chan_built = 0;
- DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%08x)->chan_built = %d\n", (u32)compl_ztc, compl_ztc->chan_built);
+ DTE_DEBUG(wc, DTE_DEBUG_CHANNEL_SETUP, "(%p)->chan_built = %d\n", compl_ztc, compl_ztc->chan_built);
compl_ztc->built_fmts = 0;
compl_cpvt = compl_ztc->pvt;
compl_cpvt->chan_in_num = INVALID;
@@ -1274,7 +1275,7 @@
if (unlikely(count > SFRAME_SIZE - CMD_MSG_IP_UDP_RTP_LEN)) {
DTE_DEBUG(wc, DTE_DEBUG_GENERAL,
- "Cannot transcode packet of %d bytes. This exceeds the " \
+ "Cannot transcode packet of %Zu bytes. This exceeds the " \
"maximum size of %d bytes.\n", count,
SFRAME_SIZE - CMD_MSG_IP_UDP_RTP_LEN);
return -EINVAL;
@@ -1284,7 +1285,7 @@
if (G723_LENGTH != count) {
DTE_DEBUG(wc, DTE_DEBUG_GENERAL,
"Trying to transcode packet into G723 format " \
- "that is %d bytes instead of the expected " \
+ "that is %Zu bytes instead of the expected " \
"%d bytes.\n", count, G723_LENGTH);
return -EINVAL;
}
@@ -1313,7 +1314,7 @@
cmd->cmdlen = CMD_MSG_IP_UDP_RTP_LEN + count;
DTE_DEBUG(wc, DTE_DEBUG_RTP_TX,
- "Sending packet of %d byte on channel (%08x).\n", count, (u32)ztc);
+ "Sending packet of %Zu byte on channel (%p).\n", count, ztc);
dte_transmit_cmd(wc, cmd);
atomic_inc(&cpvt->stats.packets_sent);
LEAVING();
@@ -1445,8 +1446,8 @@
/* Just for debugging purposes. */
rlen = (cmd->cmd[39] | (cmd->cmd[38] << 8)) - 20;
- DTE_DEBUG(wc, DTE_DEBUG_RTP_RX, "Adding RTP packet of length %d to channel: %08x\n",
- rlen, (u32)ztc);
+ DTE_DEBUG(wc, DTE_DEBUG_RTP_RX, "Adding RTP packet of length %d to channel: %p\n",
+ rlen, ztc);
spin_lock_irqsave(&cpvt->lock, flags);
list_add_tail(&cmd->node, &cpvt->rx_queue);
spin_unlock_irqrestore(&cpvt->lock, flags);
@@ -2555,10 +2556,18 @@
/* Keep track of whether we need to free the region */
if (!request_region(wc->iobase, 0xff, wc->board_name)) {
/* \todo put in error message. */
+ DTE_PRINTK(wc, WARNING,
+ "Failed to reserve the I/O ports for this device.\n");
return -EIO;
}
init_waitqueue_head(&wc->regq);
+
+ if (pci_set_dma_mask(wc->pdev, DMA_32BIT_MASK)) {
+ release_region(wc->iobase, 0xff);
+ DTE_PRINTK(wc, WARNING, "No suitable DMA available.\n");
+ return -EIO;
+ }
if ((res = dte_initialize_descriptor_ring(wc->pdev, &wc->txd,
0xe0800000,
More information about the svn-commits
mailing list