aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/arm/etherh.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2007-05-10 13:40:51 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-05-11 12:19:02 -0400
commit10bdaaa0fad620145cf10e2b573266b2d80b44de (patch)
tree8d3200f5041ab0fdc72e9245ef780310b27a18d8 /drivers/net/arm/etherh.c
parentc7b87f3d5037a35b5c7bb916ffc826be3fcb208d (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/net/arm/etherh.c')
-rw-r--r--drivers/net/arm/etherh.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index 387f1e3a4e84..769ba69451f4 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -686,7 +686,7 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
686 eh->supported = data->supported; 686 eh->supported = data->supported;
687 eh->ctrl = 0; 687 eh->ctrl = 0;
688 eh->id = ec->cid.product; 688 eh->id = ec->cid.product;
689 eh->memc = ioremap(ecard_resource_start(ec, ECARD_RES_MEMC), PAGE_SIZE); 689 eh->memc = ecardm_iomap(ec, ECARD_RES_MEMC, 0, PAGE_SIZE);
690 if (!eh->memc) { 690 if (!eh->memc) {
691 ret = -ENOMEM; 691 ret = -ENOMEM;
692 goto free; 692 goto free;
@@ -694,7 +694,7 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
694 694
695 eh->ctrl_port = eh->memc; 695 eh->ctrl_port = eh->memc;
696 if (data->ctrl_ioc) { 696 if (data->ctrl_ioc) {
697 eh->ioc_fast = ioremap(ecard_resource_start(ec, ECARD_RES_IOCFAST), PAGE_SIZE); 697 eh->ioc_fast = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, PAGE_SIZE);
698 if (!eh->ioc_fast) { 698 if (!eh->ioc_fast) {
699 ret = -ENOMEM; 699 ret = -ENOMEM;
700 goto free; 700 goto free;
@@ -758,10 +758,6 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
758 return 0; 758 return 0;
759 759
760 free: 760 free:
761 if (eh->ioc_fast)
762 iounmap(eh->ioc_fast);
763 if (eh->memc)
764 iounmap(eh->memc);
765 free_netdev(dev); 761 free_netdev(dev);
766 release: 762 release:
767 ecard_release_resources(ec); 763 ecard_release_resources(ec);
@@ -772,16 +768,11 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
772static void __devexit etherh_remove(struct expansion_card *ec) 768static void __devexit etherh_remove(struct expansion_card *ec)
773{ 769{
774 struct net_device *dev = ecard_get_drvdata(ec); 770 struct net_device *dev = ecard_get_drvdata(ec);
775 struct etherh_priv *eh = etherh_priv(dev);
776 771
777 ecard_set_drvdata(ec, NULL); 772 ecard_set_drvdata(ec, NULL);
778 773
779 unregister_netdev(dev); 774 unregister_netdev(dev);
780 775
781 if (eh->ioc_fast)
782 iounmap(eh->ioc_fast);
783 iounmap(eh->memc);
784
785 free_netdev(dev); 776 free_netdev(dev);
786 777
787 ecard_release_resources(ec); 778 ecard_release_resources(ec);