Hello. Atsushi Nemoto wrote:
+static int tx4939ide_dma_test_irq(ide_drive_t *drive) +{ + ide_hwif_t *hwif = HWIF(drive); + void __iomem *base = TX4939IDE_BASE(hwif); + u16 ctl = tx4939ide_readw(base, TX4939IDE_int_ctl); + u8 dma_stat, stat; + u16 ide_int; + int found = 0; + + tx4939ide_check_error_ints(hwif, ctl); + ide_int = ctl & (TX4939IDE_INT_XFEREND | TX4939IDE_INT_HOST);
Well, since you're effectively ignoring the BUSERR interrupt, there's no point in enabling it...
The BUSERR is not ignored. tx4939ide_check_error_ints() will print a message. It would be better than just ignoring.
I mean you're not accounting it as an interrupt. It will be reported anyway when the dma_timeout() method will call this method on timeout... ah, it wouldn't be called in this case since dma_time_expiry() will most probably return -1 seeing bit 1 of DMA status register set. You're right then...
--- Atsushi Nemoto
MBR, Sergei