Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 02 Jan 2005 19:56:26 -0800
From:      Nate Lawson <nate@root.org>
To:        Sam Leffler <sam@errno.com>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: ACPI C3 patch for atheros
Message-ID:  <41D8C26A.8030105@root.org>
In-Reply-To: <41D8B6DF.7040703@errno.com>
References:  <200501021735.j02HZWAs017587@sana.init-main.com> <41D8B4D2.4050700@root.org> <41D8B6DF.7040703@errno.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Sam Leffler wrote:
> Lots of old code here; at the time I cribbed the suspend-resume code I 
> don't believe the pci registers were saved for drivers.
> 
> Here's the code from which the change originated:
> 
>  >        /*
>  >>          * Suspend/Resume resets the PCI configuration space, so we 
> have to
>  >>          * re-disable the RETRY_TIMEOUT register (0x41) to keep
>  >>          * PCI Tx retries from interfering with C3 CPU state
>  >>          *
>  >>          * Code taken from ipw2100 driver - jg
>  >>          */
>  >>         pci_read_config_dword(pdev, 0x40, &val);
>  >>         if ((val & 0x0000ff00) != 0)
>  >>                 pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
> 
> 
> I was waiting for a reply from Warner about whether or not this belonged 
> in the driver or if the pci layer should be handling this.

If the comment is correct and the value is only lost due to 
suspend/resume, this should already be covered by us saving/restoring 
config registers although I believe we only save the normal registers 
(first 64 bytes).  Since RETRY_TIMEOUT is beyond that range, it's 
probably not currently saved.

In any case, I'd prefer we fix pci_cfg_save/restore() instead of doing 
this in the driver.  Overall, it would be useful to analyze and improve 
coverage of what values we save and restore from config space.  We 
definitely need to cover type 1 and 2 (bridge) devices as well.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41D8C26A.8030105>