diff options
Diffstat (limited to 'wctdm.c')
-rwxr-xr-x | wctdm.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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); |