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)

Pavel Machek
2008-02-25T22:20:00Z

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
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html