From: Randy Dunlap <randy_d_dunlap@linux.intel.com>

Add calls to ACPI methods for SATA drives.

Signed-off-by: Randy Dunlap <randy_d_dunlap@linux.intel.com>
---
 drivers/scsi/libata-core.c |    4 ++++
 drivers/scsi/libata.h      |   26 ++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)

--- linux-2615-rc5g3.orig/drivers/scsi/libata-core.c
+++ linux-2615-rc5g3/drivers/scsi/libata-core.c
@@ -1345,6 +1345,8 @@ void ata_dev_config(struct ata_port *ap,
 
 	if (ap->ops->dev_config)
 		ap->ops->dev_config(ap, &ap->device[i]);
+
+	do_drive_SDD(ap, i);
 }
 
 /**
@@ -1784,6 +1786,8 @@ static void ata_set_mode(struct ata_port
 	if (ap->flags & ATA_FLAG_PORT_DISABLED)
 		return;
 
+	do_drive_update_taskfiles(ap);
+
 	if (ap->ops->post_set_mode)
 		ap->ops->post_set_mode(ap);
 
--- linux-2615-rc5g3.orig/drivers/scsi/libata.h
+++ linux-2615-rc5g3/drivers/scsi/libata.h
@@ -53,6 +53,32 @@ extern int ata_task_ioctl(struct scsi_de
 extern int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg);
 
 
+/* ata_acpi.c */
+#ifdef CONFIG_SCSI_SATA_ACPI
+extern int do_drive_SDD(struct ata_port *ap, unsigned int ix);
+extern int do_drive_get_GTF(struct ata_port *ap, struct ata_device *atadev);
+extern int do_drive_set_taskfiles(struct ata_port *ap, struct ata_device *atadev);
+extern int do_drive_update_taskfiles(struct ata_port *ap);
+#else
+static inline int do_drive_SDD(struct ata_port *ap, unsigned int ix)
+{
+	return 0;
+}
+static inline int do_drive_get_GTF(struct ata_port *ap, struct ata_device *atadev)
+{
+	return 0;
+}
+static inline int do_drive_set_taskfiles(struct ata_port *ap, struct ata_device *atadev)
+{
+	return 0;
+}
+static inline int do_drive_update_taskfiles(struct ata_port *ap)
+{
+	return 0;
+}
+#endif
+
+
 /* libata-scsi.c */
 extern void ata_scsi_scan_host(struct ata_port *ap);
 extern int ata_scsi_error(struct Scsi_Host *host);
