aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rapidio
diff options
context:
space:
mode:
authorAlexandre Bounine <alexandre.bounine@idt.com>2011-03-23 19:43:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-23 22:46:43 -0400
commitc1256ebe6a10bb3e104ecb2d1a458f9907ee49fb (patch)
treed34852c275d6a47d63487ce2338401708d5bcab3 /drivers/rapidio
parent569fccb6b48878d654310e1ffaf9a5a6e46b3144 (diff)
rapidio: remove mport resource reservation from common RIO code
Removes resource reservation from the common sybsystem initialization code and make it part of mport driver initialization. This resolves conflict with resource reservation by device specific mport drivers. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Thomas Moll <thomas.moll@sysgo.com> Cc: Micha Nelissen <micha@neli.hopto.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rapidio')
-rw-r--r--drivers/rapidio/rio.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c
index 9a7b2168d1d5..c29719cacbca 100644
--- a/drivers/rapidio/rio.c
+++ b/drivers/rapidio/rio.c
@@ -1137,20 +1137,9 @@ static int __devinit rio_init(void)
1137 1137
1138int __devinit rio_init_mports(void) 1138int __devinit rio_init_mports(void)
1139{ 1139{
1140 int rc = 0;
1141 struct rio_mport *port; 1140 struct rio_mport *port;
1142 1141
1143 list_for_each_entry(port, &rio_mports, node) { 1142 list_for_each_entry(port, &rio_mports, node) {
1144 if (!request_mem_region(port->iores.start,
1145 resource_size(&port->iores),
1146 port->name)) {
1147 printk(KERN_ERR
1148 "RIO: Error requesting master port region 0x%016llx-0x%016llx\n",
1149 (u64)port->iores.start, (u64)port->iores.end);
1150 rc = -ENOMEM;
1151 goto out;
1152 }
1153
1154 if (port->host_deviceid >= 0) 1143 if (port->host_deviceid >= 0)
1155 rio_enum_mport(port); 1144 rio_enum_mport(port);
1156 else 1145 else
@@ -1159,8 +1148,7 @@ int __devinit rio_init_mports(void)
1159 1148
1160 rio_init(); 1149 rio_init();
1161 1150
1162 out: 1151 return 0;
1163 return rc;
1164} 1152}
1165 1153
1166device_initcall_sync(rio_init_mports); 1154device_initcall_sync(rio_init_mports);