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