diff options
Diffstat (limited to 'arch/arm/kernel/bios32.c')
| -rw-r--r-- | arch/arm/kernel/bios32.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index a1f73b502ef..b2ed73c4548 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c @@ -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;  }  |