diff options
author | Tejun Heo <htejun@gmail.com> | 2007-05-14 14:28:16 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-07-09 12:17:31 -0400 |
commit | fafbae87db88a73b166d3bc3294d209207f27056 (patch) | |
tree | 158217a52a396b2be110688f23eacbe25cf1c2d7 /drivers/ata/libata-core.c | |
parent | 7dcca30a32aadb0520417521b0c44f42d09fe05c (diff) |
libata-acpi: implement ata_acpi_associate()
* Add acpi_handle to ata_host and ata_port. Rename
ata_device->obj_handle to ->acpi_handle and move it above such that
it doesn't get cleared on reconfiguration.
* Replace ACPI node association which ata_acpi_associate() which is
called once during host initialization. Unlike the previous
implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to
choose between IDE or SATA ACPI hierarchy and uses simple child look
up instead of recursive walk to match the nodes. This is way safer
and simpler. Please read the following message for more info.
http://article.gmane.org/gmane.linux.ide/17554
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 981b397cb46b..5a46cdebc588 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -6293,6 +6293,9 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) | |||
6293 | if (rc) | 6293 | if (rc) |
6294 | return rc; | 6294 | return rc; |
6295 | 6295 | ||
6296 | /* associate with ACPI nodes */ | ||
6297 | ata_acpi_associate(host); | ||
6298 | |||
6296 | /* set cable, sata_spd_limit and report */ | 6299 | /* set cable, sata_spd_limit and report */ |
6297 | for (i = 0; i < host->n_ports; i++) { | 6300 | for (i = 0; i < host->n_ports; i++) { |
6298 | struct ata_port *ap = host->ports[i]; | 6301 | struct ata_port *ap = host->ports[i]; |