Bug 3638

Summary: pci_restore_state() makes PCI1211 hang system
Product: Drivers Reporter: Matthew Garrett (mjg59-kernel)
Component: PCMCIAAssignee: 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
Anything that calls pci_restore_state() on my PCI1211 cardbus bridge results in
strange behaviour. Firstly, the next couple of kernel messages appear but are
missing every other character - blank spaces are inserted instead. Secondly, the
machine then hangs. Presumably simply restoring the contents of all the PCI
registers after S3 causes unpleasant side-effects.
Comment 1 Matthew Garrett 2005-01-30 17:21:40 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.
Comment 2 Matthew Garrett 2005-08-14 15:30:48 UTC
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.
Comment 3 Matthew Garrett 2005-08-14 18:24:11 UTC
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.
Comment 4 Dominik Brodowski 2005-11-16 14:10:02 UTC
Is this still a problem in 2.6.14?
Comment 5 Dominik Brodowski 2006-01-10 09:10:08 UTC
Could you verify whether this problem still exists in 2.6.15?
Comment 6 Dominik Brodowski 2006-03-27 13:17:49 UTC
Could you verify whether this problem still exists in 2.6.16, please?
Comment 7 Adrian Bunk 2006-07-10 13:33:23 UTC
Please reopen this bug if it's still present in kernel 2.6.17.