Re: broken suspend in .2.6.25-rc3 on T61p (was Re: new regression in 2.6.25-rc3: no keyboard/lid acpi events on thinkpad T61p)

Michael S. Tsirkin
2008-02-25T22:15:06Z

On Mon, Feb 25, 2008 at 11:50 PM, Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
>
> > > > commit 559bbe6cbd0d8c68d40076a5f7dc98e3bf5864b2
> > > > Author: Pavel Machek <pavel@ucw.cz>
> > > > Date: Thu Feb 21 13:56:55 2008 +0100
> > > >
> > > > power_state: get rid of write-only variable in SATA
> > >
> > > This is pretty unlikely to be it. Can you double check that this patch
> > > really breaks something?
> >
> > I did and it seems to: just reverting
> > 559bbe6cbd0d8c68d40076a5f7dc98e3bf5864b2 fixes resume for me.
> > 635adc28087ced0c843d2ecb6d4ae474d0e611cd which is
> > 559bbe6cbd0d8c68d40076a5f7dc98e3bf5864b2~1
> > also resumes fine.
>
> Hmm, I guess that should teach me about "simple cleanups".
>
> Do you use any of:
>
> ata/sata_inic162x.c
> ata/sata_nv.c
> ata/sata_sil24.c
>
> by chance?

I don't think so.
Here are the only 3 ata modules I have built:
drivers/ata/ahci.ko
drivers/ata/ata_piix.ko
drivers/ata/libata.ko

ahci.c seems to look at power_state.

static int ahci_pci_device_resume(struct pci_dev *pdev)
{
struct ata_host *host = dev_get_drvdata(&pdev->dev);
int rc;

rc = ata_pci_device_do_resume(pdev);
if (rc)
return rc;

if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) {
rc = ahci_reset_controller(host);
if (rc)
return rc;

ahci_init_controller(host);
}

ata_host_resume(host);

return 0;
}

Right?

> (Ok, the patch is very safe to revert, it was "cleanup", it fixes
> nothing).
>
>
> Pavel