diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-23 13:55:57 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-23 13:55:57 -0400 |
commit | 6f904d015262dfa43eb1cecc00b0998b4c3543f2 (patch) | |
tree | d12a5818072d04525db6eb2d74668ba03bdead2d /drivers/ide/mips | |
parent | 48c3c1072651922ed153bcf0a33ea82cf20df390 (diff) |
ide: add ide_host_add() helper
Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
host drivers to use it.
While at it:
* Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.
* -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
and pmac.c
* -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c
* -1 -> -ENOMEM in ide-pnp.c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/mips')
-rw-r--r-- | drivers/ide/mips/au1xxx-ide.c | 8 | ||||
-rw-r--r-- | drivers/ide/mips/swarm.c | 10 |
2 files changed, 6 insertions, 12 deletions
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index 903c628bddd0..11b7f61aae40 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c | |||
@@ -609,13 +609,9 @@ static int au_ide_probe(struct device *dev) | |||
609 | hw.dev = dev; | 609 | hw.dev = dev; |
610 | hw.chipset = ide_au1xxx; | 610 | hw.chipset = ide_au1xxx; |
611 | 611 | ||
612 | host = ide_host_alloc(&au1xxx_port_info, hws); | 612 | ret = ide_host_add(&au1xxx_port_info, hws, &host); |
613 | if (host == NULL) { | 613 | if (ret) |
614 | ret = -ENOENT; | ||
615 | goto out; | 614 | goto out; |
616 | } | ||
617 | |||
618 | ide_host_register(host, &au1xxx_port_info, hws); | ||
619 | 615 | ||
620 | auide_hwif.hwif = host->ports[0]; | 616 | auide_hwif.hwif = host->ports[0]; |
621 | 617 | ||
diff --git a/drivers/ide/mips/swarm.c b/drivers/ide/mips/swarm.c index b12d9d224831..badf79fc9e3a 100644 --- a/drivers/ide/mips/swarm.c +++ b/drivers/ide/mips/swarm.c | |||
@@ -75,7 +75,7 @@ static int __devinit swarm_ide_probe(struct device *dev) | |||
75 | u8 __iomem *base; | 75 | u8 __iomem *base; |
76 | struct ide_host *host; | 76 | struct ide_host *host; |
77 | phys_t offset, size; | 77 | phys_t offset, size; |
78 | int i; | 78 | int i, rc; |
79 | hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; | 79 | hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; |
80 | 80 | ||
81 | if (!SIBYTE_HAVE_IDE) | 81 | if (!SIBYTE_HAVE_IDE) |
@@ -115,19 +115,17 @@ static int __devinit swarm_ide_probe(struct device *dev) | |||
115 | hw.irq = K_INT_GB_IDE; | 115 | hw.irq = K_INT_GB_IDE; |
116 | hw.chipset = ide_generic; | 116 | hw.chipset = ide_generic; |
117 | 117 | ||
118 | host = ide_host_alloc(&swarm_port_info, hws); | 118 | rc = ide_host_add(&swarm_port_info, hws, &host); |
119 | if (host == NULL) | 119 | if (rc) |
120 | goto err; | 120 | goto err; |
121 | 121 | ||
122 | ide_host_register(host, &swarm_port_info, hws); | ||
123 | |||
124 | dev_set_drvdata(dev, host); | 122 | dev_set_drvdata(dev, host); |
125 | 123 | ||
126 | return 0; | 124 | return 0; |
127 | err: | 125 | err: |
128 | release_resource(&swarm_ide_resource); | 126 | release_resource(&swarm_ide_resource); |
129 | iounmap(base); | 127 | iounmap(base); |
130 | return -ENOMEM; | 128 | return rc; |
131 | } | 129 | } |
132 | 130 | ||
133 | static struct device_driver swarm_ide_driver = { | 131 | static struct device_driver swarm_ide_driver = { |