bk://gkernel.bkbits.net/libata-2.6
russb@emc.com[jgarzik]|ChangeSet|20050323042412|16983 russb

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/22 23:24:12-05:00 russb@emc.com 
#   [PATCH] libata: support descriptor sense in ctrl page
#   
#   libata must support the descriptor format sense blocks as they
#   are required to properly report results of ATA pass through
#   commands as well as other SCSI commands reporting 48b LBAs.
#   This patch adjusts the control mode page to properly report
#   this.
#   
#   Signed-off-by: Brett Russ <russb@emc.com>
#   Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
# 
# drivers/scsi/libata-scsi.c
#   2005/03/17 17:16:58-05:00 russb@emc.com +6 -1
#   libata: support descriptor sense in ctrl page
# 
# ChangeSet
#   2005/03/22 15:41:49-05:00 jason.d.gaston@intel.com 
#   [PATCH] SATA AHCI correction Intel ICH7R
#   
#   This patch removes an invalid DID for Intel ICH7R from the ahci.c
#   SATA AHCI driver.
#   
#   Signed-off-by: Jason Gaston <Jason.d.gaston@intel.com>
#   Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
# 
# drivers/scsi/ahci.c
#   2005/03/07 15:10:45-05:00 jason.d.gaston@intel.com +0 -2
#   SATA AHCI correction Intel ICH7R - 2.6.11
# 
diff -Nru a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
--- a/drivers/scsi/ahci.c	2005-03-23 19:29:15 -08:00
+++ b/drivers/scsi/ahci.c	2005-03-23 19:29:15 -08:00
@@ -253,8 +253,6 @@
 	  board_ahci }, /* ICH7 */
 	{ PCI_VENDOR_ID_INTEL, 0x27c5, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
 	  board_ahci }, /* ICH7M */
-	{ PCI_VENDOR_ID_INTEL, 0x27c2, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-	  board_ahci }, /* ICH7R */
 	{ PCI_VENDOR_ID_INTEL, 0x27c3, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
 	  board_ahci }, /* ICH7R */
 	{ PCI_VENDOR_ID_AL, 0x5288, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
diff -Nru a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c
--- a/drivers/scsi/libata-scsi.c	2005-03-23 19:29:15 -08:00
+++ b/drivers/scsi/libata-scsi.c	2005-03-23 19:29:15 -08:00
@@ -1038,7 +1038,12 @@
 
 static unsigned int ata_msense_ctl_mode(u8 **ptr_io, const u8 *last)
 {
-	const u8 page[] = {0xa, 0xa, 2, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 30};
+	const u8 page[] = {0xa, 0xa, 6, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 30};
+
+	/* byte 2: set the descriptor format sense data bit (bit 2)
+	 * since we need to support returning this format for SAT
+	 * commands and any SCSI commands against a 48b LBA device.
+	 */
 
 	ata_msense_push(ptr_io, last, page, sizeof(page));
 	return sizeof(page);