|
17 | 17 | #include <asm/mach/pci.h>
|
18 | 18 |
|
19 | 19 | static int debug_pci;
|
| 20 | +static resource_size_t (*align_resource)(struct pci_dev *dev, |
| 21 | + const struct resource *res, |
| 22 | + resource_size_t start, |
| 23 | + resource_size_t size, |
| 24 | + resource_size_t align) = NULL; |
20 | 25 |
|
21 | 26 | /*
|
22 | 27 | * We can't use pci_get_device() here since we are
|
@@ -456,7 +461,7 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
|
456 | 461 | sys->busnr = busnr;
|
457 | 462 | sys->swizzle = hw->swizzle;
|
458 | 463 | sys->map_irq = hw->map_irq;
|
459 |
| - sys->align_resource = hw->align_resource; |
| 464 | + align_resource = hw->align_resource; |
460 | 465 | INIT_LIST_HEAD(&sys->resources);
|
461 | 466 |
|
462 | 467 | if (hw->private_data)
|
@@ -572,16 +577,15 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
|
572 | 577 | resource_size_t size, resource_size_t align)
|
573 | 578 | {
|
574 | 579 | struct pci_dev *dev = data;
|
575 |
| - struct pci_sys_data *sys = dev->sysdata; |
576 | 580 | resource_size_t start = res->start;
|
577 | 581 |
|
578 | 582 | if (res->flags & IORESOURCE_IO && start & 0x300)
|
579 | 583 | start = (start + 0x3ff) & ~0x3ff;
|
580 | 584 |
|
581 | 585 | start = (start + align - 1) & ~(align - 1);
|
582 | 586 |
|
583 |
| - if (sys->align_resource) |
584 |
| - return sys->align_resource(dev, res, start, size, align); |
| 587 | + if (align_resource) |
| 588 | + return align_resource(dev, res, start, size, align); |
585 | 589 |
|
586 | 590 | return start;
|
587 | 591 | }
|
|
0 commit comments