diff mbox

xHCI and suspend/resume

Message ID BANLkTi=XzZsQeBR8-sm9gLjh_Tbyp5LWMg@mail.gmail.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Dwight Schauer May 13, 2011, 11:16 p.m. UTC
On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Friday, May 13, 2011, Dwight Schauer wrote:
>> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > On Friday, May 13, 2011, Dwight Schauer wrote:
>> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
>> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
>> >> >> > For new readers: The problem is that an xHCI USB host controller does
>> >> >> > not wake up a suspended system properly.
>> >> >> >
>> >> >> > On Thu, 12 May 2011, Dwight Schauer wrote:
>> >> >> >
>> >> >> > > Thanks Alan.
>> >> >> > >
>> >> >> > > OK, this is with 2.6.39-rc7-gregkh
>> >> >> > >
>> >> >> > > 05:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host
>> >> >> > > Controller (rev 03) (prog-if 30 [XHCI])
>> >> >> > >         Subsystem: Melco Inc Device 0241
>> >> >> > >         Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
>> >> >> > > ParErr- Stepping- SERR+ FastB2B- DisINTx+
>> >> >> > >         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
>> >> >> > > <TAbort- <MAbort- >SERR- <PERR- INTx-
>> >> >> > >         Interrupt: pin A routed to IRQ 17
>> >> >> > >         Region 0: Memory at fe9fe000 (64-bit, non-prefetchable) [size=8K]
>> >> >> > >         Capabilities: [50] Power Management version 3
>> >> >> > >                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
>> >> >> > > PME(D0+,D1-,D2-,D3hot+,D3cold-)
>> >> >> > >                 Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME+
>> >> >> >
>> >> >> > That's the important part for power management and wakeup.  The
>> >> >> > controller does support PCI wakeup.  In fact, at the time you ran lspci
>> >> >> > the controller _was_ suspended and it was signalling a wakeup request!
>> >> >> > Obviously something is wrong somewhere...
>> >> >> >
>> >> >> > > @@@ With "on" in power/control I get this upon plugging in a keyboard:
>> >> >> > ...
>> >> >> > > @@@ and upon removing it:
>> >> >> >
>> >> >> > All normal.
>> >> >> >
>> >> >> > > @@@ If I put "auto" in power/control I get this:
>> >> >> > >
>> >> >> > > xhci_hcd 0000:05:00.0: hcd_pci_runtime_suspend: 0
>> >> >> > > xhci_hcd 0000:05:00.0: PME# enabled
>> >> >> >
>> >> >> > This means the controller was suspended with wakeup enabled, as it
>> >> >> > should be.
>> >> >> >
>> >> >> > > @@@ Upon plugging in a keyboard nothing.
>> >> >> >
>> >> >> > Indeed, that is a problem.  Since wakeup doesn't work right at runtime,
>> >> >> > it's not surprising that it also fails during system sleep.
>> >> >> >
>> >> ....
>> >> >> >
>> >> >> > Clearly something is wrong.  But it looks like the problem might be
>> >> >> > somewhere else, not in the xHCI driver.  Is your BIOS up to date?
>> >> >> >
>> >> >> > CC-ing the linux-pm mailing list in case anybody there has some ideas.
>> >> >>
>> >> >> I need a boot log from 2.6.39-rc6 (or current Linus') on the affected system.
>> >> >
>> >> > That should have been -rc7, sorry.
>> >> >
>> >> > Thanks,
>> >> > Rafael
>> >>
>> >> Rafael,
>> >>
>> >> I updated the BIOS, but the results are the same.
>> >
>> > I'm not really sure if that matters.
>> >
>> > Thanks for the boot log.
>> >
>> > Please send the contents of /proc/interrupts before and after you've tried
>> > to resume the xHCI controller.
>>
> ...
>>
>> @@@ plug keyboard back in
>>
>> cat /proc/interrupts
>>             CPU0       CPU1       CPU2       CPU3
>>    0:        160          2        444     122646   IO-APIC-edge      timer
>>    1:          0          0          1          7   IO-APIC-edge      i8042
>>    4:          0          0          0          2   IO-APIC-edge
>>    8:          0          0          1        112   IO-APIC-edge      rtc0
>>    9:          0          0          0          2   IO-APIC-fasteoi   acpi
>>   16:          0          0          0        439   IO-APIC-fasteoi   hda_intel
>>   17:          0          0          0          4   IO-APIC-fasteoi
>> ehci_hcd:usb1, ehci_hcd:usb3, ehci_hcd:usb6
>>   18:          0          0          4        669   IO-APIC-fasteoi
>> ahci, ohci_hcd:usb8, ohci_hcd:usb9, ohci_hcd:usb10, ohci_hcd:usb11,
>> radeon
>>   19:          0          1        385      25596   IO-APIC-fasteoi
>> pata_jmicron, hda_intel
>>   40:          0          0          0          0   PCI-MSI-edge      PCIe PME
>>   41:          0          0          0          0   PCI-MSI-edge      PCIe PME
>>   42:          0          0          0          0   PCI-MSI-edge      PCIe PME
>>   43:          0          0          0          0   PCI-MSI-edge      PCIe PME
>>   44:          0          0          0          1   PCI-MSI-edge      xhci_hcd
>>   45:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   46:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   47:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   48:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   49:          0          0          1         93   PCI-MSI-edge      xhci_hcd
>>   50:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   51:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   52:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   53:          0          0          0          0   PCI-MSI-edge      xhci_hcd
>>   54:          0          0         53      10289   PCI-MSI-edge      ahci
>>   55:          0          0        266      71934   PCI-MSI-edge      eth0
>>  NMI:          0          0          0          0   Non-maskable interrupts
>>  LOC:      25130      27508      14608       1864   Local timer interrupts
>>  SPU:          0          0          0          0   Spurious interrupts
>>  PMI:          0          0          0          0   Performance
>> monitoring interrupts
>>  IWI:          0          0          0          0   IRQ work interrupts
>>  RES:      15335       8131       5912      13899   Rescheduling interrupts
>>  CAL:         95 138 135 60   Function call interrupts
>>  TLB:        225        475        475        194   TLB shootdowns
>>  TRM:          0          0          0          0   Thermal event interrupts
>>  THR:          0          0          0          0   Threshold APIC interrupts
>>  MCE:          0          0          0          0   Machine check exceptions
>>  MCP:         18         18         18         18   Machine check polls
>>  ERR:          0
>>  MIS:          0
>
> So, clearly, you don't get any PCIe PME interrupts from root ports
> when the keyboard is plugged in.  Without those interrupts the runtime
> resume of xhci won't work.
>
> Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> power/control file before and after you've plugged in the keyboard.
>
> Thanks,
> Rafael

The lspci -vv before, after, and diff are attached.

Sincerely,
Dwight Schauer
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
	Subsystem: Advanced Micro Devices [AMD] RS880 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [c4] HyperTransport: Slave or Primary Interface
		Command: BaseUnitID=0 UnitCnt=12 MastHost- DefDir- DUL-
		Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
		Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
		Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
		Link Config 1: MLWI=8bit DwFcIn- MLWO=8bit DwFcOut- LWI=8bit DwFcInEn- LWO=8bit DwFcOutEn-
		Revision ID: 3.00
		Link Frequency 0: [b]
		Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz- 1.4GHz- 1.6GHz- Vend-
		Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD-
		Link Frequency 1: 200MHz
		Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
		Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
		Prefetchable memory behind bridge Upper: 00-00
		Bus Number: 00
	Capabilities: [54] HyperTransport: UnitID Clumping
	Capabilities: [40] HyperTransport: Retry Mode
	Capabilities: [9c] HyperTransport: #1a
	Capabilities: [f8] HyperTransport: #1c

00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
	I/O behind bridge: 0000c000-0000cfff
	Memory behind bridge: fe500000-fe6fffff
	Prefetchable memory behind bridge: 00000000d0000000-00000000dfffffff
	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx)
	Kernel modules: shpchp

00:09.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) (prog-if 00 [Normal decode])
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	Memory behind bridge: fe700000-fe7fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #9, PowerLimit 25.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0f00c  Data: 4151
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] Device 9601
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [110 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: fe800000-fe8fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #10, PowerLimit 25.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0f00c  Data: 4159
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] Device 9601
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [110 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40) (prog-if 01 [AHCI 1.0])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 54
	Region 0: I/O ports at b000 [size=8]
	Region 1: I/O ports at a000 [size=4]
	Region 2: I/O ports at 9000 [size=8]
	Region 3: I/O ports at 8000 [size=4]
	Region 4: I/O ports at 7000 [size=16]
	Region 5: Memory at fe4ffc00 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 41c9
	Capabilities: [70] SATA HBA v1.0 InCfgSpace
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ahci
	Kernel modules: ahci

00:12.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4fe000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:12.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff800 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:13.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4fd000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:13.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff400 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 42)
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Kernel driver in use: piix4_smbus
	Kernel modules: sp5100_tco, i2c-piix4

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)
	Subsystem: ASUSTeK Computer Inc. M4A89GTD PRO/USB3 Motherboard
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at fe4f4000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel

00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40) (prog-if 01 [Subtractive decode])
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Bus: primary=00, secondary=04, subordinate=04, sec-latency=64
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-

00:14.5 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin C routed to IRQ 18
	Region 0: Memory at fe4fc000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:15.0 PCI bridge: ATI Technologies Inc Device 43a0 (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
	I/O behind bridge: 0000e000-0000efff
	Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #32, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd-
		DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4161
	Capabilities: [b0] Subsystem: ATI Technologies Inc Device 0000
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:15.1 PCI bridge: ATI Technologies Inc Device 43a1 (prog-if 00 [Normal decode])
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
	Memory behind bridge: fe900000-fe9fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #1, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd-
		DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4169
	Capabilities: [b0] Subsystem: ATI Technologies Inc Device 0000
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:16.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4f3000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:16.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff000 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Capabilities: [80] HyperTransport: Host or Secondary Interface
		Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
		Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn+ ExtCTL- 64b-
		Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
		Revision ID: 3.00
		Link Frequency: [b]
		Link Error: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
		Feature Capability: IsocFC+ LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD- ExtRS- UCnfE-

00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Kernel modules: amd64_edac_mod

00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Capabilities: [f0] Secure device <?>
	Kernel driver in use: k10temp
	Kernel modules: k10temp

00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4290] (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device 8454
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
	Region 1: I/O ports at c000 [size=256]
	Region 2: Memory at fe6f0000 (32-bit, non-prefetchable) [size=64K]
	Region 5: Memory at fe500000 (32-bit, non-prefetchable) [size=1M]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Kernel driver in use: radeon
	Kernel modules: radeon

01:05.1 Audio device: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]
	Subsystem: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 19
	Region 0: Memory at fe6e8000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel

02:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at fe7fe000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=0 offset=00001000
		PBA: BAR=0 offset=00001080
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
	Capabilities: [150 v1] #18
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci-hcd

03:00.0 SATA controller: JMicron Technology Corp. JMB361 AHCI/IDE (rev 10) (prog-if 01 [AHCI 1.0])
	Subsystem: ASUSTeK Computer Inc. Device 824f
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 5: Memory at fe8fbc00 (32-bit, non-prefetchable) [size=512]
	Capabilities: [8c] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Kernel driver in use: ahci
	Kernel modules: ahci

03:00.1 IDE interface: JMicron Technology Corp. JMB368 IDE controller (rev 10) (prog-if 85 [Master SecO PriO])
	Subsystem: JMicron Technology Corp. Device 1368
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 19
	Region 0: I/O ports at dc00 [size=8]
	Region 1: I/O ports at d880 [size=4]
	Region 2: I/O ports at d800 [size=8]
	Region 3: I/O ports at d480 [size=4]
	Region 4: I/O ports at d400 [size=16]
	Capabilities: [8c] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Kernel driver in use: pata_jmicron
	Kernel modules: ide-pci-generic, jmicron, ata_generic, pata_jmicron, pata_acpi

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard [Realtek RTL8111E]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 55
	Region 0: I/O ports at e800 [size=256]
	Region 2: Memory at fdfff000 (64-bit, prefetchable) [size=4K]
	Region 4: Memory at fdff8000 (64-bit, prefetchable) [size=16K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4122
	Capabilities: [70] Express (v2) Endpoint, MSI 01
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB
	Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
		Vector table: BAR=4 offset=00000000
		PBA: BAR=4 offset=00000800
	Capabilities: [d0] Vital Product Data
		Unknown small resource type 00, will not decode more.
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
	Capabilities: [140 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
	Kernel driver in use: r8169
	Kernel modules: r8169

06:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
	Subsystem: Melco Inc Device 0241
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at fe9fe000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=0 offset=00001000
		PBA: BAR=0 offset=00001080
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
	Capabilities: [150 v1] #18
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci-hcd
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
	Subsystem: Advanced Micro Devices [AMD] RS880 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [c4] HyperTransport: Slave or Primary Interface
		Command: BaseUnitID=0 UnitCnt=12 MastHost- DefDir- DUL-
		Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
		Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
		Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
		Link Config 1: MLWI=8bit DwFcIn- MLWO=8bit DwFcOut- LWI=8bit DwFcInEn- LWO=8bit DwFcOutEn-
		Revision ID: 3.00
		Link Frequency 0: [b]
		Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz- 1.4GHz- 1.6GHz- Vend-
		Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD-
		Link Frequency 1: 200MHz
		Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
		Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
		Prefetchable memory behind bridge Upper: 00-00
		Bus Number: 00
	Capabilities: [54] HyperTransport: UnitID Clumping
	Capabilities: [40] HyperTransport: Retry Mode
	Capabilities: [9c] HyperTransport: #1a
	Capabilities: [f8] HyperTransport: #1c

00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
	I/O behind bridge: 0000c000-0000cfff
	Memory behind bridge: fe500000-fe6fffff
	Prefetchable memory behind bridge: 00000000d0000000-00000000dfffffff
	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx)
	Kernel modules: shpchp

00:09.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) (prog-if 00 [Normal decode])
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	Memory behind bridge: fe700000-fe7fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #9, PowerLimit 25.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0f00c  Data: 4151
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] Device 9601
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [110 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: fe800000-fe8fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #10, PowerLimit 25.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0f00c  Data: 4159
	Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] Device 9601
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [110 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40) (prog-if 01 [AHCI 1.0])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 54
	Region 0: I/O ports at b000 [size=8]
	Region 1: I/O ports at a000 [size=4]
	Region 2: I/O ports at 9000 [size=8]
	Region 3: I/O ports at 8000 [size=4]
	Region 4: I/O ports at 7000 [size=16]
	Region 5: Memory at fe4ffc00 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 41c9
	Capabilities: [70] SATA HBA v1.0 InCfgSpace
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ahci
	Kernel modules: ahci

00:12.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4fe000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:12.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff800 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:13.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4fd000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:13.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff400 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 42)
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Kernel driver in use: piix4_smbus
	Kernel modules: sp5100_tco, i2c-piix4

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)
	Subsystem: ASUSTeK Computer Inc. M4A89GTD PRO/USB3 Motherboard
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at fe4f4000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel

00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40) (prog-if 01 [Subtractive decode])
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Bus: primary=00, secondary=04, subordinate=04, sec-latency=64
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-

00:14.5 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin C routed to IRQ 18
	Region 0: Memory at fe4fc000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:15.0 PCI bridge: ATI Technologies Inc Device 43a0 (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
	I/O behind bridge: 0000e000-0000efff
	Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #32, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd-
		DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4161
	Capabilities: [b0] Subsystem: ATI Technologies Inc Device 0000
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:15.1 PCI bridge: ATI Technologies Inc Device 43a1 (prog-if 00 [Normal decode])
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
	Memory behind bridge: fe900000-fe9fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag+ RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #1, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd-
		DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4169
	Capabilities: [b0] Subsystem: ATI Technologies Inc Device 0000
	Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Kernel driver in use: pcieport
	Kernel modules: shpchp

00:16.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (prog-if 10 [OHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at fe4f3000 (32-bit, non-prefetchable) [size=4K]
	Kernel driver in use: ohci_hcd
	Kernel modules: ohci-hcd

00:16.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller (prog-if 20 [EHCI])
	Subsystem: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at fe4ff000 (32-bit, non-prefetchable) [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Capabilities: [e4] Debug port: BAR=1 offset=00e0
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Capabilities: [80] HyperTransport: Host or Secondary Interface
		Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
		Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn+ ExtCTL- 64b-
		Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
		Revision ID: 3.00
		Link Frequency: [b]
		Link Error: <Prot- <Ovfl- <EOC- CTLTm-
		Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
		Feature Capability: IsocFC+ LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD- ExtRS- UCnfE-

00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Kernel modules: amd64_edac_mod

00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Capabilities: [f0] Secure device <?>
	Kernel driver in use: k10temp
	Kernel modules: k10temp

00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4290] (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device 8454
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
	Region 1: I/O ports at c000 [size=256]
	Region 2: Memory at fe6f0000 (32-bit, non-prefetchable) [size=64K]
	Region 5: Memory at fe500000 (32-bit, non-prefetchable) [size=1M]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Kernel driver in use: radeon
	Kernel modules: radeon

01:05.1 Audio device: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]
	Subsystem: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 19
	Region 0: Memory at fe6e8000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel

02:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at fe7fe000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=0 offset=00001000
		PBA: BAR=0 offset=00001080
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
	Capabilities: [150 v1] #18
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci-hcd

03:00.0 SATA controller: JMicron Technology Corp. JMB361 AHCI/IDE (rev 10) (prog-if 01 [AHCI 1.0])
	Subsystem: ASUSTeK Computer Inc. Device 824f
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 5: Memory at fe8fbc00 (32-bit, non-prefetchable) [size=512]
	Capabilities: [8c] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Kernel driver in use: ahci
	Kernel modules: ahci

03:00.1 IDE interface: JMicron Technology Corp. JMB368 IDE controller (rev 10) (prog-if 85 [Master SecO PriO])
	Subsystem: JMicron Technology Corp. Device 1368
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 19
	Region 0: I/O ports at dc00 [size=8]
	Region 1: I/O ports at d880 [size=4]
	Region 2: I/O ports at d800 [size=8]
	Region 3: I/O ports at d480 [size=4]
	Region 4: I/O ports at d400 [size=16]
	Capabilities: [8c] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Kernel driver in use: pata_jmicron
	Kernel modules: ide-pci-generic, jmicron, ata_generic, pata_jmicron, pata_acpi

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard [Realtek RTL8111E]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 55
	Region 0: I/O ports at e800 [size=256]
	Region 2: Memory at fdfff000 (64-bit, prefetchable) [size=4K]
	Region 4: Memory at fdff8000 (64-bit, prefetchable) [size=16K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4122
	Capabilities: [70] Express (v2) Endpoint, MSI 01
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB
	Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
		Vector table: BAR=4 offset=00000000
		PBA: BAR=4 offset=00000800
	Capabilities: [d0] Vital Product Data
		Unknown small resource type 00, will not decode more.
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
	Capabilities: [140 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
	Kernel driver in use: r8169
	Kernel modules: r8169

06:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
	Subsystem: Melco Inc Device 0241
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at fe9fe000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME+
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=0 offset=00001000
		PBA: BAR=0 offset=00001080
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
	Capabilities: [150 v1] #18
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci-hcd

Comments

Rafael Wysocki May 14, 2011, 9:10 p.m. UTC | #1
On Saturday, May 14, 2011, Dwight Schauer wrote:
> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> >> >> >> > not wake up a suspended system properly.
> >> >> >> >
> >> >> >> > On Thu, 12 May 2011, Dwight Schauer wrote:
> >> >> >> >
> >> >> >> > > Thanks Alan.
> >> >> >> > >
> >> >> >> > > OK, this is with 2.6.39-rc7-gregkh
> >> >> >> > >
> >> >> >> > > 05:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host
> >> >> >> > > Controller (rev 03) (prog-if 30 [XHCI])
> >> >> >> > >         Subsystem: Melco Inc Device 0241
> >> >> >> > >         Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
> >> >> >> > > ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >> >> >> > >         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> >> >> >> > > <TAbort- <MAbort- >SERR- <PERR- INTx-
> >> >> >> > >         Interrupt: pin A routed to IRQ 17
> >> >> >> > >         Region 0: Memory at fe9fe000 (64-bit, non-prefetchable) [size=8K]
> >> >> >> > >         Capabilities: [50] Power Management version 3
> >> >> >> > >                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> >> >> >> > > PME(D0+,D1-,D2-,D3hot+,D3cold-)
> >> >> >> > >                 Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME+
> >> >> >> >
> >> >> >> > That's the important part for power management and wakeup.  The
> >> >> >> > controller does support PCI wakeup.  In fact, at the time you ran lspci
> >> >> >> > the controller _was_ suspended and it was signalling a wakeup request!
> >> >> >> > Obviously something is wrong somewhere...
> >> >> >> >
> >> >> >> > > @@@ With "on" in power/control I get this upon plugging in a keyboard:
> >> >> >> > ...
> >> >> >> > > @@@ and upon removing it:
> >> >> >> >
> >> >> >> > All normal.
> >> >> >> >
> >> >> >> > > @@@ If I put "auto" in power/control I get this:
> >> >> >> > >
> >> >> >> > > xhci_hcd 0000:05:00.0: hcd_pci_runtime_suspend: 0
> >> >> >> > > xhci_hcd 0000:05:00.0: PME# enabled
> >> >> >> >
> >> >> >> > This means the controller was suspended with wakeup enabled, as it
> >> >> >> > should be.
> >> >> >> >
> >> >> >> > > @@@ Upon plugging in a keyboard nothing.
> >> >> >> >
> >> >> >> > Indeed, that is a problem.  Since wakeup doesn't work right at runtime,
> >> >> >> > it's not surprising that it also fails during system sleep.
> >> >> >> >
> >> >> ....
> >> >> >> >
> >> >> >> > Clearly something is wrong.  But it looks like the problem might be
> >> >> >> > somewhere else, not in the xHCI driver.  Is your BIOS up to date?
> >> >> >> >
> >> >> >> > CC-ing the linux-pm mailing list in case anybody there has some ideas.
> >> >> >>
> >> >> >> I need a boot log from 2.6.39-rc6 (or current Linus') on the affected system.
> >> >> >
> >> >> > That should have been -rc7, sorry.
> >> >> >
> >> >> > Thanks,
> >> >> > Rafael
> >> >>
> >> >> Rafael,
> >> >>
> >> >> I updated the BIOS, but the results are the same.
> >> >
> >> > I'm not really sure if that matters.
> >> >
> >> > Thanks for the boot log.
> >> >
> >> > Please send the contents of /proc/interrupts before and after you've tried
> >> > to resume the xHCI controller.
> >>
> > ...
> >>
> >> @@@ plug keyboard back in
> >>
> >> cat /proc/interrupts
> >>             CPU0       CPU1       CPU2       CPU3
> >>    0:        160          2        444     122646   IO-APIC-edge      timer
> >>    1:          0          0          1          7   IO-APIC-edge      i8042
> >>    4:          0          0          0          2   IO-APIC-edge
> >>    8:          0          0          1        112   IO-APIC-edge      rtc0
> >>    9:          0          0          0          2   IO-APIC-fasteoi   acpi
> >>   16:          0          0          0        439   IO-APIC-fasteoi   hda_intel
> >>   17:          0          0          0          4   IO-APIC-fasteoi
> >> ehci_hcd:usb1, ehci_hcd:usb3, ehci_hcd:usb6
> >>   18:          0          0          4        669   IO-APIC-fasteoi
> >> ahci, ohci_hcd:usb8, ohci_hcd:usb9, ohci_hcd:usb10, ohci_hcd:usb11,
> >> radeon
> >>   19:          0          1        385      25596   IO-APIC-fasteoi
> >> pata_jmicron, hda_intel
> >>   40:          0          0          0          0   PCI-MSI-edge      PCIe PME
> >>   41:          0          0          0          0   PCI-MSI-edge      PCIe PME
> >>   42:          0          0          0          0   PCI-MSI-edge      PCIe PME
> >>   43:          0          0          0          0   PCI-MSI-edge      PCIe PME
> >>   44:          0          0          0          1   PCI-MSI-edge      xhci_hcd
> >>   45:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   46:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   47:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   48:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   49:          0          0          1         93   PCI-MSI-edge      xhci_hcd
> >>   50:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   51:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   52:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   53:          0          0          0          0   PCI-MSI-edge      xhci_hcd
> >>   54:          0          0         53      10289   PCI-MSI-edge      ahci
> >>   55:          0          0        266      71934   PCI-MSI-edge      eth0
> >>  NMI:          0          0          0          0   Non-maskable interrupts
> >>  LOC:      25130      27508      14608       1864   Local timer interrupts
> >>  SPU:          0          0          0          0   Spurious interrupts
> >>  PMI:          0          0          0          0   Performance
> >> monitoring interrupts
> >>  IWI:          0          0          0          0   IRQ work interrupts
> >>  RES:      15335       8131       5912      13899   Rescheduling interrupts
> >>  CAL:         95 138 135 60   Function call interrupts
> >>  TLB:        225        475        475        194   TLB shootdowns
> >>  TRM:          0          0          0          0   Thermal event interrupts
> >>  THR:          0          0          0          0   Threshold APIC interrupts
> >>  MCE:          0          0          0          0   Machine check exceptions
> >>  MCP:         18         18         18         18   Machine check polls
> >>  ERR:          0
> >>  MIS:          0
> >
> > So, clearly, you don't get any PCIe PME interrupts from root ports
> > when the keyboard is plugged in.  Without those interrupts the runtime
> > resume of xhci won't work.
> >
> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> > power/control file before and after you've plugged in the keyboard.
> >
> > Thanks,
> > Rafael
> 
> The lspci -vv before, after, and diff are attached.

This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
in its root port to be set, which is why the root port doesn't generate
interrupts.  This seriously looks like a hardware bug and the only thing
we could do to work around it would be to poll the xHCI for the PME status
periodically (while suspended).

Can you see if the feature works after booting with pcie_ports=compat in
the kernel command line?

Rafael
Dwight Schauer May 14, 2011, 9:28 p.m. UTC | #2
2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
> On Saturday, May 14, 2011, Dwight Schauer wrote:
>> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > On Friday, May 13, 2011, Dwight Schauer wrote:
>> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
>> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
>> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:

>> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
>> >> >> >> > not wake up a suspended system properly.
...
>> > So, clearly, you don't get any PCIe PME interrupts from root ports
>> > when the keyboard is plugged in.  Without those interrupts the runtime
>> > resume of xhci won't work.
>> >
>> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
>> > power/control file before and after you've plugged in the keyboard.
>> >
>> > Thanks,
>> > Rafael
>>
>> The lspci -vv before, after, and diff are attached.
>
> This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> in its root port to be set, which is why the root port doesn't generate
> interrupts.  This seriously looks like a hardware bug and the only thing
> we could do to work around it would be to poll the xHCI for the PME status
> periodically (while suspended).
>
> Can you see if the feature works after booting with pcie_ports=compat in
> the kernel command line?
>
> Rafael
>

I'll try that on Monday (the pcie_ports=compat kernel option).

Well, I've got 2 different systems (one Intel and one AMD based, both
exhibit the same behavior). I have a few other systems I can try it on
as well on Monday.

Dwight
Rafael Wysocki May 14, 2011, 10:38 p.m. UTC | #3
On Saturday, May 14, 2011, Dwight Schauer wrote:
> 2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
> > On Saturday, May 14, 2011, Dwight Schauer wrote:
> >> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
> >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> 
> >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> >> >> >> >> > not wake up a suspended system properly.
> ...
> >> > So, clearly, you don't get any PCIe PME interrupts from root ports
> >> > when the keyboard is plugged in.  Without those interrupts the runtime
> >> > resume of xhci won't work.
> >> >
> >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> >> > power/control file before and after you've plugged in the keyboard.
> >> >
> >> > Thanks,
> >> > Rafael
> >>
> >> The lspci -vv before, after, and diff are attached.
> >
> > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> > in its root port to be set, which is why the root port doesn't generate
> > interrupts.  This seriously looks like a hardware bug and the only thing
> > we could do to work around it would be to poll the xHCI for the PME status
> > periodically (while suspended).
> >
> > Can you see if the feature works after booting with pcie_ports=compat in
> > the kernel command line?
> >
> > Rafael
> >
> 
> I'll try that on Monday (the pcie_ports=compat kernel option).
> 
> Well, I've got 2 different systems (one Intel and one AMD based, both
> exhibit the same behavior).

Are both xHCI controllers from NEC?

> I have a few other systems I can try it on as well on Monday.

Please do if possible.

Thanks,
Rafael
Sarah Sharp May 17, 2011, 3:38 p.m. UTC | #4
On Sun, May 15, 2011 at 12:38:24AM +0200, Rafael J. Wysocki wrote:
> On Saturday, May 14, 2011, Dwight Schauer wrote:
> > 2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
> > > On Saturday, May 14, 2011, Dwight Schauer wrote:
> > >> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> > >> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> > >> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> > 
> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> > >> >> >> >> > not wake up a suspended system properly.
> > ...
> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
> > >> > resume of xhci won't work.
> > >> >
> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> > >> > power/control file before and after you've plugged in the keyboard.
> > >> >
> > >> > Thanks,
> > >> > Rafael
> > >>
> > >> The lspci -vv before, after, and diff are attached.
> > >
> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> > > in its root port to be set, which is why the root port doesn't generate
> > > interrupts.  This seriously looks like a hardware bug and the only thing
> > > we could do to work around it would be to poll the xHCI for the PME status
> > > periodically (while suspended).
> > >
> > > Can you see if the feature works after booting with pcie_ports=compat in
> > > the kernel command line?
> > >
> > > Rafael
> > >
> > 
> > I'll try that on Monday (the pcie_ports=compat kernel option).
> > 
> > Well, I've got 2 different systems (one Intel and one AMD based, both
> > exhibit the same behavior).
> 
> Are both xHCI controllers from NEC?
> 
> > I have a few other systems I can try it on as well on Monday.
> 
> Please do if possible.

If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
I'm wondering if the hardware bug shows up only when MSI or MSI-X is
enabled for the NEC hardware.  Also, if you turn on
CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
dmesg?

Sarah Sharp
Dwight Schauer May 17, 2011, 5:40 p.m. UTC | #5
On Tue, May 17, 2011 at 10:38 AM, Sarah Sharp
<sarah.a.sharp@linux.intel.com> wrote:
> On Sun, May 15, 2011 at 12:38:24AM +0200, Rafael J. Wysocki wrote:
>> On Saturday, May 14, 2011, Dwight Schauer wrote:
>> > 2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
>> > > On Saturday, May 14, 2011, Dwight Schauer wrote:
>> > >> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > >> > On Friday, May 13, 2011, Dwight Schauer wrote:
>> > >> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > >> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
>> > >> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > >> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
>> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
>> >
>> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
>> > >> >> >> >> > not wake up a suspended system properly.
>> > ...
>> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
>> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
>> > >> > resume of xhci won't work.
>> > >> >
>> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
>> > >> > power/control file before and after you've plugged in the keyboard.
>> > >> >
>> > >> > Thanks,
>> > >> > Rafael
>> > >>
>> > >> The lspci -vv before, after, and diff are attached.
>> > >
>> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
>> > > in its root port to be set, which is why the root port doesn't generate
>> > > interrupts.  This seriously looks like a hardware bug and the only thing
>> > > we could do to work around it would be to poll the xHCI for the PME status
>> > > periodically (while suspended).
>> > >
>> > > Can you see if the feature works after booting with pcie_ports=compat in
>> > > the kernel command line?
>> > >
>> > > Rafael
>> > >
>> >
>> > I'll try that on Monday (the pcie_ports=compat kernel option).
>> >
>> > Well, I've got 2 different systems (one Intel and one AMD based, both
>> > exhibit the same behavior).
>>
>> Are both xHCI controllers from NEC?
>>
>> > I have a few other systems I can try it on as well on Monday.
>>
>> Please do if possible.
>
> If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
> I'm wondering if the hardware bug shows up only when MSI or MSI-X is
> enabled for the NEC hardware.  Also, if you turn on
> CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
> dmesg?
>
> Sarah Sharp
>

pcie_ports=compat had no effect
with pci_=nomsi I get upon boot.

xhci_hcd 0000:02:00.0: Failed to enable MSI-X
xhci_hcd 0000:02:00.0: failed to allocate MSI entry
xhci_hcd 0000:06:00.0: Failed to enable MSI-X
xhci_hcd 0000:06:00.0: failed to allocate MSI entry

The 6:00.0 is for NEC device in the PCIe slot.

With pci_=nomsi the rutime power management works, I can put auto in
power/control and the device comes back on it's own.

However, this does not address the wakeup from system suspend issue,
enabled in power/wakeup still does not work. If the interrupt is now
being polled, that would make sense as to why it still does not work.

For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
MSI entry" with pci=nomsi.

The system with TI's device in it is exhibiting the same symptoms
(wakeup does not work and by default auto in power/control does not
work). It is a different motherboard and chip-set than the system I
have the NEC device in.

pci=nomsi has no effect on the system with the TI xHCI device in it.
pcie_ports=compat had no effect either as far as making auto in
power/control work properly.


As to the NEC firmware, both the on-board and off-board NEC devices
have the same version:

xhci_hcd 0000:02:00.0: NEC firmware version 30.21
xhci_hcd 0000:06:00.0: NEC firmware version 30.21

Attached are the dmesg boot logs for both systems.

Dwight Schauer
Rafael Wysocki May 17, 2011, 7:18 p.m. UTC | #6
On Tuesday, May 17, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 10:38 AM, Sarah Sharp
> <sarah.a.sharp@linux.intel.com> wrote:
> > On Sun, May 15, 2011 at 12:38:24AM +0200, Rafael J. Wysocki wrote:
> >> On Saturday, May 14, 2011, Dwight Schauer wrote:
> >> > 2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
> >> > > On Saturday, May 14, 2011, Dwight Schauer wrote:
> >> > >> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> > >> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > >> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> >> > >> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > >> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
> >> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> >> >
> >> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> >> > >> >> >> >> > not wake up a suspended system properly.
> >> > ...
> >> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
> >> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
> >> > >> > resume of xhci won't work.
> >> > >> >
> >> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> >> > >> > power/control file before and after you've plugged in the keyboard.
> >> > >> >
> >> > >> > Thanks,
> >> > >> > Rafael
> >> > >>
> >> > >> The lspci -vv before, after, and diff are attached.
> >> > >
> >> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> >> > > in its root port to be set, which is why the root port doesn't generate
> >> > > interrupts.  This seriously looks like a hardware bug and the only thing
> >> > > we could do to work around it would be to poll the xHCI for the PME status
> >> > > periodically (while suspended).
> >> > >
> >> > > Can you see if the feature works after booting with pcie_ports=compat in
> >> > > the kernel command line?
> >> > >
> >> > > Rafael
> >> > >
> >> >
> >> > I'll try that on Monday (the pcie_ports=compat kernel option).
> >> >
> >> > Well, I've got 2 different systems (one Intel and one AMD based, both
> >> > exhibit the same behavior).
> >>
> >> Are both xHCI controllers from NEC?
> >>
> >> > I have a few other systems I can try it on as well on Monday.
> >>
> >> Please do if possible.
> >
> > If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
> > I'm wondering if the hardware bug shows up only when MSI or MSI-X is
> > enabled for the NEC hardware.  Also, if you turn on
> > CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
> > dmesg?
> >
> > Sarah Sharp
> >
> 
> pcie_ports=compat had no effect
> with pci_=nomsi I get upon boot.
> 
> xhci_hcd 0000:02:00.0: Failed to enable MSI-X
> xhci_hcd 0000:02:00.0: failed to allocate MSI entry
> xhci_hcd 0000:06:00.0: Failed to enable MSI-X
> xhci_hcd 0000:06:00.0: failed to allocate MSI entry
> 
> The 6:00.0 is for NEC device in the PCIe slot.
> 
> With pci_=nomsi the rutime power management works, I can put auto in
> power/control and the device comes back on it's own.
> 
> However, this does not address the wakeup from system suspend issue,
> enabled in power/wakeup still does not work. If the interrupt is now
> being polled, that would make sense as to why it still does not work.
> 
> For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
> MSI entry" with pci=nomsi.
> 
> The system with TI's device in it is exhibiting the same symptoms
> (wakeup does not work and by default auto in power/control does not
> work). It is a different motherboard and chip-set than the system I
> have the NEC device in.
> 
> pci=nomsi has no effect on the system with the TI xHCI device in it.
> pcie_ports=compat had no effect either as far as making auto in
> power/control work properly.
> 
> 
> As to the NEC firmware, both the on-board and off-board NEC devices
> have the same version:
> 
> xhci_hcd 0000:02:00.0: NEC firmware version 30.21
> xhci_hcd 0000:06:00.0: NEC firmware version 30.21
> 
> Attached are the dmesg boot logs for both systems.

OK, so for the S3 issue, I think there's a problem with the PCIe link
on these devices such that the link is not present during resume
and that's why commands are not reaching the device.  I'm not sure yet
what to do about it, but I wonder if xhci_hcd does something around
PCIe links on suspend?

Rafael
Rafael Wysocki May 17, 2011, 8:03 p.m. UTC | #7
On Tuesday, May 17, 2011, Rafael J. Wysocki wrote:
> On Tuesday, May 17, 2011, Dwight Schauer wrote:
> > On Tue, May 17, 2011 at 10:38 AM, Sarah Sharp
> > <sarah.a.sharp@linux.intel.com> wrote:
> > > On Sun, May 15, 2011 at 12:38:24AM +0200, Rafael J. Wysocki wrote:
> > >> On Saturday, May 14, 2011, Dwight Schauer wrote:
> > >> > 2011/5/14 Rafael J. Wysocki <rjw@sisk.pl>:
> > >> > > On Saturday, May 14, 2011, Dwight Schauer wrote:
> > >> > >> On Fri, May 13, 2011 at 3:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> > >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> > >> > >> >> On Fri, May 13, 2011 at 3:04 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> > >> >> > On Friday, May 13, 2011, Dwight Schauer wrote:
> > >> > >> >> >> On Thu, May 12, 2011 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > >> > >> >> >> > On Thursday, May 12, 2011, Rafael J. Wysocki wrote:
> > >> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> > >> >
> > >> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> > >> > >> >> >> >> > not wake up a suspended system properly.
> > >> > ...
> > >> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
> > >> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
> > >> > >> > resume of xhci won't work.
> > >> > >> >
> > >> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> > >> > >> > power/control file before and after you've plugged in the keyboard.
> > >> > >> >
> > >> > >> > Thanks,
> > >> > >> > Rafael
> > >> > >>
> > >> > >> The lspci -vv before, after, and diff are attached.
> > >> > >
> > >> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> > >> > > in its root port to be set, which is why the root port doesn't generate
> > >> > > interrupts.  This seriously looks like a hardware bug and the only thing
> > >> > > we could do to work around it would be to poll the xHCI for the PME status
> > >> > > periodically (while suspended).
> > >> > >
> > >> > > Can you see if the feature works after booting with pcie_ports=compat in
> > >> > > the kernel command line?
> > >> > >
> > >> > > Rafael
> > >> > >
> > >> >
> > >> > I'll try that on Monday (the pcie_ports=compat kernel option).
> > >> >
> > >> > Well, I've got 2 different systems (one Intel and one AMD based, both
> > >> > exhibit the same behavior).
> > >>
> > >> Are both xHCI controllers from NEC?
> > >>
> > >> > I have a few other systems I can try it on as well on Monday.
> > >>
> > >> Please do if possible.
> > >
> > > If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
> > > I'm wondering if the hardware bug shows up only when MSI or MSI-X is
> > > enabled for the NEC hardware.  Also, if you turn on
> > > CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
> > > dmesg?
> > >
> > > Sarah Sharp
> > >
> > 
> > pcie_ports=compat had no effect
> > with pci_=nomsi I get upon boot.
> > 
> > xhci_hcd 0000:02:00.0: Failed to enable MSI-X
> > xhci_hcd 0000:02:00.0: failed to allocate MSI entry
> > xhci_hcd 0000:06:00.0: Failed to enable MSI-X
> > xhci_hcd 0000:06:00.0: failed to allocate MSI entry
> > 
> > The 6:00.0 is for NEC device in the PCIe slot.
> > 
> > With pci_=nomsi the rutime power management works, I can put auto in
> > power/control and the device comes back on it's own.
> > 
> > However, this does not address the wakeup from system suspend issue,
> > enabled in power/wakeup still does not work. If the interrupt is now
> > being polled, that would make sense as to why it still does not work.
> > 
> > For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
> > MSI entry" with pci=nomsi.
> > 
> > The system with TI's device in it is exhibiting the same symptoms
> > (wakeup does not work and by default auto in power/control does not
> > work). It is a different motherboard and chip-set than the system I
> > have the NEC device in.
> > 
> > pci=nomsi has no effect on the system with the TI xHCI device in it.
> > pcie_ports=compat had no effect either as far as making auto in
> > power/control work properly.
> > 
> > 
> > As to the NEC firmware, both the on-board and off-board NEC devices
> > have the same version:
> > 
> > xhci_hcd 0000:02:00.0: NEC firmware version 30.21
> > xhci_hcd 0000:06:00.0: NEC firmware version 30.21
> > 
> > Attached are the dmesg boot logs for both systems.
> 
> OK, so for the S3 issue, I think there's a problem with the PCIe link
> on these devices such that the link is not present during resume
> and that's why commands are not reaching the device.  I'm not sure yet
> what to do about it, but I wonder if xhci_hcd does something around
> PCIe links on suspend?

It doesn't seem so.

Dwight, can you comment out the pci_disable_device(pci_dev); in
drivers/usb/core/hcd-pci.c and see if that makes a difference?

Rafael
Dwight Schauer May 17, 2011, 9:38 p.m. UTC | #8
On Tue, May 17, 2011 at 3:03 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Tuesday, May 17, 2011, Rafael J. Wysocki wrote:
>> On Tuesday, May 17, 2011, Dwight Schauer wrote:
>> > >> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
>> > >> >
>> > >> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
>> > >> > >> >> >> >> > not wake up a suspended system properly.
>> > >> > ...
>> > >> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
>> > >> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
>> > >> > >> > resume of xhci won't work.
>> > >> > >> >
>> > >> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
>> > >> > >> > power/control file before and after you've plugged in the keyboard.
>> > >> > >> >
>> > >> > >> > Thanks,
>> > >> > >> > Rafael
>> > >> > >>
>> > >> > >> The lspci -vv before, after, and diff are attached.
>> > >> > >
>> > >> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
>> > >> > > in its root port to be set, which is why the root port doesn't generate
>> > >> > > interrupts.  This seriously looks like a hardware bug and the only thing
>> > >> > > we could do to work around it would be to poll the xHCI for the PME status
>> > >> > > periodically (while suspended).
>> > >> > >
>> > >> > > Can you see if the feature works after booting with pcie_ports=compat in
>> > >> > > the kernel command line?
>> > >> > >
>> > >> > > Rafael
>> > >> > >
>> > >> >
>> > >> > I'll try that on Monday (the pcie_ports=compat kernel option).
>> > >> >
>> > >> > Well, I've got 2 different systems (one Intel and one AMD based, both
>> > >> > exhibit the same behavior).
>> > >>
>> > >> Are both xHCI controllers from NEC?
>> > >>
>> > >> > I have a few other systems I can try it on as well on Monday.
>> > >>
>> > >> Please do if possible.
>> > >
>> > > If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
>> > > I'm wondering if the hardware bug shows up only when MSI or MSI-X is
>> > > enabled for the NEC hardware.  Also, if you turn on
>> > > CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
>> > > dmesg?
>> > >
>> > > Sarah Sharp
>> > >
>> >
>> > pcie_ports=compat had no effect
>> > with pci_=nomsi I get upon boot.
>> >
>> > xhci_hcd 0000:02:00.0: Failed to enable MSI-X
>> > xhci_hcd 0000:02:00.0: failed to allocate MSI entry
>> > xhci_hcd 0000:06:00.0: Failed to enable MSI-X
>> > xhci_hcd 0000:06:00.0: failed to allocate MSI entry
>> >
>> > The 6:00.0 is for NEC device in the PCIe slot.
>> >
>> > With pci_=nomsi the rutime power management works, I can put auto in
>> > power/control and the device comes back on it's own.
>> >
>> > However, this does not address the wakeup from system suspend issue,
>> > enabled in power/wakeup still does not work. If the interrupt is now
>> > being polled, that would make sense as to why it still does not work.
>> >
>> > For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
>> > MSI entry" with pci=nomsi.
>> >
>> > The system with TI's device in it is exhibiting the same symptoms
>> > (wakeup does not work and by default auto in power/control does not
>> > work). It is a different motherboard and chip-set than the system I
>> > have the NEC device in.
>> >
>> > pci=nomsi has no effect on the system with the TI xHCI device in it.
>> > pcie_ports=compat had no effect either as far as making auto in
>> > power/control work properly.
>> >
>> >
>> > As to the NEC firmware, both the on-board and off-board NEC devices
>> > have the same version:
>> >
>> > xhci_hcd 0000:02:00.0: NEC firmware version 30.21
>> > xhci_hcd 0000:06:00.0: NEC firmware version 30.21
>> >
>> > Attached are the dmesg boot logs for both systems.
>>
>> OK, so for the S3 issue, I think there's a problem with the PCIe link
>> on these devices such that the link is not present during resume
>> and that's why commands are not reaching the device.  I'm not sure yet
>> what to do about it, but I wonder if xhci_hcd does something around
>> PCIe links on suspend?
>
> It doesn't seem so.
>
> Dwight, can you comment out the pci_disable_device(pci_dev); in
> drivers/usb/core/hcd-pci.c and see if that makes a difference?
>
> Rafael

I just tried that, but it has no effect on wakeup from S3.

Dwight
Rafael Wysocki May 17, 2011, 9:43 p.m. UTC | #9
On Tuesday, May 17, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 3:03 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Tuesday, May 17, 2011, Rafael J. Wysocki wrote:
> >> On Tuesday, May 17, 2011, Dwight Schauer wrote:
> >> > >> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
> >> > >> >
> >> > >> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
> >> > >> > >> >> >> >> > not wake up a suspended system properly.
> >> > >> > ...
> >> > >> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
> >> > >> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
> >> > >> > >> > resume of xhci won't work.
> >> > >> > >> >
> >> > >> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
> >> > >> > >> > power/control file before and after you've plugged in the keyboard.
> >> > >> > >> >
> >> > >> > >> > Thanks,
> >> > >> > >> > Rafael
> >> > >> > >>
> >> > >> > >> The lspci -vv before, after, and diff are attached.
> >> > >> > >
> >> > >> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
> >> > >> > > in its root port to be set, which is why the root port doesn't generate
> >> > >> > > interrupts.  This seriously looks like a hardware bug and the only thing
> >> > >> > > we could do to work around it would be to poll the xHCI for the PME status
> >> > >> > > periodically (while suspended).
> >> > >> > >
> >> > >> > > Can you see if the feature works after booting with pcie_ports=compat in
> >> > >> > > the kernel command line?
> >> > >> > >
> >> > >> > > Rafael
> >> > >> > >
> >> > >> >
> >> > >> > I'll try that on Monday (the pcie_ports=compat kernel option).
> >> > >> >
> >> > >> > Well, I've got 2 different systems (one Intel and one AMD based, both
> >> > >> > exhibit the same behavior).
> >> > >>
> >> > >> Are both xHCI controllers from NEC?
> >> > >>
> >> > >> > I have a few other systems I can try it on as well on Monday.
> >> > >>
> >> > >> Please do if possible.
> >> > >
> >> > > If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
> >> > > I'm wondering if the hardware bug shows up only when MSI or MSI-X is
> >> > > enabled for the NEC hardware.  Also, if you turn on
> >> > > CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
> >> > > dmesg?
> >> > >
> >> > > Sarah Sharp
> >> > >
> >> >
> >> > pcie_ports=compat had no effect
> >> > with pci_=nomsi I get upon boot.
> >> >
> >> > xhci_hcd 0000:02:00.0: Failed to enable MSI-X
> >> > xhci_hcd 0000:02:00.0: failed to allocate MSI entry
> >> > xhci_hcd 0000:06:00.0: Failed to enable MSI-X
> >> > xhci_hcd 0000:06:00.0: failed to allocate MSI entry
> >> >
> >> > The 6:00.0 is for NEC device in the PCIe slot.
> >> >
> >> > With pci_=nomsi the rutime power management works, I can put auto in
> >> > power/control and the device comes back on it's own.
> >> >
> >> > However, this does not address the wakeup from system suspend issue,
> >> > enabled in power/wakeup still does not work. If the interrupt is now
> >> > being polled, that would make sense as to why it still does not work.
> >> >
> >> > For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
> >> > MSI entry" with pci=nomsi.
> >> >
> >> > The system with TI's device in it is exhibiting the same symptoms
> >> > (wakeup does not work and by default auto in power/control does not
> >> > work). It is a different motherboard and chip-set than the system I
> >> > have the NEC device in.
> >> >
> >> > pci=nomsi has no effect on the system with the TI xHCI device in it.
> >> > pcie_ports=compat had no effect either as far as making auto in
> >> > power/control work properly.
> >> >
> >> >
> >> > As to the NEC firmware, both the on-board and off-board NEC devices
> >> > have the same version:
> >> >
> >> > xhci_hcd 0000:02:00.0: NEC firmware version 30.21
> >> > xhci_hcd 0000:06:00.0: NEC firmware version 30.21
> >> >
> >> > Attached are the dmesg boot logs for both systems.
> >>
> >> OK, so for the S3 issue, I think there's a problem with the PCIe link
> >> on these devices such that the link is not present during resume
> >> and that's why commands are not reaching the device.  I'm not sure yet
> >> what to do about it, but I wonder if xhci_hcd does something around
> >> PCIe links on suspend?
> >
> > It doesn't seem so.
> >
> > Dwight, can you comment out the pci_disable_device(pci_dev); in
> > drivers/usb/core/hcd-pci.c and see if that makes a difference?
> >
> > Rafael
> 
> I just tried that, but it has no effect on wakeup from S3.

OK, one more test, please.

Try to do

# echo core > /sys/power/pm_test
# echo mem > /sys/power/state

(that should simulate suspend, but without going into the BIOS, and it
should return do the command prompt after 5-10 sec.) and check if the
USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
to the normal suspend behavior).

Thanks,
Rafael
Dwight Schauer May 17, 2011, 9:47 p.m. UTC | #10
On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Tuesday, May 17, 2011, Dwight Schauer wrote:
>> On Tue, May 17, 2011 at 3:03 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > On Tuesday, May 17, 2011, Rafael J. Wysocki wrote:
>> >> On Tuesday, May 17, 2011, Dwight Schauer wrote:
>> >> > >> > >> >> >> >> On Thursday, May 12, 2011, Alan Stern wrote:
>> >> > >> >
>> >> > >> > >> >> >> >> > For new readers: The problem is that an xHCI USB host controller does
>> >> > >> > >> >> >> >> > not wake up a suspended system properly.
>> >> > >> > ...
>> >> > >> > >> > So, clearly, you don't get any PCIe PME interrupts from root ports
>> >> > >> > >> > when the keyboard is plugged in.  Without those interrupts the runtime
>> >> > >> > >> > resume of xhci won't work.
>> >> > >> > >> >
>> >> > >> > >> > Please attach the output of "lspci -vv" with "auto" in the (suspended) xhci's
>> >> > >> > >> > power/control file before and after you've plugged in the keyboard.
>> >> > >> > >> >
>> >> > >> > >> > Thanks,
>> >> > >> > >> > Rafael
>> >> > >> > >>
>> >> > >> > >> The lspci -vv before, after, and diff are attached.
>> >> > >> > >
>> >> > >> > > This means that the PME signaled by the xHCI doesn't cause the PMEStatus bit
>> >> > >> > > in its root port to be set, which is why the root port doesn't generate
>> >> > >> > > interrupts.  This seriously looks like a hardware bug and the only thing
>> >> > >> > > we could do to work around it would be to poll the xHCI for the PME status
>> >> > >> > > periodically (while suspended).
>> >> > >> > >
>> >> > >> > > Can you see if the feature works after booting with pcie_ports=compat in
>> >> > >> > > the kernel command line?
>> >> > >> > >
>> >> > >> > > Rafael
>> >> > >> > >
>> >> > >> >
>> >> > >> > I'll try that on Monday (the pcie_ports=compat kernel option).
>> >> > >> >
>> >> > >> > Well, I've got 2 different systems (one Intel and one AMD based, both
>> >> > >> > exhibit the same behavior).
>> >> > >>
>> >> > >> Are both xHCI controllers from NEC?
>> >> > >>
>> >> > >> > I have a few other systems I can try it on as well on Monday.
>> >> > >>
>> >> > >> Please do if possible.
>> >> > >
>> >> > > If pcie_ports=compat doesn't help, does it help if you use pci=nomsi?
>> >> > > I'm wondering if the hardware bug shows up only when MSI or MSI-X is
>> >> > > enabled for the NEC hardware.  Also, if you turn on
>> >> > > CONFIG_USB_XHCI_HCD_DEBUGGING, what NEC firmware version do you see in
>> >> > > dmesg?
>> >> > >
>> >> > > Sarah Sharp
>> >> > >
>> >> >
>> >> > pcie_ports=compat had no effect
>> >> > with pci_=nomsi I get upon boot.
>> >> >
>> >> > xhci_hcd 0000:02:00.0: Failed to enable MSI-X
>> >> > xhci_hcd 0000:02:00.0: failed to allocate MSI entry
>> >> > xhci_hcd 0000:06:00.0: Failed to enable MSI-X
>> >> > xhci_hcd 0000:06:00.0: failed to allocate MSI entry
>> >> >
>> >> > The 6:00.0 is for NEC device in the PCIe slot.
>> >> >
>> >> > With pci_=nomsi the rutime power management works, I can put auto in
>> >> > power/control and the device comes back on it's own.
>> >> >
>> >> > However, this does not address the wakeup from system suspend issue,
>> >> > enabled in power/wakeup still does not work. If the interrupt is now
>> >> > being polled, that would make sense as to why it still does not work.
>> >> >
>> >> > For TI's xHCI device I get "xhci_hcd 0000:02:00.0: failed to allocate
>> >> > MSI entry" with pci=nomsi.
>> >> >
>> >> > The system with TI's device in it is exhibiting the same symptoms
>> >> > (wakeup does not work and by default auto in power/control does not
>> >> > work). It is a different motherboard and chip-set than the system I
>> >> > have the NEC device in.
>> >> >
>> >> > pci=nomsi has no effect on the system with the TI xHCI device in it.
>> >> > pcie_ports=compat had no effect either as far as making auto in
>> >> > power/control work properly.
>> >> >
>> >> >
>> >> > As to the NEC firmware, both the on-board and off-board NEC devices
>> >> > have the same version:
>> >> >
>> >> > xhci_hcd 0000:02:00.0: NEC firmware version 30.21
>> >> > xhci_hcd 0000:06:00.0: NEC firmware version 30.21
>> >> >
>> >> > Attached are the dmesg boot logs for both systems.
>> >>
>> >> OK, so for the S3 issue, I think there's a problem with the PCIe link
>> >> on these devices such that the link is not present during resume
>> >> and that's why commands are not reaching the device.  I'm not sure yet
>> >> what to do about it, but I wonder if xhci_hcd does something around
>> >> PCIe links on suspend?
>> >
>> > It doesn't seem so.
>> >
>> > Dwight, can you comment out the pci_disable_device(pci_dev); in
>> > drivers/usb/core/hcd-pci.c and see if that makes a difference?
>> >
>> > Rafael
>>
>> I just tried that, but it has no effect on wakeup from S3.
>
> OK, one more test, please.
>
> Try to do
>
> # echo core > /sys/power/pm_test
> # echo mem > /sys/power/state
>
> (that should simulate suspend, but without going into the BIOS, and it
> should return do the command prompt after 5-10 sec.) and check if the
> USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
> to the normal suspend behavior).
>
> Thanks,
> Rafael

No problem.

The simulated suspend works fine. Also, waking up from S3 via a PS/2
keyboard works fine.

Dwight
Rafael Wysocki May 17, 2011, 9:54 p.m. UTC | #11
On Tuesday, May 17, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
...
> >
> > OK, one more test, please.
> >
> > Try to do
> >
> > # echo core > /sys/power/pm_test
> > # echo mem > /sys/power/state
> >
> > (that should simulate suspend, but without going into the BIOS, and it
> > should return do the command prompt after 5-10 sec.) and check if the
> > USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
> > to the normal suspend behavior).
> >
> > Thanks,
> > Rafael
> 
> No problem.
> 
> The simulated suspend works fine.

Good.

> Also, waking up from S3 via a PS/2 keyboard works fine.

Hmm.  Do you mean that the USB3 controllers work after the resume if
the box has been woken up via the keyboard and they don't work when it
has been woken up via a power button?

Rafael
Dwight Schauer May 17, 2011, 10:37 p.m. UTC | #12
On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Tuesday, May 17, 2011, Dwight Schauer wrote:
>> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> ...
>> >
>> > OK, one more test, please.
>> >
>> > Try to do
>> >
>> > # echo core > /sys/power/pm_test
>> > # echo mem > /sys/power/state
>> >
>> > (that should simulate suspend, but without going into the BIOS, and it
>> > should return do the command prompt after 5-10 sec.) and check if the
>> > USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
>> > to the normal suspend behavior).
>> >
>> > Thanks,
>> > Rafael
>>
>> No problem.
>>
>> The simulated suspend works fine.
>
> Good.
>
>> Also, waking up from S3 via a PS/2 keyboard works fine.
>
> Hmm.  Do you mean that the USB3 controllers work after the resume if
> the box has been woken up via the keyboard and they don't work when it
> has been woken up via a power button?
>
> Rafael

They work either way. I'm just not able to get the USB keyboard that
is connected to the USB3 controller to perform the wakeup. (Which is
what I thought I made clear from the beginning and what Alan Stern had
reiterated for new readers further into the thread).

Dwight Schauer
Rafael Wysocki May 17, 2011, 10:56 p.m. UTC | #13
On Wednesday, May 18, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Tuesday, May 17, 2011, Dwight Schauer wrote:
> >> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > ...
> >> >
> >> > OK, one more test, please.
> >> >
> >> > Try to do
> >> >
> >> > # echo core > /sys/power/pm_test
> >> > # echo mem > /sys/power/state
> >> >
> >> > (that should simulate suspend, but without going into the BIOS, and it
> >> > should return do the command prompt after 5-10 sec.) and check if the
> >> > USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
> >> > to the normal suspend behavior).
> >> >
> >> > Thanks,
> >> > Rafael
> >>
> >> No problem.
> >>
> >> The simulated suspend works fine.
> >
> > Good.
> >
> >> Also, waking up from S3 via a PS/2 keyboard works fine.
> >
> > Hmm.  Do you mean that the USB3 controllers work after the resume if
> > the box has been woken up via the keyboard and they don't work when it
> > has been woken up via a power button?
> >
> > Rafael
> 
> They work either way. I'm just not able to get the USB keyboard that
> is connected to the USB3 controller to perform the wakeup. (Which is
> what I thought I made clear from the beginning and what Alan Stern had
> reiterated for new readers further into the thread).

Oh, I must have missed that information.  Sorry about that.

So, the situation is that if you set up the USB3 controllers to wake up
and next you wake up the system from S3 using a USB device connected to one
of those controllers, then they appear to be in D3 after the resume and
apparently cannot be put into D0.  However, if the wakeup is done in any
different way, they work correctly after the resume, right?

Is that the case on both the affected systems?

Rafael
Dwight Schauer May 17, 2011, 11:01 p.m. UTC | #14
On Tue, May 17, 2011 at 5:56 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Wednesday, May 18, 2011, Dwight Schauer wrote:
>> On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > On Tuesday, May 17, 2011, Dwight Schauer wrote:
>> >> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> > ...
>> >> >
>> >> > OK, one more test, please.
>> >> >
>> >> > Try to do
>> >> >
>> >> > # echo core > /sys/power/pm_test
>> >> > # echo mem > /sys/power/state
>> >> >
>> >> > (that should simulate suspend, but without going into the BIOS, and it
>> >> > should return do the command prompt after 5-10 sec.) and check if the
>> >> > USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
>> >> > to the normal suspend behavior).
>> >> >
>> >> > Thanks,
>> >> > Rafael
>> >>
>> >> No problem.
>> >>
>> >> The simulated suspend works fine.
>> >
>> > Good.
>> >
>> >> Also, waking up from S3 via a PS/2 keyboard works fine.
>> >
>> > Hmm.  Do you mean that the USB3 controllers work after the resume if
>> > the box has been woken up via the keyboard and they don't work when it
>> > has been woken up via a power button?
>> >
>> > Rafael
>>
>> They work either way. I'm just not able to get the USB keyboard that
>> is connected to the USB3 controller to perform the wakeup. (Which is
>> what I thought I made clear from the beginning and what Alan Stern had
>> reiterated for new readers further into the thread).
>
> Oh, I must have missed that information.  Sorry about that.
>
> So, the situation is that if you set up the USB3 controllers to wake up
> and next you wake up the system from S3 using a USB device connected to one
> of those controllers, then they appear to be in D3 after the resume and
> apparently cannot be put into D0.  However, if the wakeup is done in any
> different way, they work correctly after the resume, right?
>
> Is that the case on both the affected systems?
>

On both systems the USB3 controllers plugged into PCIe slots work fine
after the system has been woken up from S3 suspend state.

The USB3 keyboard plugged into the PCIe USB3 controller is immediately
avaiable after the system has woken up. It is just that in Linux a
keyboard plugged into the USB3 controller can not be used to wake the
system up when it has gone into S3 suspend. With Windows 7 on our test
systems our USB3 contoller (the Texas Instruments Inc. PCEe xHCI
device) a USB keyboard plugged into it can wake it up from an S3
suspend.

Dwight Schauer
Rafael Wysocki May 17, 2011, 11:38 p.m. UTC | #15
On Wednesday, May 18, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 5:56 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Wednesday, May 18, 2011, Dwight Schauer wrote:
> >> On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > On Tuesday, May 17, 2011, Dwight Schauer wrote:
> >> >> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > ...
> >> >> >
> >> >> > OK, one more test, please.
> >> >> >
> >> >> > Try to do
> >> >> >
> >> >> > # echo core > /sys/power/pm_test
> >> >> > # echo mem > /sys/power/state
> >> >> >
> >> >> > (that should simulate suspend, but without going into the BIOS, and it
> >> >> > should return do the command prompt after 5-10 sec.) and check if the
> >> >> > USB3 controllers work after that ("echo none > /sys/power/pm_test" resets
> >> >> > to the normal suspend behavior).
> >> >> >
> >> >> > Thanks,
> >> >> > Rafael
> >> >>
> >> >> No problem.
> >> >>
> >> >> The simulated suspend works fine.
> >> >
> >> > Good.
> >> >
> >> >> Also, waking up from S3 via a PS/2 keyboard works fine.
> >> >
> >> > Hmm.  Do you mean that the USB3 controllers work after the resume if
> >> > the box has been woken up via the keyboard and they don't work when it
> >> > has been woken up via a power button?
> >> >
> >> > Rafael
> >>
> >> They work either way. I'm just not able to get the USB keyboard that
> >> is connected to the USB3 controller to perform the wakeup. (Which is
> >> what I thought I made clear from the beginning and what Alan Stern had
> >> reiterated for new readers further into the thread).
> >
> > Oh, I must have missed that information.  Sorry about that.
> >
> > So, the situation is that if you set up the USB3 controllers to wake up
> > and next you wake up the system from S3 using a USB device connected to one
> > of those controllers, then they appear to be in D3 after the resume and
> > apparently cannot be put into D0.  However, if the wakeup is done in any
> > different way, they work correctly after the resume, right?
> >
> > Is that the case on both the affected systems?
> >
> 
> On both systems the USB3 controllers plugged into PCIe slots work fine
> after the system has been woken up from S3 suspend state.
> 
> The USB3 keyboard plugged into the PCIe USB3 controller is immediately
> avaiable after the system has woken up. It is just that in Linux a
> keyboard plugged into the USB3 controller can not be used to wake the
> system up when it has gone into S3 suspend. With Windows 7 on our test
> systems our USB3 contoller (the Texas Instruments Inc. PCEe xHCI
> device) a USB keyboard plugged into it can wake it up from an S3
> suspend.

I see.  It seems I'm confusing two different bug reports. :-(  Sorry again.

The runtime PM wakeup aside, what's the contents of /proc/acpi/wakeup
before suspend (when you're going to try to wake up the system via USB)?

Rafael
Xu, Andiry May 18, 2011, 1:59 a.m. UTC | #16
> -----Original Message-----
> From: linux-usb-owner@vger.kernel.org [mailto:linux-usb-
> owner@vger.kernel.org] On Behalf Of Dwight Schauer
> Sent: Wednesday, May 18, 2011 7:02 AM
> To: Rafael J. Wysocki
> Cc: linux-pm@lists.linux-foundation.org; Sarah Sharp; dschauer@ti.com;
> USB list
> Subject: Re: [linux-pm] xHCI and suspend/resume
> 
> On Tue, May 17, 2011 at 5:56 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Wednesday, May 18, 2011, Dwight Schauer wrote:
> >> On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl>
> wrote:
> >> > On Tuesday, May 17, 2011, Dwight Schauer wrote:
> >> >> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl>
> wrote:
> >> > ...
> >> >> >
> >> >> > OK, one more test, please.
> >> >> >
> >> >> > Try to do
> >> >> >
> >> >> > # echo core > /sys/power/pm_test
> >> >> > # echo mem > /sys/power/state
> >> >> >
> >> >> > (that should simulate suspend, but without going into the BIOS,
> and it
> >> >> > should return do the command prompt after 5-10 sec.) and check
> if the
> >> >> > USB3 controllers work after that ("echo none >
> /sys/power/pm_test" resets
> >> >> > to the normal suspend behavior).
> >> >> >
> >> >> > Thanks,
> >> >> > Rafael
> >> >>
> >> >> No problem.
> >> >>
> >> >> The simulated suspend works fine.
> >> >
> >> > Good.
> >> >
> >> >> Also, waking up from S3 via a PS/2 keyboard works fine.
> >> >
> >> > Hmm.  Do you mean that the USB3 controllers work after the resume
> if
> >> > the box has been woken up via the keyboard and they don't work
> when it
> >> > has been woken up via a power button?
> >> >
> >> > Rafael
> >>
> >> They work either way. I'm just not able to get the USB keyboard that
> >> is connected to the USB3 controller to perform the wakeup. (Which is
> >> what I thought I made clear from the beginning and what Alan Stern
> had
> >> reiterated for new readers further into the thread).
> >
> > Oh, I must have missed that information.  Sorry about that.
> >
> > So, the situation is that if you set up the USB3 controllers to wake
> up
> > and next you wake up the system from S3 using a USB device connected
> to one
> > of those controllers, then they appear to be in D3 after the resume
> and
> > apparently cannot be put into D0.  However, if the wakeup is done in
> any
> > different way, they work correctly after the resume, right?
> >
> > Is that the case on both the affected systems?
> >
> 
> On both systems the USB3 controllers plugged into PCIe slots work fine
> after the system has been woken up from S3 suspend state.
> 
> The USB3 keyboard plugged into the PCIe USB3 controller is immediately
> avaiable after the system has woken up. It is just that in Linux a
> keyboard plugged into the USB3 controller can not be used to wake the
> system up when it has gone into S3 suspend. With Windows 7 on our test
> systems our USB3 contoller (the Texas Instruments Inc. PCEe xHCI
> device) a USB keyboard plugged into it can wake it up from an S3
> suspend.
> 

I've verified that USB keyboard under xHCI controller can wakeup system
from S3, either by press the keyboard or plug it in during suspend. But
you need to enable wakeup in /proc/acpi/wakeup for the corresponding
xHC controller.

Thanks,
Andiry
Rafael Wysocki May 18, 2011, 7:40 p.m. UTC | #17
On Wednesday, May 18, 2011, Dwight Schauer wrote:
> On Tue, May 17, 2011 at 8:59 PM, Xu, Andiry <Andiry.Xu@amd.com> wrote:
> >> -----Original Message-----
> >> From: linux-usb-owner@vger.kernel.org [mailto:linux-usb-
> >> owner@vger.kernel.org] On Behalf Of Dwight Schauer
> >> Sent: Wednesday, May 18, 2011 7:02 AM
> >> To: Rafael J. Wysocki
> >> Cc: linux-pm@lists.linux-foundation.org; Sarah Sharp; dschauer@ti.com;
> >> USB list
> >> Subject: Re: [linux-pm] xHCI and suspend/resume
> >>
> >> On Tue, May 17, 2011 at 5:56 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >> > On Wednesday, May 18, 2011, Dwight Schauer wrote:
> >> >> On Tue, May 17, 2011 at 4:54 PM, Rafael J. Wysocki <rjw@sisk.pl>
> >> wrote:
> >> >> > On Tuesday, May 17, 2011, Dwight Schauer wrote:
> >> >> >> On Tue, May 17, 2011 at 4:43 PM, Rafael J. Wysocki <rjw@sisk.pl>
> >> wrote:
> >> >> > ...
> >> >> >> >
> >> >> >> > OK, one more test, please.
> >> >> >> >
> >> >> >> > Try to do
> >> >> >> >
> >> >> >> > # echo core > /sys/power/pm_test
> >> >> >> > # echo mem > /sys/power/state
> >> >> >> >
> >> >> >> > (that should simulate suspend, but without going into the BIOS,
> >> and it
> >> >> >> > should return do the command prompt after 5-10 sec.) and check
> >> if the
> >> >> >> > USB3 controllers work after that ("echo none >
> >> /sys/power/pm_test" resets
> >> >> >> > to the normal suspend behavior).
> >> >> >> >
> >> >> >> > Thanks,
> >> >> >> > Rafael
> >> >> >>
> >> >> >> No problem.
> >> >> >>
> >> >> >> The simulated suspend works fine.
> >> >> >
> >> >> > Good.
> >> >> >
> >> >> >> Also, waking up from S3 via a PS/2 keyboard works fine.
> >> >> >
> >> >> > Hmm.  Do you mean that the USB3 controllers work after the resume
> >> if
> >> >> > the box has been woken up via the keyboard and they don't work
> >> when it
> >> >> > has been woken up via a power button?
> >> >> >
> >> >> > Rafael
> >> >>
> >> >> They work either way. I'm just not able to get the USB keyboard that
> >> >> is connected to the USB3 controller to perform the wakeup. (Which is
> >> >> what I thought I made clear from the beginning and what Alan Stern
> >> had
> >> >> reiterated for new readers further into the thread).
> >> >
> >> > Oh, I must have missed that information.  Sorry about that.
> >> >
> >> > So, the situation is that if you set up the USB3 controllers to wake
> >> up
> >> > and next you wake up the system from S3 using a USB device connected
> >> to one
> >> > of those controllers, then they appear to be in D3 after the resume
> >> and
> >> > apparently cannot be put into D0.  However, if the wakeup is done in
> >> any
> >> > different way, they work correctly after the resume, right?
> >> >
> >> > Is that the case on both the affected systems?
> >> >
> >>
> >> On both systems the USB3 controllers plugged into PCIe slots work fine
> >> after the system has been woken up from S3 suspend state.
> >>
> >> The USB3 keyboard plugged into the PCIe USB3 controller is immediately
> >> avaiable after the system has woken up. It is just that in Linux a
> >> keyboard plugged into the USB3 controller can not be used to wake the
> >> system up when it has gone into S3 suspend. With Windows 7 on our test
> >> systems our USB3 contoller (the Texas Instruments Inc. PCEe xHCI
> >> device) a USB keyboard plugged into it can wake it up from an S3
> >> suspend.
> >>
> >
> > I've verified that USB keyboard under xHCI controller can wakeup system
> > from S3, either by press the keyboard or plug it in during suspend. But
> > you need to enable wakeup in /proc/acpi/wakeup for the corresponding
> > xHC controller.
> >
> > Thanks,
> > Andiry
> 
> I was told /proc/acpi/wakeup was deprecated, and to use
> /sys/devices/pci.../power/wakeup instead.

That is correct, but /proc/acpi/wakeup still contains valid information
and is generally useful for debugging, so I'd appraciate it if you could
tell me what's in there.

> Anyways, the controllers in question are not showing up in
> /proc/acpi/wakeup. These are add on cards, not devices included on the
> motherboard.

In that case you may try to enable wakeup for the bridges they are
attached to.  Hard to say without any more information.

Thanks,
Rafael
diff mbox

Patch

--- before.txt	2011-05-13 16:52:48.777129779 -0500
+++ after.txt	2011-05-13 16:52:48.777129779 -0500
@@ -615,17 +615,17 @@ 
 06:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
 	Subsystem: Melco Inc Device 0241
 	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 	Interrupt: pin A routed to IRQ 17
 	Region 0: Memory at fe9fe000 (64-bit, non-prefetchable) [size=8K]
 	Capabilities: [50] Power Management version 3
 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
-		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
+		Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME+
 	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
 		Address: 0000000000000000  Data: 0000
 	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
 		Vector table: BAR=0 offset=00001000
 		PBA: BAR=0 offset=00001080
 	Capabilities: [a0] Express (v2) Endpoint, MSI 00
 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
 			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-