diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2007-05-10 13:40:51 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-11 12:19:02 -0400 |
commit | 10bdaaa0fad620145cf10e2b573266b2d80b44de (patch) | |
tree | 8d3200f5041ab0fdc72e9245ef780310b27a18d8 /drivers/scsi/arm/eesox.c | |
parent | c7b87f3d5037a35b5c7bb916ffc826be3fcb208d (diff) |
[ARM] ecard: add ecardm_iomap() / ecardm_iounmap()
Add devres ecardm_iomap() and ecardm_iounmap() for Acorn expansion
cards. Convert all expansion card drivers to use them.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/scsi/arm/eesox.c')
-rw-r--r-- | drivers/scsi/arm/eesox.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c index cc5d513aa99a..bb2477b3fb0b 100644 --- a/drivers/scsi/arm/eesox.c +++ b/drivers/scsi/arm/eesox.c | |||
@@ -519,7 +519,6 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
519 | { | 519 | { |
520 | struct Scsi_Host *host; | 520 | struct Scsi_Host *host; |
521 | struct eesoxscsi_info *info; | 521 | struct eesoxscsi_info *info; |
522 | unsigned long resbase, reslen; | ||
523 | void __iomem *base; | 522 | void __iomem *base; |
524 | int ret; | 523 | int ret; |
525 | 524 | ||
@@ -527,9 +526,7 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
527 | if (ret) | 526 | if (ret) |
528 | goto out; | 527 | goto out; |
529 | 528 | ||
530 | resbase = ecard_resource_start(ec, ECARD_RES_IOCFAST); | 529 | base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); |
531 | reslen = ecard_resource_len(ec, ECARD_RES_IOCFAST); | ||
532 | base = ioremap(resbase, reslen); | ||
533 | if (!base) { | 530 | if (!base) { |
534 | ret = -ENOMEM; | 531 | ret = -ENOMEM; |
535 | goto out_region; | 532 | goto out_region; |
@@ -539,7 +536,7 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
539 | sizeof(struct eesoxscsi_info)); | 536 | sizeof(struct eesoxscsi_info)); |
540 | if (!host) { | 537 | if (!host) { |
541 | ret = -ENOMEM; | 538 | ret = -ENOMEM; |
542 | goto out_unmap; | 539 | goto out_region; |
543 | } | 540 | } |
544 | 541 | ||
545 | ecard_set_drvdata(ec, host); | 542 | ecard_set_drvdata(ec, host); |
@@ -612,9 +609,6 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
612 | device_remove_file(&ec->dev, &dev_attr_bus_term); | 609 | device_remove_file(&ec->dev, &dev_attr_bus_term); |
613 | scsi_host_put(host); | 610 | scsi_host_put(host); |
614 | 611 | ||
615 | out_unmap: | ||
616 | iounmap(base); | ||
617 | |||
618 | out_region: | 612 | out_region: |
619 | ecard_release_resources(ec); | 613 | ecard_release_resources(ec); |
620 | 614 | ||
@@ -636,8 +630,6 @@ static void __devexit eesoxscsi_remove(struct expansion_card *ec) | |||
636 | 630 | ||
637 | device_remove_file(&ec->dev, &dev_attr_bus_term); | 631 | device_remove_file(&ec->dev, &dev_attr_bus_term); |
638 | 632 | ||
639 | iounmap(info->base); | ||
640 | |||
641 | fas216_release(host); | 633 | fas216_release(host); |
642 | scsi_host_put(host); | 634 | scsi_host_put(host); |
643 | ecard_release_resources(ec); | 635 | ecard_release_resources(ec); |