[Nouveau] How to check for proper MSI support?

Brian Becker brian.johnathan.b at gmail.com
Thu Jul 3 23:26:15 PDT 2014


I am booting a kernel with CONFIG_ACPI=n on a platform which does not
support ACPI.

-Brian

On Fri, Jul 4, 2014 at 1:59 AM, Yijing Wang <wangyijing at huawei.com> wrote:
>>>> There is a NVIDIA G96 GPU (which is PCIe only) hanging off of a PCIe
>>>> <-> PCI bridge (all on one card), which is plugged into a motherboard
>>>> with the 430FX chipset (PCI 2.0 supported).
>>>>
>>>> The GPU PCI device, of course, has full support for MSI. However my
>>>> understanding is that MSI won't actually work here. This is confirmed
>>>> by the fact that if we let nouveau enable MSI, the device doesn't work
>>>> (presumably due to lack of interrupt delivery, although I admit to not
>>>> having debugged it that far). How do I, as a nouveau driver developer,
>>>> know not to call pci_enable_msi? Or alternatively how can
>>>> pci_enable_msi be taught not to succeed in this case?
>>>
>>> You can set bus_flags or global pci_msi_enable flag by add quirk function.
>>> You can refer to examples in drivers/pci/quirk.c
>>>
>>> Linux support some broken chipsets or devices to disable msi during device initialization by add quirk.
>>
>> So let me get this straight -- you're suggesting I add a quirk for
>> every PCI chipset that doesn't support MSI? There are probably
>> hundreds of these... anything made before 1999 or so, and probably a
>> bunch since then too. There _has_ to be a way to do this generically.
>> Is the PCI spec version anywhere in the root hub?
>
> There is no register to identify PCI spec version in PCI config space registers.
> If your platform boot up with ACPI, you can setting ACPI FADT boot flag to disable MSI,
> you can refer to this in ACPI 5.2.9.3 chapter "Fixed ACPI Description Table Boot Architecture Flags"
>
>
>>
>> Perhaps we can check if every bridge on the way to the CPU has the MSI
>> capability (including the root hub)? (And naturally _that_ won't
>> work... on my sandybridge laptop, the host bridge doesn't have the MSI
>> cap but the system most definitely supports MSI.)
>>
>> Adding Bjorn... perhaps you know? Some of the info has been stripped
>> out by now, you can see the full lspci -vvvxxx at
>> http://marc.info/?l=linux-pci&m=140443441730503&w=2
>>
>>   -ilia
>>
>> .
>>
>
>
> --
> Thanks!
> Yijing
>


More information about the Nouveau mailing list