Messages in this thread Patch in this message | | | Date | Mon, 24 Mar 2003 16:41:53 +0000 | From | davej@codemonk ... | Subject | ide-scsi quirk. |
| |
Alan, as mentioned a few weeks back, something similar to this went into 2.4 (I munged this one a bit).
It deals with the issue of DMA starting before the drive is ready iirc.
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/scsi/ide-scsi.c linux-2.5/drivers/scsi/ide-scsi.c --- bk-linus/drivers/scsi/ide-scsi.c 2003-02-04 12:58:09.000000000 +0000 +++ linux-2.5/drivers/scsi/ide-scsi.c 2003-03-17 23:42:33.000000000 +0000 @@ -78,6 +78,7 @@ typedef struct idescsi_pc_s { #define PC_DMA_IN_PROGRESS 0 /* 1 while DMA in progress */ #define PC_WRITING 1 /* Data direction */ #define PC_TRANSFORM 2 /* transform SCSI commands */ +#define PC_DMA_OK 4 /* Use DMA */ /* * SCSI command transformation layer @@ -494,6 +495,10 @@ static ide_startstop_t idescsi_transfer_ ide_set_handler(drive, &idescsi_pc_intr, get_timeout(pc), NULL); /* Send the actual packet */ atapi_output_bytes(drive, scsi->pc->c, 12); + if (test_bit (PC_DMA_OK, &pc->flags)) { + set_bit (PC_DMA_IN_PROGRESS, &pc->flags); + (void) (HWIF(drive)->ide_dma_begin(drive)); + } return ide_started; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |