diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2006-03-22 03:07:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-22 10:53:56 -0500 |
commit | d39b6cfe664079ca79ae1cfebac4725a877fd61d (patch) | |
tree | 85a4a2784819406ac86d4f30d9764cb363c2c83b /drivers/char/vr41xx_giu.c | |
parent | f4a641d66c6e135dcfc861521e8008faed2411e1 (diff) |
[PATCH] vr41xx: convert to the new platform device interface
The patch does the following for v441xx seris drivers:
- stop using platform_device_register_simple() as it is going away
- mark ->probe() and ->remove() methods as __devinit and __devexit
respectively
- initialize "owner" field in driver structure so there is a link
from /sys/modules to the driver
- mark *_init() and *_exit() functions as __init and __exit
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/vr41xx_giu.c')
-rw-r--r-- | drivers/char/vr41xx_giu.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c index 2267c7b81799..05e6e814d86f 100644 --- a/drivers/char/vr41xx_giu.c +++ b/drivers/char/vr41xx_giu.c | |||
@@ -613,7 +613,7 @@ static struct file_operations gpio_fops = { | |||
613 | .release = gpio_release, | 613 | .release = gpio_release, |
614 | }; | 614 | }; |
615 | 615 | ||
616 | static int giu_probe(struct platform_device *dev) | 616 | static int __devinit giu_probe(struct platform_device *dev) |
617 | { | 617 | { |
618 | unsigned long start, size, flags = 0; | 618 | unsigned long start, size, flags = 0; |
619 | unsigned int nr_pins = 0; | 619 | unsigned int nr_pins = 0; |
@@ -697,7 +697,7 @@ static int giu_probe(struct platform_device *dev) | |||
697 | return cascade_irq(GIUINT_IRQ, giu_get_irq); | 697 | return cascade_irq(GIUINT_IRQ, giu_get_irq); |
698 | } | 698 | } |
699 | 699 | ||
700 | static int giu_remove(struct platform_device *dev) | 700 | static int __devexit giu_remove(struct platform_device *dev) |
701 | { | 701 | { |
702 | iounmap(giu_base); | 702 | iounmap(giu_base); |
703 | 703 | ||
@@ -712,9 +712,10 @@ static struct platform_device *giu_platform_device; | |||
712 | 712 | ||
713 | static struct platform_driver giu_device_driver = { | 713 | static struct platform_driver giu_device_driver = { |
714 | .probe = giu_probe, | 714 | .probe = giu_probe, |
715 | .remove = giu_remove, | 715 | .remove = __devexit_p(giu_remove), |
716 | .driver = { | 716 | .driver = { |
717 | .name = "GIU", | 717 | .name = "GIU", |
718 | .owner = THIS_MODULE, | ||
718 | }, | 719 | }, |
719 | }; | 720 | }; |
720 | 721 | ||
@@ -722,9 +723,15 @@ static int __init vr41xx_giu_init(void) | |||
722 | { | 723 | { |
723 | int retval; | 724 | int retval; |
724 | 725 | ||
725 | giu_platform_device = platform_device_register_simple("GIU", -1, NULL, 0); | 726 | giu_platform_device = platform_device_alloc("GIU", -1); |
726 | if (IS_ERR(giu_platform_device)) | 727 | if (!giu_platform_device) |
727 | return PTR_ERR(giu_platform_device); | 728 | return -ENOMEM; |
729 | |||
730 | retval = platform_device_add(giu_platform_device); | ||
731 | if (retval < 0) { | ||
732 | platform_device_put(giu_platform_device); | ||
733 | return retval; | ||
734 | } | ||
728 | 735 | ||
729 | retval = platform_driver_register(&giu_device_driver); | 736 | retval = platform_driver_register(&giu_device_driver); |
730 | if (retval < 0) | 737 | if (retval < 0) |