On 05/29/2012 06:16 PM, Joerg Roedel wrote: > On Tue, May 29, 2012 at 10:56:50AM +0200, Antonio Quartulli wrote: >> attached! >> Some days ago I tried to put some printk in the code and, as far as I can >> understand, you are right. > > Hmm, looks like device 03:00.0 is a 32bit PCI device attached to device > 00:1c.2 which calls itself a Root Port instead of a PCI Bridge. I am > not sure if the check in search.c is really necessary. As I see it there > are also other possible pcie_types like PCI_EXP_TYPE_PCIE_BRIDGE. > Putting Anil Keshavamurthy on Cc. > > Anil, is this check in pci_find_upstream_pcie_bridge() really > necessary: > > /* PCI device should connect to a PCIe bridge */ > if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) { > /* Busted hardware? */ > WARN_ON_ONCE(1); > return NULL; > } > > ? In the warning that triggers for Antonio the value of pcie_type seems > to be PCI_EXP_TYPE_ROOT_PORT and from the available types I think that > PCI_EXP_TYPE_PCIE_BRIDGE is also possible. It seems that device 00:1c.2 is a real PCIe root port, and device 03:00.0 is a CardBus bridge. Should we call device 03:00.0 as Legacy Endpoint here? Could a PCIe legacy endpoint be directly connected to root port and downstream port? If the answer is yes, the assumption in pci_find_upstream_pcie_bridge() BTW, does PCI_EXP_TYPE_PCIE_BRIDGE mean PCI/PCI-X to PCIe bridge? Do we really have such chipsets? Thanks Gerry > > Thanks, > > Joerg > -- 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