aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
authorZhang Wei <wei.zhang@freescale.com>2008-04-18 16:33:42 -0400
committerPaul Mackerras <paulus@samba.org>2008-04-29 05:40:28 -0400
commite042323607f5c14844b1c59aebbca8d1251c7d89 (patch)
tree10c9eac3d5146f3611af9220740e4ec27bf2ade0 /arch/powerpc/sysdev
parentcc2bb6968a2c842149d285d77cb35200d2d37b15 (diff)
[RAPIDIO] Auto-probe the RapidIO system size
The RapidIO system size will auto probe in RIO setup. The route table and rionet_active in rionet.c are changed to be allocated dynamically according to the size of the system. Signed-off-by: Zhang Wei <wei.zhang@freescale.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/fsl_rio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index d2d14708e714..14c106cf4aa2 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -1007,6 +1007,12 @@ int fsl_rio_setup(struct of_device *dev)
1007 rio_register_mport(port); 1007 rio_register_mport(port);
1008 1008
1009 priv->regs_win = ioremap(regs.start, regs.end - regs.start + 1); 1009 priv->regs_win = ioremap(regs.start, regs.end - regs.start + 1);
1010
1011 port->sys_size = (in_be32((priv->regs_win + RIO_PEF_CAR))
1012 & RIO_PEF_CTLS) >> 4;
1013 dev_info(&dev->dev, "RapidIO Common Transport System size: %d\n",
1014 port->sys_size ? 65536 : 256);
1015
1010 priv->atmu_regs = (struct rio_atmu_regs *)(priv->regs_win 1016 priv->atmu_regs = (struct rio_atmu_regs *)(priv->regs_win
1011 + RIO_ATMU_REGS_OFFSET); 1017 + RIO_ATMU_REGS_OFFSET);
1012 priv->maint_atmu_regs = priv->atmu_regs + 1; 1018 priv->maint_atmu_regs = priv->atmu_regs + 1;