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/setup-pci.c | |
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/setup-pci.c')
-rw-r--r-- | drivers/ide/setup-pci.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index 1c0c5570dec8..b15cad58dc81 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
@@ -541,7 +541,6 @@ out: | |||
541 | 541 | ||
542 | int ide_setup_pci_device(struct pci_dev *dev, const struct ide_port_info *d) | 542 | int ide_setup_pci_device(struct pci_dev *dev, const struct ide_port_info *d) |
543 | { | 543 | { |
544 | struct ide_host *host; | ||
545 | hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; | 544 | hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; |
546 | int ret; | 545 | int ret; |
547 | 546 | ||
@@ -551,9 +550,7 @@ int ide_setup_pci_device(struct pci_dev *dev, const struct ide_port_info *d) | |||
551 | /* FIXME: silent failure can happen */ | 550 | /* FIXME: silent failure can happen */ |
552 | ide_pci_setup_ports(dev, d, ret, &hw[0], &hws[0]); | 551 | ide_pci_setup_ports(dev, d, ret, &hw[0], &hws[0]); |
553 | 552 | ||
554 | host = ide_host_alloc(d, hws); | 553 | ret = ide_host_add(d, hws, NULL); |
555 | if (host) | ||
556 | ide_host_register(host, d, hws); | ||
557 | } | 554 | } |
558 | 555 | ||
559 | return ret; | 556 | return ret; |
@@ -564,7 +561,6 @@ int ide_setup_pci_devices(struct pci_dev *dev1, struct pci_dev *dev2, | |||
564 | const struct ide_port_info *d) | 561 | const struct ide_port_info *d) |
565 | { | 562 | { |
566 | struct pci_dev *pdev[] = { dev1, dev2 }; | 563 | struct pci_dev *pdev[] = { dev1, dev2 }; |
567 | struct ide_host *host; | ||
568 | int ret, i; | 564 | int ret, i; |
569 | hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; | 565 | hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; |
570 | 566 | ||
@@ -582,9 +578,7 @@ int ide_setup_pci_devices(struct pci_dev *dev1, struct pci_dev *dev2, | |||
582 | ide_pci_setup_ports(pdev[i], d, ret, &hw[i*2], &hws[i*2]); | 578 | ide_pci_setup_ports(pdev[i], d, ret, &hw[i*2], &hws[i*2]); |
583 | } | 579 | } |
584 | 580 | ||
585 | host = ide_host_alloc(d, hws); | 581 | ret = ide_host_add(d, hws, NULL); |
586 | if (host) | ||
587 | ide_host_register(host, d, hws); | ||
588 | out: | 582 | out: |
589 | return ret; | 583 | return ret; |
590 | } | 584 | } |