leds: leds-fsg: use devm_ioremap
[~shefty/rdma-dev.git] / drivers / leds / leds-fsg.c
index b9053fa6e2534312495217164c4a5f4e1eeb403d..b4d5a44cc41b11e1223c28e77a002753c8f5ba91 100644 (file)
@@ -20,8 +20,8 @@
 #include <linux/platform_device.h>
 #include <linux/leds.h>
 #include <linux/module.h>
+#include <linux/io.h>
 #include <mach/hardware.h>
-#include <asm/io.h>
 
 #define FSG_LED_WLAN_BIT       0
 #define FSG_LED_WAN_BIT                1
@@ -149,11 +149,10 @@ static int fsg_led_probe(struct platform_device *pdev)
        int ret;
 
        /* Map the LED chip select address space */
-       latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512);
-       if (!latch_address) {
-               ret = -ENOMEM;
-               goto failremap;
-       }
+       latch_address = (unsigned short *) devm_ioremap(&pdev->dev,
+                                               IXP4XX_EXP_BUS_BASE(2), 512);
+       if (!latch_address)
+               return -ENOMEM;
 
        latch_value = 0xffff;
        *latch_address = latch_value;
@@ -195,8 +194,6 @@ static int fsg_led_probe(struct platform_device *pdev)
  failwan:
        led_classdev_unregister(&fsg_wlan_led);
  failwlan:
-       iounmap(latch_address);
- failremap:
 
        return ret;
 }
@@ -210,8 +207,6 @@ static int fsg_led_remove(struct platform_device *pdev)
        led_classdev_unregister(&fsg_sync_led);
        led_classdev_unregister(&fsg_ring_led);
 
-       iounmap(latch_address);
-
        return 0;
 }