Re: pci-resume patch from 2.6.7-rc2 breakes S3 resume on somemachines

From: Matthias Hentges
Date: Sun Nov 21 2004 - 03:54:56 EST


Am Sonntag, den 21.11.2004, 09:27 +1100 schrieb Benjamin Herrenschmidt:
> On Sat, 2004-11-20 at 09:01 +0100, Matthias Hentges wrote:
> > Am Samstag, den 20.11.2004, 18:34 +1100 schrieb Benjamin Herrenschmidt:
> > > On Sat, 2004-11-20 at 04:36 +0100, Matthias Hentges wrote:
> > > > Am Samstag, den 20.11.2004, 02:43 +0000 schrieb Matthew Garrett:
> > > > > Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote:
> > > > >
> >
> > [...]
> >
> > > > Trying to resume with radeonfb or X (DRI or fglrx) causes the machine
> > > > to freeze upon a resume.

> > > At what point does it freeze ? Is the display back before the freeze ?
> >
> > Sadly the video *never* comes back and stays dark no matter what I try:

[...]

> > The latter shows lots of "[disabled]" entries. Is that of any use?
>
[...]

> Difficult to say at this point, the [disabled] thing are easy fixed with
> a pci_enable_device(). Unfortunately, on some machines, the firmware
> sort-of expects the kenrel driver to reboot the card from scratch...

I did some more tests today and found out that
"0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP
Controller (rev 21) (prog-if 00 [Normal decode])"

wasn't correctly resumed either.

I wrote a script to dump the pci data (from lspci -x $device). Importing
the data after a resume freezes the machine *if one is touching data
that hasn't been changed during S3*. If I only change the values which
were modified after resume, the machine does *not* freeze.

Maybe that's the problem with pci_default_resume. It looks like it is
just writing back the data it has stored before resuming. Maybe one
should only write the values which have actually changed?

Anyways, using my little script, i managed to restore the PCI data of
the "Processor to AGP Controller" and the Radeon card after a resume.

If X is running on VT7 and one suspends from VT1 and after resuming
switches back to VT7 ( after restoring the PCI data ), the backlight
goes on but the display is still empty.

Looks like I'm still missing something. To bad boot-radeon always
segsfaults :\
An int10 call after restoring the PCI data might just do the trick.
--
Matthias Hentges
Cologne / Germany

[www.hentges.net] -> PGP welcome, HTML tolerated
ICQ: 97 26 97 4 -> No files, no URL's

My OS: Debian SID. Geek by Nature, Linux by Choice

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/