|
From: Laurence L. <la...@us...> - 2007-06-11 05:07:36
|
Update of /cvsroot/xbox-linux/kernel-2.6/arch/i386/pci In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv4988/arch/i386/pci Modified Files: direct.c Log Message: Merge 2.6.19 Index: direct.c =================================================================== RCS file: /cvsroot/xbox-linux/kernel-2.6/arch/i386/pci/direct.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- direct.c 11 Jun 2007 05:04:00 -0000 1.8 +++ direct.c 11 Jun 2007 05:07:36 -0000 1.9 @@ -258,7 +258,18 @@ return works; } -void __init pci_direct_init(void) +void __init pci_direct_init(int type) +{ + if (type == 0) + return; + printk(KERN_INFO "PCI: Using configuration type %d\n", type); + if (type == 1) + raw_pci_ops = &pci_direct_conf1; + else + raw_pci_ops = &pci_direct_conf2; +} + +int __init pci_direct_probe(void) { struct resource *region, *region2; @@ -268,19 +279,16 @@ if (!region) goto type2; - if (pci_check_type1()) { - printk(KERN_INFO "PCI: Using configuration type 1\n"); - raw_pci_ops = &pci_direct_conf1; - return; - } + if (pci_check_type1()) + return 1; release_resource(region); type2: if ((pci_probe & PCI_PROBE_CONF2) == 0) - return; + return 0; region = request_region(0xCF8, 4, "PCI conf2"); if (!region) - return; + return 0; region2 = request_region(0xC000, 0x1000, "PCI conf2"); if (!region2) goto fail2; @@ -288,10 +296,11 @@ if (pci_check_type2()) { printk(KERN_INFO "PCI: Using configuration type 2\n"); raw_pci_ops = &pci_direct_conf2; - return; + return 2; } release_resource(region2); fail2: release_resource(region); + return 0; } |