pci_probe_only is set on ppc64 to prevent resource re-allocation
by the core. It's meant to be used in very specific circumstances
such as when operating under a hypervisor that may prevent such
re-allocation.
Instead of default to 1, we make it default to 0 and explicitly
set it in the few cases where we need it.
This fixes FSL PCI which wants it clear among others.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
 #include <asm/machdep.h>
 #include <asm/ppc-pci.h>
 
-unsigned long pci_probe_only = 1;
+unsigned long pci_probe_only = 0;
 
 /* pci_io_base -- the base address from which io bars are offsets.
  * This is the lowest I/O base address (so bar values are always positive),
 
        }
        /* pmac_check_ht_link(); */
 
-       /* We can allocate missing resources if any */
-       pci_probe_only = 0;
-
 #else /* CONFIG_PPC64 */
        init_p2pbridge();
        init_second_ohare();
 
 
        pci_set_flags(PCI_CAN_SKIP_ISA_ALIGN);
 
-       /* We do not want to just probe */
-       pci_probe_only = 0;
-
        /* OPAL absent, try POPAL first then RTAS detection of PHBs */
        if (!firmware_has_feature(FW_FEATURE_OPAL)) {
 #ifdef CONFIG_PPC_POWERNV_RTAS
 
 
        fwnmi_init();
 
+       /* By default, only probe PCI (can be overriden by rtas_pci */
+       pci_probe_only = 1;
+
        /* Find and initialize PCI host bridges */
        init_pci_config_tokens();
        find_and_init_phbs();
 
        /* XXX Force re-assigning of everything for now */
        pci_add_flags(PCI_REASSIGN_ALL_BUS | PCI_REASSIGN_ALL_RSRC |
                      PCI_ENABLE_PROC_DOMAINS);
-       pci_probe_only = 0;
 
        /* Calculate how the TCE space is divided */
        phb->dma32_base         = 0;