On 2014/7/4 10:43, Ilia Mirkin wrote: > On Thu, Jul 3, 2014 at 10:35 PM, Yijing Wang <wangyijing@xxxxxxxxxx> wrote: >> Hi Brian, >> From your 01:00.0 VGA compatible controller PCI config register, it supports 1 MSI vector, so I think this >> card has no problem. But you didn't answer what's the pci_enable_msi() return during it enable MSI fail. >> >> You can check PCI bus whether support MSI like: >> >> cat /sys/bus/pci/devices/00:0e.0/msi_bus >> >> Other, do you call pci_enable_device() before pci_enable_msi() ? > > Yes, the device is enabled. nouveau does generally work for most > people :) And it works fine here if MSI is forced off. > > The problem here is that pci_enable_msi() succeeds, but it probably It's some strange, pci_enable_msi() succeeds, but there is nothing in MSI address and data register Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Because the address and data is invalid, so MSI can not work. Because you said pci_enable_msi() return 0 which indicates success, so I guess the device current power state is not D0, because checking code in __write_msi_msi. void __write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) { if (entry->dev->current_state != PCI_D0) { /* Don't touch the hardware now */ } else if (entry->msi_attrib.is_msix) { void __iomem *base; base = entry->mask_base + entry->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE; writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR); writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR); writel(msg->data, base + PCI_MSIX_ENTRY_DATA); ...... > shouldn't. I don't know all the details about MSI, but doesn't the CPU > or (L)APIC have to support it? In this case, it's a P200MMX on a 430FX > chipset board. Both quite ancient... MSI in x86 always send to specific interrupt address(0xfeexxxx), most x86 CPU should support MSI, but I am not sure, I don't know hardware much. > > So given that the PCI device itself supports MSI, how do we tell that > it shouldn't actually get turned on? Generally, some message in dmesg like: [ 17.322311] ahci 0000:00:1f.2: irq 119 for MSI/MSI-X [ 17.322319] ahci 0000:00:1f.2: irq 120 for MSI/MSI-X [ 17.322326] ahci 0000:00:1f.2: irq 121 for MSI/MSI-X [ 17.322333] ahci 0000:00:1f.2: irq 122 for MSI/MSI-X [ 17.322339] ahci 0000:00:1f.2: irq 123 for MSI/MSI-X Also you can check /proc/interrupts I think. > > -ilia > >> >> On 2014/7/4 8:35, Brian Becker wrote: >>> I mistakenly only replied to Yijing Wang the first time. Here are the further details. >>> >>> uname -a: Linux p5-133 3.15.2-p5-133 #1 Thu Jun 26 22:56:27 EDT 2014 i586 GNU/Linux >>> >>> Here is the output from lspci -vvvxxx: >>> >>> root@p5-133:~# cat lspci.txt >>> 00:00.0 Host bridge: Intel Corporation 430FX - 82437FX TSC [Triton I] (rev 01) >>> 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 >>> 00: 86 80 2d 12 06 00 00 22 01 00 00 06 00 40 00 00 >>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 50: 88 00 41 00 00 00 00 03 49 10 55 55 55 05 55 05 >>> 60: 08 10 18 20 20 00 00 00 0f 00 00 00 00 00 00 00 >>> 70: 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 >>> >>> 00:07.0 ISA bridge: Intel Corporation 82371FB PIIX ISA [Triton I] (rev 02) >>> 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: 86 80 2e 12 0f 00 80 02 02 00 01 06 00 00 80 00 >>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 4d 00 60 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 0b 0b 0b 09 00 00 00 00 00 f2 05 00 00 00 00 00 >>> 70: 0f 80 00 00 00 00 04 04 02 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 03 00 e0 00 02 d0 00 a0 13 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 08 02 00 00 00 00 00 00 >>> >>> 00:07.1 IDE interface: Intel Corporation 82371FB PIIX IDE [Triton I] (rev 02) (prog-if 80 [Master]) >>> 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 >>> Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8] >>> Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1] >>> Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8] >>> Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1] >>> Region 4: I/O ports at ef80 [size=16] >>> Kernel driver in use: pata_oldpiix >>> 00: 86 80 30 12 05 00 80 02 02 80 01 01 00 40 00 00 >>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 81 ef 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 40: 36 a3 07 a3 00 00 00 00 00 00 00 00 00 00 00 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 08 02 00 00 00 00 00 00 >>> >>> 00:0e.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (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: 66, Cache Line Size: 32 bytes >>> >>> Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 >>> I/O behind bridge: 0000f000-0000ffff >>> Memory behind bridge: f5e00000-fbffffff >>> Prefetchable memory behind bridge: d5d00000-f5dfffff >>> 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: [40] 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- >>> >>> Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ >>> Address: 0000000000000000 Data: 0000 >>> Capabilities: [60] Express (v1) PCI/PCI-X to PCI-Express Bridge, 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- BrConfRtry- >>> 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; Disabled- Retrain- CommClk- >>> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- >>> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- >>> 00: b5 10 12 81 17 01 30 02 aa 00 04 06 08 42 01 00 >>> 10: 00 00 00 00 00 00 00 00 00 01 01 00 f0 f0 00 00 >>> 20: e0 f5 f0 fb d0 d5 d0 f5 00 00 00 00 00 00 00 00 >>> 30: 00 00 00 00 40 00 00 00 00 00 00 00 00 01 0b 00 >>> 40: 01 50 02 5a 00 00 00 00 10 28 0e 00 00 00 00 00 >>> 50: 05 60 80 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 10 00 81 00 00 00 00 00 00 20 00 00 11 4c 02 00 >>> 70: 00 00 11 00 80 0c 00 00 00 00 40 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 00:0f.0 USB controller: ULi Electronics Inc. USB 1.1 Controller (rev 03) (prog-if 10 [OHCI]) >>> Subsystem: ULi Electronics Inc. ASRock 939Dual-SATA2 Motherboard >>> 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 (20000ns max), Cache Line Size: 32 bytes >>> Interrupt: pin B routed to IRQ 9 >>> Region 0: Memory at ffbeb000 (32-bit, non-prefetchable) [size=4K] >>> Capabilities: [60] 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- >>> Kernel driver in use: ohci-pci >>> 00: b9 10 37 52 17 01 b0 02 03 10 03 0c 08 40 80 00 >>> 10: 00 b0 be ff 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 37 52 >>> 30: 00 00 00 00 60 00 00 00 00 00 00 00 09 02 00 50 >>> 40: 00 00 1f 00 e0 02 00 00 00 00 00 00 00 00 00 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 01 00 02 d8 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 00:0f.1 USB controller: ULi Electronics Inc. USB 1.1 Controller (rev 03) (prog-if 10 [OHCI]) >>> Subsystem: ULi Electronics Inc. ASRock 939Dual-SATA2 Motherboard >>> 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 (20000ns max), Cache Line Size: 32 bytes >>> Interrupt: pin C routed to IRQ 11 >>> Region 0: Memory at ffbec000 (32-bit, non-prefetchable) [size=4K] >>> Capabilities: [60] 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- >>> Kernel driver in use: ohci-pci >>> 00: b9 10 37 52 17 01 b0 02 03 10 03 0c 08 40 80 00 >>> 10: 00 c0 be ff 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 37 52 >>> 30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 03 00 50 >>> 40: 00 00 1f 00 e0 02 00 00 00 00 00 00 00 00 00 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 01 00 02 d8 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 00:0f.2 USB controller: ULi Electronics Inc. USB 1.1 Controller (rev 03) (prog-if 10 [OHCI]) >>> Subsystem: ULi Electronics Inc. ASRock 939Dual-SATA2 Motherboard >>> 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 (20000ns max), Cache Line Size: 32 bytes >>> Interrupt: pin D routed to IRQ 11 >>> Region 0: Memory at ffbed000 (32-bit, non-prefetchable) [size=4K] >>> Capabilities: [60] 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- >>> Kernel driver in use: ohci-pci >>> 00: b9 10 37 52 17 01 b0 02 03 10 03 0c 08 40 80 00 >>> 10: 00 d0 be ff 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 37 52 >>> 30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 04 00 50 >>> 40: 00 00 1f 00 e0 02 00 00 00 00 00 00 00 00 00 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 01 00 02 d8 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 00:0f.3 USB controller: ULi Electronics Inc. USB 2.0 Controller (rev 01) (prog-if 20 [EHCI]) >>> Subsystem: ULi Electronics Inc. Device 5272 >>> 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 (20000ns max), Cache Line Size: 32 bytes >>> Interrupt: pin A routed to IRQ 11 >>> Region 0: Memory at ffbefc00 (32-bit, non-prefetchable) [size=256] >>> Capabilities: [50] 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- >>> Capabilities: [58] Debug port: BAR=1 offset=0090 >>> Kernel driver in use: ehci-pci >>> 00: b9 10 39 52 16 01 b0 02 01 20 03 0c 08 40 80 00 >>> 10: 00 fc be ff 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 b9 10 72 52 >>> 30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 50 >>> 40: 01 02 00 ee 00 00 10 c4 00 00 00 00 00 00 00 00 >>> 50: 01 58 02 c8 00 00 00 00 0a 00 90 20 00 00 00 00 >>> 60: 20 20 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 01 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 00:10.0 RAID bus controller: Silicon Image, Inc. PCI0680 Ultra ATA-133 Host Controller (rev 02) >>> Subsystem: Silicon Image, Inc. Winic W-680 (Silicon Image 680 based) >>> 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: 4 bytes >>> Interrupt: pin A routed to IRQ 9 >>> Region 0: I/O ports at eff0 [size=8] >>> Region 1: I/O ports at efe4 [size=4] >>> Region 2: I/O ports at efa8 [size=8] >>> Region 3: I/O ports at efe0 [size=4] >>> Region 4: I/O ports at ef90 [size=16] >>> Region 5: Memory at ffbeec00 (32-bit, non-prefetchable) [size=256] >>> [virtual] Expansion ROM at 08000000 [disabled] [size=512K] >>> Capabilities: [60] 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=2 PME- >>> Kernel driver in use: pata_sil680 >>> 00: 95 10 80 06 07 01 90 02 02 00 04 01 01 40 00 00 >>> 10: f1 ef 00 00 e5 ef 00 00 a9 ef 00 00 e1 ef 00 00 >>> 20: 91 ef 00 00 00 ec be ff 00 00 00 00 95 10 80 36 >>> 30: 00 00 00 00 60 00 00 00 00 00 00 00 09 01 00 00 >>> 40: 00 00 00 00 90 14 19 08 00 00 00 00 00 00 00 00 >>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 01 00 22 06 00 40 00 64 00 00 00 00 00 00 00 00 >>> 70: 08 00 00 00 00 70 57 07 00 00 00 00 00 00 00 00 >>> 80: 03 00 00 00 00 00 00 00 00 00 11 00 d9 7d ff 7b >>> 90: 00 fe 00 0d ff ff ff 3b 33 00 00 19 ff 00 00 00 >>> a0: 00 62 c1 10 c1 10 8a 32 c1 10 92 43 07 40 09 40 >>> b0: 01 60 8a 32 8a 32 8a 32 92 43 92 43 09 40 09 40 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> 01:00.0 VGA compatible controller: NVIDIA Corporation G96 [GeForce 9400 GT] (rev a1) (prog-if 00 [VGA controller]) >>> Subsystem: Jaton Corp Device 0641 >>> 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: 32 bytes >>> Interrupt: pin A routed to IRQ 11 >>> Region 0: Memory at fb000000 (32-bit, non-prefetchable) [size=16M] >>> Region 1: Memory at e0000000 (64-bit, prefetchable) [size=256M] >>> Region 3: Memory at f8000000 (64-bit, non-prefetchable) [size=32M] >>> Region 5: I/O ports at fc80 [size=128] >>> >>> [virtual] Expansion ROM at d5d00000 [disabled] [size=512K] >>> Capabilities: [60] 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: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ >>> Address: 0000000000000000 Data: 0000 >>> Capabilities: [78] Express (v1) Endpoint, MSI 00 >>> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <4us >>> 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 x16, ASPM L0s L1, Latency L0 <512ns, L1 <1us >>> ClockPM- Surprise- LLActRep- BwNot- >>> LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk- >>> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- >>> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- >>> >>> Capabilities: [b4] Vendor Specific Information: Len=14 <?> >>> Kernel driver in use: nouveau >>> 00: de 10 41 06 07 01 10 00 a1 00 00 03 08 00 00 00 >>> 10: 00 00 00 fb 0c 00 00 e0 00 00 00 00 04 00 00 f8 >>> 20: 00 00 00 00 81 fc 00 00 00 00 00 00 13 1b 41 06 >>> 30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 01 00 00 >>> 40: 13 1b 41 06 00 00 00 00 00 00 00 00 00 00 00 00 >>> 50: 01 00 00 00 01 00 00 00 ce d6 23 00 00 00 00 00 >>> 60: 01 68 03 00 00 00 00 00 05 78 80 00 00 00 00 00 >>> 70: 00 00 00 00 00 00 00 00 10 b4 01 00 e0 84 64 00 >>> 80: 10 28 00 00 01 3d 00 00 08 00 11 10 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 09 00 14 01 00 00 00 00 00 00 00 00 >>> c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> >>> >>> >>> On Thu, Jul 3, 2014 at 1:58 AM, Yijing Wang <wangyijing@xxxxxxxxxx <mailto:wangyijing@xxxxxxxxxx>> wrote: >>> >>> On 2014/7/3 11:20, Ilia Mirkin wrote: >>> > Hello, >>> > >>> > A user (cc'd) reported that nouveau's enabling of MSI causes the card >>> > to not work on his setup [1]. I think the situation is that MSI is >>> > just not supported by the underlying motherboard, even though the >>> > card, and probably bridge, support it just fine. It's a very old >>> > board. The nouveau code does: >>> >>> >>> What is the kernel version running in your board ? >>> >>> > >>> > pmc->use_msi = pci_enable_msi(device->pdev) == 0; >>> >>> Driver call pci_enable_msi() and always return 0 ? >>> >>> > >>> > Does it need to do more checking than that before trying to enable MSI >>> > on the device? Could it be that the linux pci subsystem is missing on >>> > inheriting MSI capabilities somewhere? >>> >>> pci_enable_msi() will checking your device whether it supports MSI. >>> Can you provide the detailed lspci information ? eg. lspci -vvvxxx ? >>> >>> >>> > >>> > -ilia >>> > >>> > [1] >>> > >>> > 00:00.0 Host bridge [0600]: Intel Corporation 430FX - 82437FX TSC >>> > [Triton I] [8086:122d] (rev 01) >>> > Flags: bus master, medium devsel, latency 64 >>> > >>> > 00:0e.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI >>> > Express-to-PCI Bridge [10b5:8112] (rev aa) (prog-if 00 [Normal >>> > decode]) >>> > Flags: bus master, 66MHz, medium devsel, latency 66 >>> > Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 >>> > I/O behind bridge: 0000f000-0000ffff >>> > Memory behind bridge: f5e00000-fbffffff >>> > Prefetchable memory behind bridge: d5d00000-f5dfffff >>> > Capabilities: [40] Power Management version 2 >>> > Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ >>> > Capabilities: [60] Express PCI/PCI-X to PCI-Express Bridge, MSI 00 >>> > >>> > 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96 >>> > [GeForce 9400 GT] [10de:0641] (rev a1) (prog-if 00 [VGA controller]) >>> > Subsystem: Jaton Corp Device [1b13:0641] >>> > Flags: bus master, fast devsel, latency 0, IRQ 11 >>> > Memory at fb000000 (32-bit, non-prefetchable) [size=16M] >>> > Memory at e0000000 (64-bit, prefetchable) [size=256M] >>> > Memory at f8000000 (64-bit, non-prefetchable) [size=32M] >>> > I/O ports at fc80 [size=128] >>> > [virtual] Expansion ROM at d5d00000 [disabled] [size=512K] >>> > Capabilities: [60] Power Management version 3 >>> > Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ >>> > Capabilities: [78] Express Endpoint, MSI 00 >>> > Capabilities: [b4] Vendor Specific Information: Len=14 <?> >>> > Kernel driver in use: nouveau >>> > -- >>> > To unsubscribe from this list: send the line "unsubscribe linux-pci" in >>> > the body of a message to majordomo@xxxxxxxxxxxxxxx <mailto:majordomo@xxxxxxxxxxxxxxx> >>> > More majordomo info at http://vger.kernel.org/majordomo-info.html >>> > >>> > >>> >>> >>> -- >>> Thanks! >>> Yijing >>> >>> >> >> >> -- >> Thanks! >> Yijing >> > > . > -- Thanks! Yijing -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html