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:36:56Z

On Tue, Feb 26, 2008 at 12:20 AM, 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);
> > }
>
> > Right?
>
> Hmm, mystery partly solved... as you guessed it, this piece of code
> was not in my tree.
>
> (still, how can this cause autoresume after 5 seconds is a mystery to
> me).
>
>
> Pavel

Maybe it doesn't. Andrew saw the autoresume on -rc[2,3], I didn't.
For me, it causes resume to fail.