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

From: Benjamin Herrenschmidt
Date: Sun Nov 21 2004 - 16:41:56 EST



> 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.

That "update only what changed" makes little sense ... can you send me
the lspci state of the Intel bridge before you try to resume it ? I
suspect our pci_restore_state() should be smarter, that is check if
something changed (a BAR), if yes, switch mem/io off, restore the BARs,
then switch mem/io back on...

Ben.


-
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/