[POWERPC] Fix section mismatch in PCI code
[profile/ivi/kernel-adaptation-intel-automotive.git] / arch / powerpc / platforms / celleb / pci.c
index 98de836..1348b23 100644 (file)
@@ -242,8 +242,8 @@ static int celleb_fake_pci_write_config(struct pci_bus *bus,
 }
 
 static struct pci_ops celleb_fake_pci_ops = {
-       celleb_fake_pci_read_config,
-       celleb_fake_pci_write_config
+       .read = celleb_fake_pci_read_config,
+       .write = celleb_fake_pci_write_config,
 };
 
 static inline void celleb_setup_pci_base_addrs(struct pci_controller *hose,
@@ -288,8 +288,8 @@ static inline void celleb_setup_pci_base_addrs(struct pci_controller *hose,
        celleb_config_write_fake(config, PCI_COMMAND, 2, val);
 }
 
-static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
-                                                 struct pci_controller *hose)
+static int __init celleb_setup_fake_pci_device(struct device_node *node,
+                                              struct pci_controller *hose)
 {
        unsigned int rlen;
        int num_base_addr = 0;
@@ -309,13 +309,13 @@ static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
                goto error;
        }
 
-       name = get_property(node, "model", &rlen);
+       name = of_get_property(node, "model", &rlen);
        if (!name) {
                printk(KERN_ERR "PCI: model property not found.\n");
                goto error;
        }
 
-       wi4 = get_property(node, "reg", &rlen);
+       wi4 = of_get_property(node, "reg", &rlen);
        if (wi4 == NULL)
                goto error;
 
@@ -327,10 +327,7 @@ static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
 
        size = 256;
        config = &private->fake_config[devno][fn];
-       if (mem_init_done)
-               *config = kzalloc(size, GFP_KERNEL);
-       else
-               *config = alloc_bootmem(size);
+       *config = alloc_maybe_bootmem(size, GFP_KERNEL);
        if (*config == NULL) {
                printk(KERN_ERR "PCI: "
                       "not enough memory for fake configuration space\n");
@@ -341,10 +338,7 @@ static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
 
        size = sizeof(struct celleb_pci_resource);
        res = &private->res[devno][fn];
-       if (mem_init_done)
-               *res = kzalloc(size, GFP_KERNEL);
-       else
-               *res = alloc_bootmem(size);
+       *res = alloc_maybe_bootmem(size, GFP_KERNEL);
        if (*res == NULL) {
                printk(KERN_ERR
                       "PCI: not enough memory for resource data space\n");
@@ -352,10 +346,10 @@ static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
        }
        pr_debug("PCI: res assigned 0x%016lx\n", (unsigned long)*res);
 
-       wi0 = get_property(node, "device-id", NULL);
-       wi1 = get_property(node, "vendor-id", NULL);
-       wi2 = get_property(node, "class-code", NULL);
-       wi3 = get_property(node, "revision-id", NULL);
+       wi0 = of_get_property(node, "device-id", NULL);
+       wi1 = of_get_property(node, "vendor-id", NULL);
+       wi2 = of_get_property(node, "class-code", NULL);
+       wi3 = of_get_property(node, "revision-id", NULL);
 
        celleb_config_write_fake(*config, PCI_DEVICE_ID, 2, wi0[0] & 0xffff);
        celleb_config_write_fake(*config, PCI_VENDOR_ID, 2, wi1[0] & 0xffff);
@@ -376,7 +370,7 @@ static int __devinit celleb_setup_fake_pci_device(struct device_node *node,
 
        celleb_setup_pci_base_addrs(hose, devno, fn, num_base_addr);
 
-       li = get_property(node, "interrupts", &rlen);
+       li = of_get_property(node, "interrupts", &rlen);
        val = li[0];
        celleb_config_write_fake(*config, PCI_INTERRUPT_PIN, 1, 1);
        celleb_config_write_fake(*config, PCI_INTERRUPT_LINE, 1, val);
@@ -418,13 +412,13 @@ error:
        return 1;
 }
 
-static int __devinit phb_set_bus_ranges(struct device_node *dev,
-                                       struct pci_controller *phb)
+static int __init phb_set_bus_ranges(struct device_node *dev,
+                                    struct pci_controller *phb)
 {
        const int *bus_range;
        unsigned int len;
 
-       bus_range = get_property(dev, "bus-range", &len);
+       bus_range = of_get_property(dev, "bus-range", &len);
        if (bus_range == NULL || len < 2 * sizeof(int))
                return 1;
 
@@ -434,29 +428,27 @@ static int __devinit phb_set_bus_ranges(struct device_node *dev,
        return 0;
 }
 
-static void __devinit celleb_alloc_private_mem(struct pci_controller *hose)
+static void __init celleb_alloc_private_mem(struct pci_controller *hose)
 {
-       if (mem_init_done)
-               hose->private_data =
-                       kzalloc(sizeof(struct celleb_pci_private), GFP_KERNEL);
-       else
-               hose->private_data =
-                       alloc_bootmem(sizeof(struct celleb_pci_private));
+       hose->private_data =
+               alloc_maybe_bootmem(sizeof(struct celleb_pci_private),
+                       GFP_KERNEL);
 }
 
-int __devinit celleb_setup_phb(struct pci_controller *phb)
+int __init celleb_setup_phb(struct pci_controller *phb)
 {
        const char *name;
        struct device_node *dev = phb->arch_data;
        struct device_node *node;
        unsigned int rlen;
 
-       name = get_property(dev, "name", &rlen);
+       name = of_get_property(dev, "name", &rlen);
        if (!name)
                return 1;
 
        pr_debug("PCI: celleb_setup_phb() %s\n", name);
        phb_set_bus_ranges(dev, phb);
+       phb->buid = 1;
 
        if (strcmp(name, "epci") == 0) {
                phb->ops = &celleb_epci_ops;