diff options
Diffstat (limited to 'arch/sparc/kernel/pci.c')
| -rw-r--r-- | arch/sparc/kernel/pci.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index b91d7f146175..badf0951d73c 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c @@ -185,8 +185,10 @@ static unsigned long pci_parse_of_flags(u32 addr0)  	if (addr0 & 0x02000000) {  		flags = IORESOURCE_MEM | PCI_BASE_ADDRESS_SPACE_MEMORY; -		flags |= (addr0 >> 22) & PCI_BASE_ADDRESS_MEM_TYPE_64;  		flags |= (addr0 >> 28) & PCI_BASE_ADDRESS_MEM_TYPE_1M; +		if (addr0 & 0x01000000) +			flags |= IORESOURCE_MEM_64 +				 | PCI_BASE_ADDRESS_MEM_TYPE_64;  		if (addr0 & 0x40000000)  			flags |= IORESOURCE_PREFETCH  				 | PCI_BASE_ADDRESS_MEM_PREFETCH; @@ -655,6 +657,9 @@ struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm,  				pbm->io_space.start);  	pci_add_resource_offset(&resources, &pbm->mem_space,  				pbm->mem_space.start); +	if (pbm->mem64_space.flags) +		pci_add_resource_offset(&resources, &pbm->mem64_space, +					pbm->mem_space.start);  	pbm->busn.start = pbm->pci_first_busno;  	pbm->busn.end	= pbm->pci_last_busno;  	pbm->busn.flags	= IORESOURCE_BUS; |