Skip to contentSkip to conversation

PCI quirks not handled and config space differences on resume from S3

PATCH Carl-Daniel Hailfinger 5 participants 7 messages Aug 16, 2005 – Aug 19, 2005 2 messages not in the archive

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi,

it seems that PCI quirks are not handled on resume which results in all kinds of strange effects, like disappeared PCI devices.

Below is a diff between "lspci -vvvxxx" before and after resume for my SMBus device which only gets enabled by PCI quirk handling.

-0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)

-       Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
-       Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
-       Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
-       Interrupt: pin B routed to IRQ 0
-       Region 4: I/O ports at 1100 [size=32]

-00: 86 80 c3 24 01 00 80 02 03 00 05 0c 00 00 00 00
-10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-20: 01 11 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
-30: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00
-40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
+0000:00:1f.3 Class ffff: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev ff) (prog-if ff)
+ !!! Unknown header type 7f
+00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

Besides that, a number of drivers do not restore the pci config space of their associated devices properly on resume from S3.

These drivers (and associated devices) are:
- intel_agp (Host bridge: Intel Corp. 82855PM Processor to I/O Controller)
- ? (PCI bridge: Intel Corp. 82855PM Processor to AGP Controller)
- uhci_hcd (USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller)
- ? (PCI bridge: Intel Corp. 82801 PCI Bridge)
- ? (ISA bridge: Intel Corp. 82801DBM LPC Interface Controller)
- piix_ide (IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller)

Diff between "lspci -vvvxxx" before and after resume for all problematic devices on my machine is attached.

Are there any patches I can try?

Regards,
Carl-Daniel

Signature · 1 line
http://www.hailfinger.org/
lspci_afterS3 renamed from lspci_beforeS3 +32 -36
@@ -1,353 +1,349 @@
 0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 21)
 	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
 	Latency: 0
 	Region 0: Memory at e0000000 (32-bit, prefetchable)
 	Capabilities: [e4] #09 [4104]
 	Capabilities: [a0] AGP version 2.0
 		Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
-		Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=x4
+		Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>
 00: 86 80 40 33 06 01 90 20 21 00 00 06 00 00 00 00
 10: 08 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
 30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 00 02 00 00 00 00 00 00 00 00 00 00 00 27 00 00
 60: 04 08 0c 10 00 00 00 00 00 00 00 00 00 00 00 00
 70: 02 02 00 00 00 00 00 00 00 00 02 2d 71 32 40 30
 80: 71 00 80 05 00 00 00 00 00 10 01 00 00 00 00 00
-90: 10 11 11 00 01 13 11 00 41 19 00 00 00 0a 3d 00
-a0: 02 00 20 00 17 02 00 1f 04 00 00 00 00 00 00 00
+90: 10 11 11 00 01 13 11 00 41 19 00 00 00 1a 3d 00
+a0: 02 00 20 00 17 02 00 1f 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 e0 1b 20 10 00 00
 c0: 44 40 50 11 00 20 05 06 00 00 00 00 00 00 00 00
 d0: 02 28 00 0e 0b 00 00 30 00 00 31 b5 00 00 02 00
 e0: 00 00 00 00 09 a0 04 41 00 00 00 00 00 00 00 00
 f0: 00 00 01 00 74 f8 20 80 38 0f 21 00 04 00 00 00
 
 0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 21) (prog-if 00 [Normal decode])
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 	Status: Cap- 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 96
 	Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
 	I/O behind bridge: 00003000-00003fff
 	Memory behind bridge: d0100000-d01fffff
 	Prefetchable memory behind bridge: d8000000-dfffffff
 	Expansion ROM at 00003000 [disabled] [size=4K]
 	BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
 00: 86 80 41 33 07 01 a0 00 21 00 04 06 00 60 01 00
-10: 00 00 00 00 00 00 00 00 00 01 01 40 30 30 a0 22
+10: 00 00 00 00 00 00 00 00 00 01 01 40 30 30 a0 02
 20: 10 d0 10 d0 00 d8 f0 df 00 00 00 00 00 00 00 00
 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-60: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
 0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
 	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
 	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 0
 	Interrupt: pin A routed to IRQ 5
 	Region 4: I/O ports at 1800 [size=32]
 00: 86 80 c2 24 05 00 80 02 03 00 03 0c 00 00 80 00
 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 20: 01 18 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
 30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-c0: 00 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
 
 0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03) (prog-if 00 [UHCI])
 	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
 	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 0
 	Interrupt: pin B routed to IRQ 11
 	Region 4: I/O ports at 1820 [size=32]
 00: 86 80 c4 24 05 00 80 02 03 00 03 0c 00 00 00 00
 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 20: 21 18 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
 30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 02 00 00
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-c0: 00 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
 
 0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03) (prog-if 00 [UHCI])
 	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
 	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 0
 	Interrupt: pin C routed to IRQ 5
 	Region 4: I/O ports at 1840 [size=32]
 00: 86 80 c7 24 05 00 80 02 03 00 03 0c 00 00 00 00
 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 20: 41 18 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
 30: 00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00
 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-c0: 00 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
 
 0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 83) (prog-if 00 [Normal decode])
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR+
 	Latency: 0
 	Bus: primary=00, secondary=02, subordinate=0a, sec-latency=64
 	I/O behind bridge: 00004000-00004fff
 	Memory behind bridge: d0200000-d02fffff
 	Prefetchable memory behind bridge: 20000000-23ffffff
 	Expansion ROM at 00004000 [disabled] [size=4K]
 	BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
 00: 86 80 48 24 07 01 80 80 83 00 04 06 00 00 01 00
-10: 00 00 00 00 00 00 00 00 00 02 0a 40 40 40 80 02
+10: 00 00 00 00 00 00 00 00 00 02 0a 40 40 40 80 22
 20: 20 d0 20 d0 00 20 f0 23 00 00 00 00 00 00 00 00
 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00
 40: 02 28 20 00 00 00 00 00 00 00 00 00 00 00 00 00
 50: 02 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 70: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-80: 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 10 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 01 00 02 00 00 00 c0 00 00 00 00 00 00 00 00 00
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 30 48
 
 0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03)
 	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 0
 00: 86 80 cc 24 0f 00 80 02 03 00 01 06 00 00 80 00
 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 40: 01 10 00 00 10 00 00 00 00 00 00 00 00 00 00 00
 50: 00 00 00 00 00 00 00 00 81 11 00 00 10 00 00 00
 60: 05 05 05 0b 90 00 00 00 80 80 80 0b 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: ff fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 20 02 00 00 01 00 00 00 0d 00 00 00 00 00 00 00
-b0: 00 00 00 00 00 00 00 00 00 80 81 0a 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 81 0a 00 00 00 00
 c0: 00 00 00 00 80 00 00 fe 00 00 00 08 00 70 00 00
 d0: 06 28 00 00 02 cf 00 00 04 00 00 00 00 00 00 00
 e0: 10 00 00 ff 00 00 00 08 33 22 11 00 00 00 67 45
-f0: 0f 00 01 00 00 00 00 00 60 0f 03 00 00 00 80 00
+f0: 0f 00 09 00 00 00 00 00 60 0f 03 00 00 00 81 00
 
 0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 03) (prog-if 8a [Master SecP PriP])
 	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 	Latency: 0
 	Interrupt: pin A routed to IRQ 5
 	Region 0: I/O ports at <unassigned>
 	Region 1: I/O ports at <unassigned>
 	Region 2: I/O ports at <unassigned>
 	Region 3: I/O ports at <unassigned>
 	Region 4: I/O ports at 1860 [size=16]
 	Region 5: Memory at 24000000 (32-bit, non-prefetchable) [size=1K]
 00: 86 80 ca 24 07 00 80 02 03 8a 01 01 00 00 00 00
 10: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
 20: 61 18 00 00 00 00 00 24 00 00 00 00 4d 14 0c c0
 30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 00 00
-40: 07 a3 07 a3 00 00 00 00 05 00 01 02 00 00 00 00
-50: 00 00 00 00 11 14 00 00 00 00 00 00 00 00 00 00
+40: 07 a3 77 a3 00 00 00 00 0d 00 01 11 00 00 00 00
+50: 00 00 00 00 dd d4 00 00 00 00 00 00 00 00 00 00
 60: 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
 
-0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)
-	Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
-	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
-	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
-	Interrupt: pin B routed to IRQ 0
-	Region 4: I/O ports at 1100 [size=32]
-00: 86 80 c3 24 01 00 80 02 03 00 05 0c 00 00 00 00
-10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-20: 01 11 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
-30: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00
-40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
+0000:00:1f.3 Class ffff: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev ff) (prog-if ff)
+	!!! Unknown header type 7f
+00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 
#1 lore raw
Quoted 16 lines · Carl-Daniel Hailfinger

Hi,

it seems that PCI quirks are not handled on resume which results in all kinds of strange effects, like disappeared PCI devices.

Besides that, a number of drivers do not restore the pci config space of their associated devices properly on resume from S3.

These drivers (and associated devices) are:
- intel_agp (Host bridge: Intel Corp. 82855PM Processor to I/O Controller)
- ? (PCI bridge: Intel Corp. 82855PM Processor to AGP Controller)
- uhci_hcd (USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller)
- ? (PCI bridge: Intel Corp. 82801 PCI Bridge)
- ? (ISA bridge: Intel Corp. 82801DBM LPC Interface Controller)
- piix_ide (IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller)

Quoted 4 lines

Diff between "lspci -vvvxxx" before and after resume for all problematic devices on my machine is attached.

Are there any patches I can try?

The uhci-hcd driver _does_ restore the config space for its devices properly.

Quoted 19 lines

USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
Subsystem: Samsung Electronics Co Ltd: Unknown device c00c
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 5
Region 4: I/O ports at 1800 [size=32]
00: 86 80 c2 24 05 00 80 02 03 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 18 00 00 00 00 00 00 00 00 00 00 4d 14 0c c0
30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

lspci_afterS3 line 75

Quoted 3 lines
lspci_afterS3 renamed from lspci_beforeS3 +1 -1
-c0: 00 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Just because the before and after values are different doesn't mean anything is wrong. Those particular bits are set by the hardware in response to various events. They are used only by the BIOS, to provide USB keyboard and mouse services. They don't affect the device's function or the Linux driver at all.

Alan Stern

#2 lore raw
Quoted 7 lines · Alan Stern
Quoted 4 lines

Diff between "lspci -vvvxxx" before and after resume for all problematic devices on my machine is attached.

Are there any patches I can try?

The uhci-hcd driver _does_ restore the config space for its devices properly.

Apparently something is sort of wrong though, because I need to rmmod uhci_hcd and hci_usb before suspending, otherwise nasty things happen.

A message that is not in the archive (sent off-list or not yet received): 1124206957.19419.12.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/[email protected]

#4 lore raw

[Removed CC: to mailing lists for which this thread might not be appropriate]

Quoted 11 lines · Erik Slagter
Quoted 7 lines · Alan Stern
Quoted 4 lines

Diff between "lspci -vvvxxx" before and after resume for all problematic devices on my machine is attached.

Are there any patches I can try?

The uhci-hcd driver _does_ restore the config space for its devices properly.

Apparently something is sort of wrong though, because I need to rmmod uhci_hcd and hci_usb before suspending, otherwise nasty things happen.

Can you be more specific? Start with the kernel version you're using. What happens if you rmmod hci_usb and leave uhci_hcd alone? What shows up in dmesg? What shows up if you set CONFIG_USB_DEBUG?

Alan Stern

-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf

A message that is not in the archive (sent off-list or not yet received): Pine.LNX.4.44L0.0508161148570.18302-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org

#6 lore raw
Quoted 9 lines · Alan Stern
Quoted 5 lines
Quoted 2 lines

The uhci-hcd driver _does_ restore the config space for its devices properly.

Apparently something is sort of wrong though, because I need to rmmod uhci_hcd and hci_usb before suspending, otherwise nasty things happen.

Can you be more specific? Start with the kernel version you're using. What happens if you rmmod hci_usb and leave uhci_hcd alone? What shows up in dmesg? What shows up if you set CONFIG_USB_DEBUG?

Hmm, it DOES seem to work with UHCI_HCD (in other words, it works if I only have USB1.1 devices connected).

Then probably I've had problems with USB2.0 devices connected, so maybe the EHCI_HCD driver is not suspend-safe? I will try that when at home.

#7 lore raw
In reply to a message not in the archive
Quoted 11 lines · Alan Stern
Quoted 9 lines
Quoted 5 lines
Quoted 2 lines

The uhci-hcd driver _does_ restore the config space for its devices properly.

Apparently something is sort of wrong though, because I need to rmmod uhci_hcd and hci_usb before suspending, otherwise nasty things happen.

Can you be more specific? Start with the kernel version you're using. What happens if you rmmod hci_usb and leave uhci_hcd alone? What shows up in dmesg? What shows up if you set CONFIG_USB_DEBUG?

Quoted 5 lines

Hmm, it DOES seem to work with UHCI_HCD (in other words, it works if I only have USB1.1 devices connected).

Then probably I've had problems with USB2.0 devices connected, so maybe the EHCI_HCD driver is not suspend-safe? I will try that when at home.

Tried and not happening anymore. This means I have been grumpy without valid cause and you've been doing great work!

#8 lore raw
In reply to Alan Stern
Quoted 20 lines · Alan Stern
Quoted 5 lines · Carl-Daniel Hailfinger

Hi,
[...]
Besides that, a number of drivers do not restore the pci config space of their associated devices properly on resume from S3.

Quoted 7 lines

These drivers (and associated devices) are:
- uhci_hcd (USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller) [...]
Diff between "lspci -vvvxxx" before and after resume for all
problematic devices on my machine is attached.

Are there any patches I can try?

The uhci-hcd driver _does_ restore the config space for its devices properly.

Quoted 8 lines
Quoted 1 line

[lspci dump]

Just because the before and after values are different doesn't mean anything is wrong. Those particular bits are set by the hardware in response to various events. They are used only by the BIOS, to provide USB keyboard and mouse services. They don't affect the device's function or the Linux driver at all.

Thanks for the information and sorry for bothering you.

Quoted 1 line

Alan Stern

Regards,
Carl-Daniel

Signature · 1 line
http://www.hailfinger.org/