Bug 3638
Summary: | pci_restore_state() makes PCI1211 hang system | ||
---|---|---|---|
Product: | Drivers | Reporter: | Matthew Garrett (mjg59-kernel) |
Component: | PCMCIA | Assignee: | Dominik Brodowski (linux) |
Status: | REJECTED INSUFFICIENT_DATA | ||
Severity: | normal | CC: | bunk |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.9-rc4 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Matthew Garrett
2004-10-25 05:58:14 UTC
Still present in 2.6.10. If I comment out pci_restore_state in yenta_socket's resume function, the machine resumes successfully. I then need to do the following: setpci -s 0a.0 8c.b=72,12,2c,01 setpci -s 0a.0 80.b=60,f0,64,00 setpci -s 0a.0 90.b=c0,82,64,61 at which point modprobing yenta_socket will work and I can use PCMCIA correctly. The failure only occurs when register 3e (part of the bridge control register) is written. If I hack the resume function to avoid this register being written, the system resumes. I still need to call the setpci functions mentioned previously, though. This seems to be because the config_readl() calls in ti_save_state are returning 0xffffffff rather than any useful values. The same calls in the init code work fine. I have absolutely no idea what might be going on here - lspci works fine immediately before the suspend and happily shows me the registers. Is this still a problem in 2.6.14? Could you verify whether this problem still exists in 2.6.15? Could you verify whether this problem still exists in 2.6.16, please? Please reopen this bug if it's still present in kernel 2.6.17. |