diff options
Diffstat (limited to 'board/cds/common/ft_board.c')
| -rw-r--r-- | board/cds/common/ft_board.c | 23 | 
1 files changed, 15 insertions, 8 deletions
| diff --git a/board/cds/common/ft_board.c b/board/cds/common/ft_board.c index 9d97905ca..3eda1009e 100644 --- a/board/cds/common/ft_board.c +++ b/board/cds/common/ft_board.c @@ -37,17 +37,24 @@ static void cds_pci_fixup(void *blob)  	map = ft_get_prop(blob, "/" OF_SOC "/pci@8000/interrupt-map", &len); -	len /= sizeof(u32); +	if (!map) +		map = ft_get_prop(blob, "/" OF_PCI "/interrupt-map", &len); -	slot = get_pci_slot(); +	if (map) { +		len /= sizeof(u32); -	for (i=0;i<len;i+=7) { -		/* We rotate the interrupt pins so that the mapping -		 * changes depending on the slot the carrier card is in. -		 */ -		map[3] = ((map[3] + slot - 2) % 4) + 1; +		slot = get_pci_slot(); -		map+=7; +		for (i=0;i<len;i+=7) { +			/* We rotate the interrupt pins so that the mapping +			 * changes depending on the slot the carrier card is in. +			 */ +			map[3] = ((map[3] + slot - 2) % 4) + 1; + +			map+=7; +		} +	} else { +		printf("*** Warning - No PCI node found\n");  	}  }  #endif |