summaryrefslogtreecommitdiff
path: root/wctdm.c
diff options
context:
space:
mode:
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 56d91b7..2e81dd9 100755
--- a/wctdm.c
+++ b/wctdm.c
@@ -241,6 +241,7 @@ 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_reset_tdm(struct wcfxs *wc);
static void wcfxs_restart_dma(struct wcfxs *wc);
static void wcfxs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
@@ -1086,6 +1087,10 @@ static void wcfxs_start_dma(struct wcfxs *wc)
static void wcfxs_stop_dma(struct wcfxs *wc)
{
outb(0x00, wc->ioaddr + WC_OPER);
+}
+
+static void wcfxs_reset_tdm(struct wcfxs *wc)
+{
/* Reset TDM */
outb(0x0f, wc->ioaddr + WC_CNTL);
}
@@ -1215,6 +1220,7 @@ static void __devexit wcfxs_remove_one(struct pci_dev *pdev)
/* Stop any DMA */
wcfxs_stop_dma(wc);
+ wcfxs_reset_tdm(wc);
/* In case hardware is still there */
wcfxs_disable_interrupts(wc);