Correct PCI suspend and resume operations [ was Re: cirrus ich3 doesn't work after suspend to disk ]

From: Orion Hodson <orion_at_freebsd.org>
Date: Tue, 10 Jun 2003 09:44:36 -0700
/-- Mark Santcroos wrote:
| 
| I did some checking with pciconf before and after suspend and come up with
| the following "fix":
| 
| # set nambar
| pciconf -w -b pci0:31:5 0x11 0xd8
| # set nabmbar:
| pciconf -w -b pci0:31:5 0x14 0x81
| pciconf -w -b pci0:31:5 0x15 0xdc
| # set pcicmd:
| pciconf -w -b pci0:31:5 0x4 0x5

It looks like the pci configuration space state has been lost during
the suspend and resume.  This may be because the bus has removed power
from the devices attached to it on suspend.

I've been through a cross section of drivers this morning and some
explicitly save and restore the PCI configuration state space and
others don't.  The former seems like the safest path in most cases.
AFAICT, we don't common code for handling this and maybe there should
be some rather than have each driver replicate this behaviour.

- Orion
Received on Tue Jun 10 2003 - 07:44:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC