Skip to content

Commit

Permalink
rapidio: modify subsystem and driver initialization sequence
Browse files Browse the repository at this point in the history
Subsystem initialization sequence modified to support presence of multiple
RapidIO controllers in the system.  The new sequence is compatible with
initialization of PCI devices.

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>
  • Loading branch information
Alexandre Bounine authored and Linus Torvalds committed Mar 24, 2011
1 parent 388b78a commit 2f80998
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 13 deletions.
10 changes: 1 addition & 9 deletions arch/powerpc/sysdev/fsl_rio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1574,18 +1574,10 @@ int fsl_rio_setup(struct platform_device *dev)
*/
static int __devinit fsl_of_rio_rpn_probe(struct platform_device *dev)
{
int rc;
printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n",
dev->dev.of_node->full_name);

rc = fsl_rio_setup(dev);
if (rc)
goto out;

/* Enumerate all registered ports */
rc = rio_init_mports();
out:
return rc;
return fsl_rio_setup(dev);
};

static const struct of_device_id fsl_of_rio_rpn_ids[] = {
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/rionet.c
Original file line number Diff line number Diff line change
Expand Up @@ -571,5 +571,5 @@ static void __exit rionet_exit(void)
rio_unregister_driver(&rionet_driver);
}

module_init(rionet_init);
late_initcall(rionet_init);
module_exit(rionet_exit);
6 changes: 4 additions & 2 deletions drivers/rapidio/rio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1134,8 +1134,6 @@ static int __devinit rio_init(void)
return 0;
}

device_initcall(rio_init);

int __devinit rio_init_mports(void)
{
int rc = 0;
Expand All @@ -1158,10 +1156,14 @@ int __devinit rio_init_mports(void)
rio_disc_mport(port);
}

rio_init();

out:
return rc;
}

device_initcall_sync(rio_init_mports);

void rio_register_mport(struct rio_mport *port)
{
list_add_tail(&port->node, &rio_mports);
Expand Down
1 change: 0 additions & 1 deletion include/linux/rio.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,6 @@ union rio_pw_msg {
};

/* Architecture and hardware-specific functions */
extern int rio_init_mports(void);
extern void rio_register_mport(struct rio_mport *);
extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int);
extern void rio_close_inb_mbox(struct rio_mport *, int);
Expand Down

0 comments on commit 2f80998

Please sign in to comment.