From: Brice Goglin <brice@myri.com>
To: Grant Grundler <grundler@parisc-linux.org>
Cc: linux-pci@atrey.karlin.mff.cuni.cz, linux-kernel@vger.kernel.org
Subject: Re: [patch 3/7] Check root chipset no_msi flag instead of all parent busses flags
Date: Tue, 04 Jul 2006 19:12:25 -0400 [thread overview]
Message-ID: <44AAF5D9.9040908@myri.com> (raw)
In-Reply-To: <20060704070643.GA16632@colo.lackof.org>
Grant Grundler wrote:
> If the "root chipset" is not a PCI device and the architecture doesn't
> fake it, the root chipset (aka "PCI Host bus controller") is not visible
> to PCI subsystem. Some of the arch code (e.g. drivers/parisc/dino.c)
> uses "bus->self == NULL" to differentiate between PCI-PCI secondary busses
> and PCI bus below a "root chipset". ISTR alpha and sparc doing the same.
>
> Can you confirm I'm remembering/understanding this bit correctly?
>
I am not familiar enough with these architectures, but I guess somebody
else is.
Are MSI working on these architectures? The MSI code in Linux seems to
be very specific so far. And CONFIG_PCI_MSI currently depends on
(X86_LOCAL_APIC && X86_IO_APIC) || IA64
>> pci_msi_supported() now checks the no_msi flag in the root_chipset pci_dev
>> struct instead of the PCI_BUS_FLAGS_NO_MSI flag of all its parent busses.
>> The MSI quirk now sets the no_msi flag accordingly.
>>
>
> I don't see how this could work for alpha/parisc/sparc (IIRC) or any other
> architecture that doesn't create "fake" PCI Root busses.
> I think your previous patch was correct in this regard.
>
I don't think it was better. I had the same loop to find the root
chipset. Only the check afterwards has been changed: instead of checking
the subordinate bus flags on the root chipset, I checks its no_msi. Both
patches applied to these architectures would fail to find the root
chipset in the while loop. They will find a bridge right under the root
chipset (or the device itself). The flags are then checked on the bridge
bus, not on the bus that is right under the root chipset.
Anyway, assuming that Linux supports MSI on any of these architectures
and that we find a root chipset that does not support MSI, how would we
blacklist it? There's no way to add a quirk if there is no pci_dev
associated to this root chipset, right?
Assuming we find a place to add some code to disable MSI
(pcibios_fixup_foo?), we would have to set a no_msi flag somewhere. It
might be good to revive the bus flags for this case. But, that's a lot
of "assuming", I'd rather know whether all this is possible first :)
Thanks,
Brice
next prev parent reply other threads:[~2006-07-04 23:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-03 0:39 [patch 0/7] Improve MSI detection v5 Brice Goglin
2006-07-03 0:40 ` [patch 1/7] Merge existing MSI disabling quirks Brice Goglin
2006-07-03 0:40 ` [patch 2/7] Factorize common MSI detection code from pci_enable_msi() and msix() Brice Goglin
2006-07-03 0:40 ` [patch 3/7] Check root chipset no_msi flag instead of all parent busses flags Brice Goglin
2006-07-04 7:06 ` Grant Grundler
2006-07-04 23:12 ` Brice Goglin [this message]
2006-07-05 3:48 ` Grant Grundler
2006-07-05 4:38 ` Brice Goglin
2006-07-06 15:39 ` Grant Grundler
2006-07-06 15:46 ` Brice Goglin
2006-07-06 0:50 ` Benjamin Herrenschmidt
2006-07-03 0:40 ` [patch 4/7] Rename PCI_CAP_ID_HT_IRQCONF into PCI_CAP_ID_HT Brice Goglin
2006-07-03 0:40 ` [patch 5/7] Blacklist PCI-E chipsets depending on Hypertransport MSI capability Brice Goglin
2006-07-03 0:40 ` [patch 6/7] Drop pci_msi_quirk Brice Goglin
2006-07-03 0:40 ` [patch 7/7] Drop pci bus_flags Brice Goglin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44AAF5D9.9040908@myri.com \
--to=brice@myri.com \
--cc=grundler@parisc-linux.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox