Re: [PATCH]libata-acpi: add ACPI _PSx method

Tejun Heo
2007-09-21T02:20:49Z

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