summaryrefslogtreecommitdiff
path: root/wctdm.c
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-04-09 22:22:36 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-04-09 22:22:36 +0000
commit32903052e8fb02863c9f45ea64f13852cdd91030 (patch)
tree2c5392dd821dca47a6329089481b282f711c34eb /wctdm.c
parentde772255ed93b1daba3e7268b5847d4f0c2e7973 (diff)
Update FXS to also restart on a master abort
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@164 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wctdm.c')
-rwxr-xr-xwctdm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/wctdm.c b/wctdm.c
index a6fc753..da6cee6 100755
--- a/wctdm.c
+++ b/wctdm.c
@@ -240,6 +240,9 @@ static inline void wcfxs_receiveprep(struct wcfxs *wc, unsigned char ints)
static inline void wcfxs_check_hook(struct wcfxs *wc, int card);
+static void wcfxs_stop_dma(struct wcfxs *wc);
+static void wcfxs_start_dma(struct wcfxs *wc);
+
static void wcfxs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
struct wcfxs *wc = dev_id;
@@ -253,7 +256,10 @@ static void wcfxs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
return;
if (ints & 0x10) {
+ /* Restart DMA */
printk("PCI Master abort\n");
+ wcfxs_stop_dma(wc);
+ wcfxs_start_dma(wc);
return;
}