summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-07-19 12:57:43 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-07-19 12:57:43 +0200
commitaf3da99dd50e47b93d0aa54b531b9dabaa4800af (patch)
treeff4fc75660e236a51c35072a85251b730c2b892a
parent1f7b01fee9c4a92dbb3bf44ded43ff2e5825bfbe (diff)
debian/patches/13_ide_dma.patch: Do not stop DMA before reading its status.
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/13_ide_dma.patch10
2 files changed, 2 insertions, 10 deletions
diff --git a/debian/changelog b/debian/changelog
index 78c27e2..58a1791 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
gnumach (2:1.3.99.dfsg.git20110609-2) UNRELEASED; urgency=low
* debian/control: build udebs on hurd-i386 only.
+ * debian/patches/13_ide_dma.patch: Do not stop DMA before reading its
+ status.
-- Samuel Thibault <sthibault@debian.org> Sat, 02 Jul 2011 22:42:56 +0200
diff --git a/debian/patches/13_ide_dma.patch b/debian/patches/13_ide_dma.patch
index c3252e2..ff1dacd 100644
--- a/debian/patches/13_ide_dma.patch
+++ b/debian/patches/13_ide_dma.patch
@@ -235,16 +235,6 @@ Index: b/linux/src/drivers/block/triton.c
/*
* dma_intr() is the handler for disk read/write DMA interrupts
-@@ -161,8 +111,8 @@ static void dma_intr (ide_drive_t *drive
- struct request *rq = HWGROUP(drive)->rq;
- unsigned short dma_base = HWIF(drive)->dma_base;
-
-- dma_stat = inb(dma_base+2); /* get DMA status */
- outb(inb(dma_base)&~1, dma_base); /* stop DMA operation */
-+ dma_stat = inb(dma_base+2); /* get DMA status */
- stat = GET_STAT(); /* get drive status */
- if (OK_STAT(stat,DRIVE_READY,drive->bad_wstat|DRQ_STAT)) {
- if ((dma_stat & 7) == 4) { /* verify good DMA status */
@@ -244,23 +194,57 @@ static int build_dmatable (ide_drive_t *
return 1; /* let the PIO routines handle this weirdness */
}