diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-02-01 13:11:25 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-02-01 13:11:25 +0900 |
commit | bcf39352eb9e9026f7a1028d4bce3707b65f104b (patch) | |
tree | 440794a7fe888c48bfb49bdd994873ae8a136866 /arch/sh/drivers/pci/pci-sh7780.c | |
parent | 85b59f5bb24aeca1a987cbb206e228bf630c8327 (diff) |
sh: Handle PCI controller resource conflicts.
register_pci_controller() can fail, but presently is a void function.
Change this over to an int so that we can bail early before continuing on
with post-registration initialization (such as throwing the controller in
to 66MHz mode in the case of the SH7780 host controller).
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/drivers/pci/pci-sh7780.c')
-rw-r--r-- | arch/sh/drivers/pci/pci-sh7780.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c index b68f45b6451..0e0ddd67e6e 100644 --- a/arch/sh/drivers/pci/pci-sh7780.c +++ b/arch/sh/drivers/pci/pci-sh7780.c @@ -71,6 +71,7 @@ static int __init sh7780_pci_init(void) size_t memsize; unsigned int id; const char *type; + int ret; printk(KERN_NOTICE "PCI: Starting intialization.\n"); @@ -197,7 +198,9 @@ static int __init sh7780_pci_init(void) __raw_writel(SH4_PCICR_PREFIX | SH4_PCICR_CFIN | SH4_PCICR_FTO, chan->reg_base + SH4_PCICR); - register_pci_controller(chan); + ret = register_pci_controller(chan); + if (unlikely(ret)) + return ret; sh7780_pci66_init(chan); |