Below is a resend of a patch which gets the read verify command working. I moved the patch to the libata-2.6 tree since that seems to be where Albert's patch ended up, so let's keep them together. Sending as an attachment to avoid mailer interference.

Signed-off-by: Brett Russ <[EMAIL PROTECTED]>
===== drivers/scsi/libata-scsi.c 1.63 vs edited =====
--- 1.63/drivers/scsi/libata-scsi.c	2005-02-01 22:24:53 -05:00
+++ edited/drivers/scsi/libata-scsi.c	2005-02-02 08:03:50 -05:00
@@ -488,13 +488,18 @@
 	}
 
 	if (lba48) {
+		tf->command = ATA_CMD_VERIFY_EXT;
+
 		tf->hob_nsect = (n_sect >> 8) & 0xff;
 
 		tf->hob_lbah = (sect >> 40) & 0xff;
 		tf->hob_lbam = (sect >> 32) & 0xff;
 		tf->hob_lbal = (sect >> 24) & 0xff;
-	} else
+	} else {
+		tf->command = ATA_CMD_VERIFY;
+
 		tf->device |= (sect >> 24) & 0xf;
+	}
 
 	tf->nsect = n_sect & 0xff;
 
===== include/linux/ata.h 1.21 vs edited =====
--- 1.21/include/linux/ata.h	2004-11-06 13:44:16 -05:00
+++ edited/include/linux/ata.h	2005-02-02 08:15:49 -05:00
@@ -123,6 +123,8 @@
 	ATA_CMD_PIO_WRITE_EXT	= 0x34,
 	ATA_CMD_SET_FEATURES	= 0xEF,
 	ATA_CMD_PACKET		= 0xA0,
+	ATA_CMD_VERIFY		= 0x40,
+	ATA_CMD_VERIFY_EXT	= 0x42,
 
 	/* SETFEATURES stuff */
 	SETFEATURES_XFER	= 0x03,

Reply via email to