diff options
-rw-r--r-- | arch/powerpc/sysdev/fsl_rio.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index c5aa179fceb7..39db9d1155d2 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -1076,8 +1076,9 @@ int fsl_rio_setup(struct of_device *dev) | |||
1076 | 1076 | ||
1077 | INIT_LIST_HEAD(&port->dbells); | 1077 | INIT_LIST_HEAD(&port->dbells); |
1078 | port->iores.start = law_start; | 1078 | port->iores.start = law_start; |
1079 | port->iores.end = law_start + law_size; | 1079 | port->iores.end = law_start + law_size - 1; |
1080 | port->iores.flags = IORESOURCE_MEM; | 1080 | port->iores.flags = IORESOURCE_MEM; |
1081 | port->iores.name = "rio_io_win"; | ||
1081 | 1082 | ||
1082 | priv->bellirq = irq_of_parse_and_map(dev->node, 2); | 1083 | priv->bellirq = irq_of_parse_and_map(dev->node, 2); |
1083 | priv->txirq = irq_of_parse_and_map(dev->node, 3); | 1084 | priv->txirq = irq_of_parse_and_map(dev->node, 3); |
@@ -1155,14 +1156,15 @@ int fsl_rio_setup(struct of_device *dev) | |||
1155 | out_be32((priv->regs_win + RIO_ISR_AACR), RIO_ISR_AACR_AA); | 1156 | out_be32((priv->regs_win + RIO_ISR_AACR), RIO_ISR_AACR_AA); |
1156 | 1157 | ||
1157 | /* Configure maintenance transaction window */ | 1158 | /* Configure maintenance transaction window */ |
1158 | out_be32(&priv->maint_atmu_regs->rowbar, 0x000c0000); | 1159 | out_be32(&priv->maint_atmu_regs->rowbar, law_start >> 12); |
1159 | out_be32(&priv->maint_atmu_regs->rowar, 0x80077015); | 1160 | out_be32(&priv->maint_atmu_regs->rowar, 0x80077015); /* 4M */ |
1160 | 1161 | ||
1161 | priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE); | 1162 | priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE); |
1162 | 1163 | ||
1163 | /* Configure outbound doorbell window */ | 1164 | /* Configure outbound doorbell window */ |
1164 | out_be32(&priv->dbell_atmu_regs->rowbar, 0x000c0400); | 1165 | out_be32(&priv->dbell_atmu_regs->rowbar, |
1165 | out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); | 1166 | (law_start + RIO_MAINT_WIN_SIZE) >> 12); |
1167 | out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); /* 4k */ | ||
1166 | fsl_rio_doorbell_init(port); | 1168 | fsl_rio_doorbell_init(port); |
1167 | 1169 | ||
1168 | return 0; | 1170 | return 0; |