diff options
author | Alexandre Bounine <alexandre.bounine@idt.com> | 2011-03-23 19:43:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-23 22:46:43 -0400 |
commit | c1256ebe6a10bb3e104ecb2d1a458f9907ee49fb (patch) | |
tree | d34852c275d6a47d63487ce2338401708d5bcab3 /drivers/rapidio | |
parent | 569fccb6b48878d654310e1ffaf9a5a6e46b3144 (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.c | 14 |
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 | ||
1138 | int __devinit rio_init_mports(void) | 1138 | int __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 | ||
1166 | device_initcall_sync(rio_init_mports); | 1154 | device_initcall_sync(rio_init_mports); |