diff options
Diffstat (limited to 'arch/parisc/kernel/pci.c')
| -rw-r--r-- | arch/parisc/kernel/pci.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/parisc/kernel/pci.c b/arch/parisc/kernel/pci.c index f7064abc3bb..38372e7cbb8 100644 --- a/arch/parisc/kernel/pci.c +++ b/arch/parisc/kernel/pci.c @@ -18,7 +18,6 @@  #include <asm/io.h>  #include <asm/system.h> -#include <asm/cache.h>		/* for L1_CACHE_BYTES */  #include <asm/superio.h>  #define DEBUG_RESOURCES 0 @@ -123,6 +122,10 @@ static int __init pcibios_init(void)  	} else {  		printk(KERN_WARNING "pci_bios != NULL but init() is!\n");  	} + +	/* Set the CLS for PCI as early as possible. */ +	pci_cache_line_size = pci_dfl_cache_line_size; +  	return 0;  } @@ -171,7 +174,7 @@ void pcibios_set_master(struct pci_dev *dev)  	** upper byte is PCI_LATENCY_TIMER.  	*/  	pci_write_config_word(dev, PCI_CACHE_LINE_SIZE, -				(0x80 << 8) | (L1_CACHE_BYTES / sizeof(u32))); +			      (0x80 << 8) | pci_cache_line_size);  } @@ -254,10 +257,10 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);   * Since we are just checking candidates, don't use any fields other   * than res->start.   */ -void pcibios_align_resource(void *data, struct resource *res, +resource_size_t pcibios_align_resource(void *data, const struct resource *res,  				resource_size_t size, resource_size_t alignment)  { -	resource_size_t mask, align; +	resource_size_t mask, align, start = res->start;  	DBG_RES("pcibios_align_resource(%s, (%p) [%lx,%lx]/%x, 0x%lx, 0x%lx)\n",  		pci_name(((struct pci_dev *) data)), @@ -269,10 +272,10 @@ void pcibios_align_resource(void *data, struct resource *res,  	/* Align to largest of MIN or input size */  	mask = max(alignment, align) - 1; -	res->start += mask; -	res->start &= ~mask; +	start += mask; +	start &= ~mask; -	/* The caller updates the end field, we don't.  */ +	return start;  }  |