Re: [git patches] libata ACPI support

2007-02-21 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 06:49:17PM -0500, Jeff Garzik wrote:
> Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
> perform at full speed?  -git13 includes several libata changes, but does 
> not include the ACPI additions.
> 
> Since this is an ACPI execution error in the bug, that would tend to 
> point to bad BIOS tables.  But since there is a performance drop that 
> does not disappear with acpi=off, there might also be another factor, 
> unrelated to ACPI, at play here.

I've noticed on lkm another bug report which has pointed me to this:
ata_piix :00:1f.1: version 2.00ac7
ACPI: PCI Interrupt :00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
PCI: Setting latency timer of device :00:1f.1 to 64
ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001ffa0 irq 14
ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001ffa8 irq 15
scsi0 : ata_piix
ata1.00: ATA-6: ST9100824A, 3.04, max UDMA/100
ata1.00: 195371568 sectors, multi 16: LBA48
ata1.01: ATAPI, max UDMA/33
ata1.00: configured for UDMA/33
ata1.01: configured for UDMA/33

Both ports are for some reason configured as UDMA/33.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-21 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 06:49:17PM -0500, Jeff Garzik wrote:
> Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
> perform at full speed?  -git13 includes several libata changes, but does 
> not include the ACPI additions.
> 
> Since this is an ACPI execution error in the bug, that would tend to 
> point to bad BIOS tables.  But since there is a performance drop that 
> does not disappear with acpi=off, there might also be another factor, 
> unrelated to ACPI, at play here.

I have found that the issue is between git12 and git13.

I have also found another issue, not sure whether it is also presented by
git13, however in git15, IDE interrupts are no more unmasked. 

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-21 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 06:49:17PM -0500, Jeff Garzik wrote:
 Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
 perform at full speed?  -git13 includes several libata changes, but does 
 not include the ACPI additions.
 
 Since this is an ACPI execution error in the bug, that would tend to 
 point to bad BIOS tables.  But since there is a performance drop that 
 does not disappear with acpi=off, there might also be another factor, 
 unrelated to ACPI, at play here.

I have found that the issue is between git12 and git13.

I have also found another issue, not sure whether it is also presented by
git13, however in git15, IDE interrupts are no more unmasked. 

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-21 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 06:49:17PM -0500, Jeff Garzik wrote:
 Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
 perform at full speed?  -git13 includes several libata changes, but does 
 not include the ACPI additions.
 
 Since this is an ACPI execution error in the bug, that would tend to 
 point to bad BIOS tables.  But since there is a performance drop that 
 does not disappear with acpi=off, there might also be another factor, 
 unrelated to ACPI, at play here.

I've noticed on lkm another bug report which has pointed me to this:
ata_piix :00:1f.1: version 2.00ac7
ACPI: PCI Interrupt :00:1f.1[A] - GSI 18 (level, low) - IRQ 18
PCI: Setting latency timer of device :00:1f.1 to 64
ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001ffa0 irq 14
ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001ffa8 irq 15
scsi0 : ata_piix
ata1.00: ATA-6: ST9100824A, 3.04, max UDMA/100
ata1.00: 195371568 sectors, multi 16: LBA48
ata1.01: ATAPI, max UDMA/33
ata1.00: configured for UDMA/33
ata1.01: configured for UDMA/33

Both ports are for some reason configured as UDMA/33.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Alan
On Tue, 20 Feb 2007 22:47:17 +0100
Lukas Hejtmanek <[EMAIL PROTECTED]> wrote:

> Hello,
> 
> introducing SATA ACPI does not work for me (I've filled the bug
> report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
> messages, IDE performance is decreased. libata.noacpi=1 option works ok but
> the performance is still slightly degraded (about 10%).

The performance degradation appears unrelated to the ACPI errors. If you
ignore the ACPI errors something has broken ata_piix cable detection.

Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

On Tue, Feb 20, 2007 at 05:23:21PM -0500, Jeff Garzik wrote:

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).

Does performance come back if you also use acpi=off ?


It does not.

With 2.6.20-git15, hdparm -t /dev/sda says 28MB/s, 
with 2.6.20, hdparm -t /dev/sda says 32MB/s.


Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
perform at full speed?  -git13 includes several libata changes, but does 
not include the ACPI additions.


Since this is an ACPI execution error in the bug, that would tend to 
point to bad BIOS tables.  But since there is a performance drop that 
does not disappear with acpi=off, there might also be another factor, 
unrelated to ACPI, at play here.


Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 05:23:21PM -0500, Jeff Garzik wrote:
> >introducing SATA ACPI does not work for me (I've filled the bug
> >report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
> >messages, IDE performance is decreased. libata.noacpi=1 option works ok but
> >the performance is still slightly degraded (about 10%).
> 
> Does performance come back if you also use acpi=off ?

It does not.

With 2.6.20-git15, hdparm -t /dev/sda says 28MB/s, 
with 2.6.20, hdparm -t /dev/sda says 32MB/s.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 05:23:56PM -0500, Jeff Garzik wrote:
> >introducing SATA ACPI does not work for me (I've filled the bug
> >report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
> >messages, IDE performance is decreased. libata.noacpi=1 option works ok but
> >the performance is still slightly degraded (about 10%).
> 
> Also, please add hardware info (full dmesg, full lspci) to the bug.

done.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).


Also, please add hardware info (full dmesg, full lspci) to the bug.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).


Does performance come back if you also use acpi=off ?

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).


Does performance come back if you also use acpi=off ?

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

Hello,

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).


Also, please add hardware info (full dmesg, full lspci) to the bug.

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 05:23:56PM -0500, Jeff Garzik wrote:
 introducing SATA ACPI does not work for me (I've filled the bug
 report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
 messages, IDE performance is decreased. libata.noacpi=1 option works ok but
 the performance is still slightly degraded (about 10%).
 
 Also, please add hardware info (full dmesg, full lspci) to the bug.

done.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Lukas Hejtmanek
On Tue, Feb 20, 2007 at 05:23:21PM -0500, Jeff Garzik wrote:
 introducing SATA ACPI does not work for me (I've filled the bug
 report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
 messages, IDE performance is decreased. libata.noacpi=1 option works ok but
 the performance is still slightly degraded (about 10%).
 
 Does performance come back if you also use acpi=off ?

It does not.

With 2.6.20-git15, hdparm -t /dev/sda says 28MB/s, 
with 2.6.20, hdparm -t /dev/sda says 32MB/s.

-- 
Lukáš Hejtmánek
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Alan
On Tue, 20 Feb 2007 22:47:17 +0100
Lukas Hejtmanek [EMAIL PROTECTED] wrote:

 Hello,
 
 introducing SATA ACPI does not work for me (I've filled the bug
 report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
 messages, IDE performance is decreased. libata.noacpi=1 option works ok but
 the performance is still slightly degraded (about 10%).

The performance degradation appears unrelated to the ACPI errors. If you
ignore the ACPI errors something has broken ata_piix cable detection.

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [git patches] libata ACPI support

2007-02-20 Thread Jeff Garzik

Lukas Hejtmanek wrote:

On Tue, Feb 20, 2007 at 05:23:21PM -0500, Jeff Garzik wrote:

introducing SATA ACPI does not work for me (I've filled the bug
report: http://bugzilla.kernel.org/show_bug.cgi?id=8046) beside those error
messages, IDE performance is decreased. libata.noacpi=1 option works ok but
the performance is still slightly degraded (about 10%).

Does performance come back if you also use acpi=off ?


It does not.

With 2.6.20-git15, hdparm -t /dev/sda says 28MB/s, 
with 2.6.20, hdparm -t /dev/sda says 32MB/s.


Can you narrow down the -gitX release further?  i.e. does 2.6.20-git13 
perform at full speed?  -git13 includes several libata changes, but does 
not include the ACPI additions.


Since this is an ACPI execution error in the bug, that would tend to 
point to bad BIOS tables.  But since there is a performance drop that 
does not disappear with acpi=off, there might also be another factor, 
unrelated to ACPI, at play here.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[git patches] libata ACPI support

2007-02-17 Thread Jeff Garzik
This has been living in libata-dev#ALL (and thus -mm) for quite a while
now.

For both PATA and SATA, this helps at suspend/resume time.

For SATA, ACPI support mostly consists of taskfiles (ATA commands) that
the BIOS wants us to send to the system drive.  Most notably, if you
have set a hard drive password in BIOS, you cannot access your data
without ACPI support.  Given that libata has survived this long without
ACPI support, this does not appear to impact many people.

For PATA, it makes available some DMA/PIO timing functions that
occasionally cannot be found anywhere else.  There is at least one case
of this where NVIDIA needs ACPI's help to reliably handle various
DMA/PIO modes (search in lkml/linux-ide archives for "pata_acpi").

NOTE: It is difficult to tell from the diff below, but the module
parameter (or kernel command line arg) is "libata.noacpi" not the more
generic "noacpi" that the diff might mistakenly lead you to believe.
search for the associated module_param() code for further details.

Should this cause problems, we can easily turn it off.  But as months of
-mm testing seem to indicate, this hasn't caused much of a ripple, aside
from solving a few lingering problems.

Please pull from 'acpi' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git acpi

to receive the following updates:

 Documentation/kernel-parameters.txt |5 +
 drivers/ata/Kconfig |   13 +
 drivers/ata/Makefile|2 +-
 drivers/ata/libata-acpi.c   |  698 +++
 drivers/ata/libata-core.c   |   14 +
 drivers/ata/libata.h|   15 +
 include/linux/libata.h  |5 +
 7 files changed, 751 insertions(+), 1 deletions(-)
 create mode 100644 drivers/ata/libata-acpi.c

Fiodor Suietov (1):
  libata: wrong sizeof for BUFFER

Kristen Carlson Accardi (3):
  libata: ACPI and _GTF support
  libata: ACPI _SDD support
  libata: change order of _SDD/_GTF execution (resend #3)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index abd575c..5bc8970 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -48,6 +48,7 @@ parameter is applicable:
ISAPNP  ISA PnP code is enabled.
ISDNAppropriate ISDN support is enabled.
JOY Appropriate joystick support is enabled.
+   LIBATA  Libata driver is enabled
LP  Printer support is enabled.
LOOPLoopback device support is enabled.
M68kM68k architecture is enabled.
@@ -1038,6 +1039,10 @@ and is between 256 and 4096 characters. It is defined in 
the file
emulation library even if a 387 maths coprocessor
is present.
 
+   noacpi  [LIBATA] Disables use of ACPI in libata suspend/resume
+   when set.
+   Format: 
+
noaliencache[MM, NUMA] Disables the allcoation of alien caches in
the slab allocator.  Saves per-node memory, but will
impact performance on real NUMA hardware.
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 3747457..4af0a4b 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -161,6 +161,19 @@ config SATA_INTEL_COMBINED
depends on IDE=y && !BLK_DEV_IDE_SATA && (SATA_AHCI || ATA_PIIX)
default y
 
+config SATA_ACPI
+   bool
+   depends on ACPI && PCI
+   default y
+   help
+ This option adds support for SATA-related ACPI objects.
+ These ACPI objects add the ability to retrieve taskfiles
+ from the ACPI BIOS and write them to the disk controller.
+ These objects may be related to performance, security,
+ power management, or other areas.
+ You can disable this at kernel boot time by using the
+ option libata.noacpi=1
+
 config PATA_ALI
tristate "ALi PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index cd096f0..74298af 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -66,4 +66,4 @@ obj-$(CONFIG_ATA_GENERIC) += ata_generic.o
 obj-$(CONFIG_PATA_LEGACY)  += pata_legacy.o
 
 libata-objs:= libata-core.o libata-scsi.o libata-sff.o libata-eh.o
-
+libata-$(CONFIG_SATA_ACPI) += libata-acpi.o
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
new file mode 100644
index 000..b4e8be5
--- /dev/null
+++ b/drivers/ata/libata-acpi.c
@@ -0,0 +1,698 @@
+/*
+ * libata-acpi.c
+ * Provides ACPI support for PATA/SATA.
+ *
+ * Copyright (C) 2006 Intel Corp.
+ * Copyright (C) 2006 Randy Dunlap
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "libata.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define SATA_ROOT_PORT(x)  (((x) >> 16) & 

[git patches] libata ACPI support

2007-02-17 Thread Jeff Garzik
This has been living in libata-dev#ALL (and thus -mm) for quite a while
now.

For both PATA and SATA, this helps at suspend/resume time.

For SATA, ACPI support mostly consists of taskfiles (ATA commands) that
the BIOS wants us to send to the system drive.  Most notably, if you
have set a hard drive password in BIOS, you cannot access your data
without ACPI support.  Given that libata has survived this long without
ACPI support, this does not appear to impact many people.

For PATA, it makes available some DMA/PIO timing functions that
occasionally cannot be found anywhere else.  There is at least one case
of this where NVIDIA needs ACPI's help to reliably handle various
DMA/PIO modes (search in lkml/linux-ide archives for pata_acpi).

NOTE: It is difficult to tell from the diff below, but the module
parameter (or kernel command line arg) is libata.noacpi not the more
generic noacpi that the diff might mistakenly lead you to believe.
search for the associated module_param() code for further details.

Should this cause problems, we can easily turn it off.  But as months of
-mm testing seem to indicate, this hasn't caused much of a ripple, aside
from solving a few lingering problems.

Please pull from 'acpi' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git acpi

to receive the following updates:

 Documentation/kernel-parameters.txt |5 +
 drivers/ata/Kconfig |   13 +
 drivers/ata/Makefile|2 +-
 drivers/ata/libata-acpi.c   |  698 +++
 drivers/ata/libata-core.c   |   14 +
 drivers/ata/libata.h|   15 +
 include/linux/libata.h  |5 +
 7 files changed, 751 insertions(+), 1 deletions(-)
 create mode 100644 drivers/ata/libata-acpi.c

Fiodor Suietov (1):
  libata: wrong sizeof for BUFFER

Kristen Carlson Accardi (3):
  libata: ACPI and _GTF support
  libata: ACPI _SDD support
  libata: change order of _SDD/_GTF execution (resend #3)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index abd575c..5bc8970 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -48,6 +48,7 @@ parameter is applicable:
ISAPNP  ISA PnP code is enabled.
ISDNAppropriate ISDN support is enabled.
JOY Appropriate joystick support is enabled.
+   LIBATA  Libata driver is enabled
LP  Printer support is enabled.
LOOPLoopback device support is enabled.
M68kM68k architecture is enabled.
@@ -1038,6 +1039,10 @@ and is between 256 and 4096 characters. It is defined in 
the file
emulation library even if a 387 maths coprocessor
is present.
 
+   noacpi  [LIBATA] Disables use of ACPI in libata suspend/resume
+   when set.
+   Format: int
+
noaliencache[MM, NUMA] Disables the allcoation of alien caches in
the slab allocator.  Saves per-node memory, but will
impact performance on real NUMA hardware.
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 3747457..4af0a4b 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -161,6 +161,19 @@ config SATA_INTEL_COMBINED
depends on IDE=y  !BLK_DEV_IDE_SATA  (SATA_AHCI || ATA_PIIX)
default y
 
+config SATA_ACPI
+   bool
+   depends on ACPI  PCI
+   default y
+   help
+ This option adds support for SATA-related ACPI objects.
+ These ACPI objects add the ability to retrieve taskfiles
+ from the ACPI BIOS and write them to the disk controller.
+ These objects may be related to performance, security,
+ power management, or other areas.
+ You can disable this at kernel boot time by using the
+ option libata.noacpi=1
+
 config PATA_ALI
tristate ALi PATA support (Experimental)
depends on PCI  EXPERIMENTAL
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index cd096f0..74298af 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -66,4 +66,4 @@ obj-$(CONFIG_ATA_GENERIC) += ata_generic.o
 obj-$(CONFIG_PATA_LEGACY)  += pata_legacy.o
 
 libata-objs:= libata-core.o libata-scsi.o libata-sff.o libata-eh.o
-
+libata-$(CONFIG_SATA_ACPI) += libata-acpi.o
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
new file mode 100644
index 000..b4e8be5
--- /dev/null
+++ b/drivers/ata/libata-acpi.c
@@ -0,0 +1,698 @@
+/*
+ * libata-acpi.c
+ * Provides ACPI support for PATA/SATA.
+ *
+ * Copyright (C) 2006 Intel Corp.
+ * Copyright (C) 2006 Randy Dunlap
+ */
+
+#include linux/ata.h
+#include linux/delay.h
+#include linux/device.h
+#include linux/errno.h
+#include linux/kernel.h
+#include linux/acpi.h
+#include linux/libata.h
+#include linux/pci.h
+#include libata.h
+
+#include acpi/acpi_bus.h
+#include