pci: Add a probing code that seeks for an specific bus
This patch adds a probing code that seeks for an specific pci bus. It still needs testing, but it is hoped that this will help to identify the memory controller with Xeon 55xx series. Signed-off-by: Aristeu Sergio <arozansk@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
这个提交包含在:

提交者
Mauro Carvalho Chehab

父节点
e9bd2e7379
当前提交
5707b24a50
@@ -11,28 +11,14 @@
|
||||
*/
|
||||
static void __devinit pcibios_fixup_peer_bridges(void)
|
||||
{
|
||||
int n, devfn;
|
||||
long node;
|
||||
int n;
|
||||
|
||||
if (pcibios_last_bus <= 0 || pcibios_last_bus > 0xff)
|
||||
return;
|
||||
DBG("PCI: Peer bridge fixup\n");
|
||||
|
||||
for (n=0; n <= pcibios_last_bus; n++) {
|
||||
u32 l;
|
||||
if (pci_find_bus(0, n))
|
||||
continue;
|
||||
node = get_mp_bus_to_node(n);
|
||||
for (devfn = 0; devfn < 256; devfn += 8) {
|
||||
if (!raw_pci_read(0, n, devfn, PCI_VENDOR_ID, 2, &l) &&
|
||||
l != 0x0000 && l != 0xffff) {
|
||||
DBG("Found device at %02x:%02x [%04x]\n", n, devfn, l);
|
||||
printk(KERN_INFO "PCI: Discovered peer bus %02x\n", n);
|
||||
pci_scan_bus_on_node(n, &pci_root_ops, node);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (n=0; n <= pcibios_last_bus; n++)
|
||||
pcibios_scan_specific_bus(n);
|
||||
}
|
||||
|
||||
int __init pci_legacy_init(void)
|
||||
@@ -49,6 +35,28 @@ int __init pci_legacy_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pci_legacy_init);
|
||||
|
||||
void pcibios_scan_specific_bus(int busn)
|
||||
{
|
||||
int devfn;
|
||||
long node;
|
||||
u32 l;
|
||||
|
||||
if (pci_find_bus(0, busn))
|
||||
return;
|
||||
|
||||
node = get_mp_bus_to_node(busn);
|
||||
for (devfn = 0; devfn < 256; devfn += 8) {
|
||||
if (!raw_pci_read(0, busn, devfn, PCI_VENDOR_ID, 2, &l) &&
|
||||
l != 0x0000 && l != 0xffff) {
|
||||
DBG("Found device at %02x:%02x [%04x]\n", busn, devfn, l);
|
||||
printk(KERN_INFO "PCI: Discovered peer bus %02x\n", busn);
|
||||
pci_scan_bus_on_node(busn, &pci_root_ops, node);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int __init pci_subsys_init(void)
|
||||
{
|
||||
|
在新工单中引用
屏蔽一个用户