Hello, Shaohua Li wrote: > + /* channel first and then drives for power on and verse versa for power off */ > + if (state.event == PM_EVENT_ON) > + acpi_bus_set_power(ap->acpi_handle, ACPI_STATE_D0); > + > + if (ap->flags & ATA_FLAG_SLAVE_POSS) > + max_devices++; ata_port_max_devices()? > Index: linux/drivers/ata/libata-eh.c > =================================================================== > --- linux.orig/drivers/ata/libata-eh.c 2007-09-14 10:28:25.000000000 +0800 > +++ linux/drivers/ata/libata-eh.c 2007-09-21 08:56:40.000000000 +0800 > @@ -2349,6 +2349,7 @@ static void ata_eh_handle_port_suspend(s > if (ap->ops->port_suspend) > rc = ap->ops->port_suspend(ap, ap->pm_mesg); > > + ata_acpi_set_state(ap, PMSG_SUSPEND); > out: > /* report result */ > spin_lock_irqsave(ap->lock, flags); > @@ -2394,6 +2395,8 @@ static void ata_eh_handle_port_resume(st > > WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED)); > > + ata_acpi_set_state(ap, PMSG_ON); > + > if (ap->ops->port_resume) > rc = ap->ops->port_resume(ap); Can these be moved into ata_acpi_on_suspend() and ata_acpi_on_resume()? Or do they have to be placed on the other side of ->port_suspend/resume callbacks? Thanks. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html