Re: [linux-usb-devel] PCI quirks not handled and config spacedifferences on resume from S3

From: Alan Stern
Date: Tue Aug 16 2005 - 10:37:35 EST


On Tue, 16 Aug 2005, Carl-Daniel Hailfinger wrote:

> 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)
>
> 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.


> 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

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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/