diff options
Diffstat (limited to 'drivers/pcmcia/electra_cf.c')
| -rw-r--r-- | drivers/pcmcia/electra_cf.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c index 546d3024b6f..5ea64d0f61a 100644 --- a/drivers/pcmcia/electra_cf.c +++ b/drivers/pcmcia/electra_cf.c @@ -30,6 +30,8 @@ #include <linux/interrupt.h> #include <linux/mm.h> #include <linux/vmalloc.h> +#include <linux/of_address.h> +#include <linux/of_irq.h> #include <linux/of_platform.h> #include <linux/slab.h> @@ -181,8 +183,7 @@ static struct pccard_operations electra_cf_ops = { .set_mem_map = electra_cf_set_mem_map, }; -static int __devinit electra_cf_probe(struct platform_device *ofdev, - const struct of_device_id *match) +static int electra_cf_probe(struct platform_device *ofdev) { struct device *device = &ofdev->dev; struct device_node *np = ofdev->dev.of_node; @@ -210,9 +211,9 @@ static int __devinit electra_cf_probe(struct platform_device *ofdev, cf->ofdev = ofdev; cf->mem_phys = mem.start; - cf->mem_size = PAGE_ALIGN(mem.end - mem.start); + cf->mem_size = PAGE_ALIGN(resource_size(&mem)); cf->mem_base = ioremap(cf->mem_phys, cf->mem_size); - cf->io_size = PAGE_ALIGN(io.end - io.start); + cf->io_size = PAGE_ALIGN(resource_size(&io)); area = __get_vm_area(cf->io_size, 0, PHB_IO_BASE, PHB_IO_END); if (area == NULL) @@ -325,7 +326,7 @@ fail1: } -static int __devexit electra_cf_remove(struct platform_device *ofdev) +static int electra_cf_remove(struct platform_device *ofdev) { struct device *device = &ofdev->dev; struct electra_cf_socket *cf; @@ -356,9 +357,9 @@ static const struct of_device_id electra_cf_match[] = { }; MODULE_DEVICE_TABLE(of, electra_cf_match); -static struct of_platform_driver electra_cf_driver = { +static struct platform_driver electra_cf_driver = { .driver = { - .name = (char *)driver_name, + .name = driver_name, .owner = THIS_MODULE, .of_match_table = electra_cf_match, }, @@ -366,17 +367,7 @@ static struct of_platform_driver electra_cf_driver = { .remove = electra_cf_remove, }; -static int __init electra_cf_init(void) -{ - return of_register_platform_driver(&electra_cf_driver); -} -module_init(electra_cf_init); - -static void __exit electra_cf_exit(void) -{ - of_unregister_platform_driver(&electra_cf_driver); -} -module_exit(electra_cf_exit); +module_platform_driver(electra_cf_driver); MODULE_LICENSE("GPL"); MODULE_AUTHOR ("Olof Johansson <olof@lixom.net>"); |
