Merge branch 'linaro-android-3.10-lsk' of git://android.git.linaro.org/kernel/linaro...
[firefly-linux-kernel-4.4.55.git] / arch / arm / kernel / bios32.c
index a1f73b502ef0e787e4b47b5e8cf583f6a1c4ed9d..b2ed73c454892ba8c7a7c06d66ef93881b6c2126 100644 (file)
@@ -462,6 +462,7 @@ static void pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
                sys->busnr   = busnr;
                sys->swizzle = hw->swizzle;
                sys->map_irq = hw->map_irq;
+               sys->align_resource = hw->align_resource;
                INIT_LIST_HEAD(&sys->resources);
 
                if (hw->private_data)
@@ -574,6 +575,8 @@ char * __init pcibios_setup(char *str)
 resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
+       struct pci_dev *dev = data;
+       struct pci_sys_data *sys = dev->sysdata;
        resource_size_t start = res->start;
 
        if (res->flags & IORESOURCE_IO && start & 0x300)
@@ -581,6 +584,9 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
 
        start = (start + align - 1) & ~(align - 1);
 
+       if (sys->align_resource)
+               return sys->align_resource(dev, res, start, size, align);
+
        return start;
 }