Merge branches 'pci/host-exynos', 'pci/host-iproc', 'pci/host-keystone', 'pci/host...
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 10 Apr 2015 13:26:54 +0000 (08:26 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 10 Apr 2015 13:26:54 +0000 (08:26 -0500)
* pci/host-exynos:
  PCI: exynos: Fix INTx enablement statement termination error

* pci/host-iproc:
  PCI: iproc: Add Broadcom iProc PCIe support
  PCI: iproc: Add DT docs for Broadcom iProc PCIe driver
  PCI: Export symbols required for loadable host driver modules

* pci/host-keystone:
  PCI: keystone: Don't dereference possible NULL pointer

* pci/host-layerscape:
  PCI: layerscape: Simplify platform_get_resource_byname() failure checking

* pci/host-mvebu:
  PCI: mvebu: Add suspend/resume support

* pci/host-rcar:
  PCI: rcar: Verify that mem_res is 64K-aligned
  PCI: rcar: Change PCIEPARL and PCIEPARH to PCIEPALR and PCIEPAUR
  PCI: rcar: Write zeroes to reserved PCIEPARL bits
  PCI: rcar: Fix position of MSI enable bit

* pci/host-versatile:
  PCI: versatile: Check for devm_ioremap_resource() failures

1  2  3  4  5  6  7  8 
drivers/pci/host/pci-versatile.c
drivers/pci/pci.c
drivers/pci/probe.c

index c023e5808e8391f8b9d27c18b77041438f9c3624,1ec694a52379ea4c753cc1b397c931bc940bb1cc,1ec694a52379ea4c753cc1b397c931bc940bb1cc,1ec694a52379ea4c753cc1b397c931bc940bb1cc,1ec694a52379ea4c753cc1b397c931bc940bb1cc,1ec694a52379ea4c753cc1b397c931bc940bb1cc,1ec694a52379ea4c753cc1b397c931bc940bb1cc,b1caaea740fe371565a459eb9017c3602fb87b83..0863d9cc25f8619e9abc42c4adccdc00cc14d03a
@@@@@@@@@ -80,7 -80,7 -80,7 -80,7 -80,7 -80,7 -80,7 -80,7 +80,7 @@@@@@@@@ static int versatile_pci_parse_request_
                if (err)
                        return err;
        
 -------        resource_list_for_each_entry(win, res, list) {
 +++++++        resource_list_for_each_entry(win, res) {
                        struct resource *parent, *res = win->res;
        
                        switch (resource_type(res)) {
@@@@@@@@@ -138,19 -138,19 -138,19 -138,19 -138,19 -138,19 -138,19 -138,19 +138,19 @@@@@@@@@ static int versatile_pci_probe(struct p
                LIST_HEAD(pci_res);
        
                res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-------         if (!res)
-------                 return -ENODEV;
                versatile_pci_base = devm_ioremap_resource(&pdev->dev, res);
+++++++         if (IS_ERR(versatile_pci_base))
+++++++                 return PTR_ERR(versatile_pci_base);
        
                res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-------         if (!res)
-------                 return -ENODEV;
                versatile_cfg_base[0] = devm_ioremap_resource(&pdev->dev, res);
+++++++         if (IS_ERR(versatile_cfg_base[0]))
+++++++                 return PTR_ERR(versatile_cfg_base[0]);
        
                res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
-------         if (!res)
-------                 return -ENODEV;
                versatile_cfg_base[1] = devm_ioremap_resource(&pdev->dev, res);
+++++++         if (IS_ERR(versatile_cfg_base[1]))
+++++++                 return PTR_ERR(versatile_cfg_base[1]);
        
                ret = versatile_pci_parse_request_of_pci_ranges(&pdev->dev, &pci_res);
                if (ret)
        
                pci_fixup_irqs(pci_common_swizzle, of_irq_parse_and_map_pci);
                pci_assign_unassigned_bus_resources(bus);
 +++++++        pci_bus_add_devices(bus);
        
                return 0;
        }
diff --combined drivers/pci/pci.c
index 28df200bc54cf3b8db85f309553d7f64ee00f965,81f06e8dcc0449688e05b65504413320628b1579,14e7f3c407937b5f3e4fe3057e4651b7a3cb324f,81f06e8dcc0449688e05b65504413320628b1579,81f06e8dcc0449688e05b65504413320628b1579,81f06e8dcc0449688e05b65504413320628b1579,81f06e8dcc0449688e05b65504413320628b1579,81f06e8dcc0449688e05b65504413320628b1579..061fdce8f8e1906f3527bfbdee1678e8da5722c3
@@@@@@@@@ -126,16 -126,15 -126,15 -126,15 -126,15 -126,15 -126,15 -126,15 +126,16 @@@@@@@@@ EXPORT_SYMBOL_GPL(pci_bus_max_busnr)
        #ifdef CONFIG_HAS_IOMEM
        void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar)
        {
 +++++++        struct resource *res = &pdev->resource[bar];
 +++++++
                /*
                 * Make sure the BAR is actually a memory resource, not an IO resource
                 */
 -------        if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM)) {
 -------                WARN_ON(1);
 +++++++        if (res->flags & IORESOURCE_UNSET || !(res->flags & IORESOURCE_MEM)) {
 +++++++                dev_warn(&pdev->dev, "can't ioremap BAR %d: %pR\n", bar, res);
                        return NULL;
                }
 -------        return ioremap_nocache(pci_resource_start(pdev, bar),
 -------                                     pci_resource_len(pdev, bar));
 +++++++        return ioremap_nocache(res->start, resource_size(res));
        }
        EXPORT_SYMBOL_GPL(pci_ioremap_bar);
        #endif
@@@@@@@@@ -2493,6 -2492,6 -2492,7 -2492,6 -2492,6 -2492,6 -2492,6 -2492,6 +2493,7 @@@@@@@@@ u8 pci_common_swizzle(struct pci_dev *d
                *pinp = pin;
                return PCI_SLOT(dev->devfn);
        }
++ +++++EXPORT_SYMBOL_GPL(pci_common_swizzle);
        
        /**
         *      pci_release_region - Release a PCI bar
diff --combined drivers/pci/probe.c
index 56437bbb144dac7515c775bae2737f9b2434d62c,8d2f400e96cb848260fb3882a385dae0259c7ee4,f13a78af909e01f22071b93782c7b84fde6476ef,8d2f400e96cb848260fb3882a385dae0259c7ee4,8d2f400e96cb848260fb3882a385dae0259c7ee4,8d2f400e96cb848260fb3882a385dae0259c7ee4,8d2f400e96cb848260fb3882a385dae0259c7ee4,8d2f400e96cb848260fb3882a385dae0259c7ee4..6675a7a1b9fc6a113379b9e5ac025b2a3df66ad3
@@@@@@@@@ -6,7 -6,6 -6,6 -6,6 -6,6 -6,6 -6,6 -6,6 +6,7 @@@@@@@@@
        #include <linux/delay.h>
        #include <linux/init.h>
        #include <linux/pci.h>
 +++++++#include <linux/of_pci.h>
        #include <linux/pci_hotplug.h>
        #include <linux/slab.h>
        #include <linux/module.h>
@@@@@@@@@ -1521,7 -1520,6 -1520,6 -1520,6 -1520,6 -1520,6 -1520,6 -1520,6 +1521,7 @@@@@@@@@ void pci_device_add(struct pci_dev *dev
                dev->dev.dma_mask = &dev->dma_mask;
                dev->dev.dma_parms = &dev->dma_parms;
                dev->dev.coherent_dma_mask = 0xffffffffull;
 +++++++        of_pci_dma_configure(dev);
        
                pci_set_dma_max_seg_size(dev, 65536);
                pci_set_dma_seg_boundary(dev, 0xffffffff);
                kfree(b);
                return NULL;
        }
++ +++++EXPORT_SYMBOL_GPL(pci_create_root_bus);
        
        int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
        {
@@@@@@@@@ -2089,6 -2087,7 -2088,7 -2087,7 -2087,7 -2087,7 -2087,7 -2087,7 +2090,6 @@@@@@@@@ struct pci_bus *pci_scan_root_bus(struc
                if (!found)
                        pci_bus_update_busn_res_end(b, max);
        
 -------        pci_bus_add_devices(b);
                return b;
        }
        EXPORT_SYMBOL(pci_scan_root_bus);
@@@@@@@@@ -2124,6 -2123,7 -2124,7 -2123,7 -2123,7 -2123,7 -2123,7 -2123,7 +2125,6 @@@@@@@@@ struct pci_bus *pci_scan_bus(int bus, s
                b = pci_create_root_bus(NULL, bus, ops, sysdata, &resources);
                if (b) {
                        pci_scan_child_bus(b);
 -------                pci_bus_add_devices(b);
                } else {
                        pci_free_resource_list(&resources);
                }
This page took 0.032746 seconds and 5 git commands to generate.