diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/hwmon/smsc47m1.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c index bfef22395772..92cca512b38e 100644 --- a/drivers/hwmon/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c | |||
@@ -139,8 +139,7 @@ struct smsc47m1_sio_data { | |||
139 | }; | 139 | }; |
140 | 140 | ||
141 | 141 | ||
142 | static int smsc47m1_probe(struct platform_device *pdev); | 142 | static int __exit smsc47m1_remove(struct platform_device *pdev); |
143 | static int __devexit smsc47m1_remove(struct platform_device *pdev); | ||
144 | static struct smsc47m1_data *smsc47m1_update_device(struct device *dev, | 143 | static struct smsc47m1_data *smsc47m1_update_device(struct device *dev, |
145 | int init); | 144 | int init); |
146 | 145 | ||
@@ -160,8 +159,7 @@ static struct platform_driver smsc47m1_driver = { | |||
160 | .owner = THIS_MODULE, | 159 | .owner = THIS_MODULE, |
161 | .name = DRVNAME, | 160 | .name = DRVNAME, |
162 | }, | 161 | }, |
163 | .probe = smsc47m1_probe, | 162 | .remove = __exit_p(smsc47m1_remove), |
164 | .remove = __devexit_p(smsc47m1_remove), | ||
165 | }; | 163 | }; |
166 | 164 | ||
167 | static ssize_t get_fan(struct device *dev, struct device_attribute | 165 | static ssize_t get_fan(struct device *dev, struct device_attribute |
@@ -562,7 +560,7 @@ static int smsc47m1_handle_resources(unsigned short address, enum chips type, | |||
562 | return 0; | 560 | return 0; |
563 | } | 561 | } |
564 | 562 | ||
565 | static int __devinit smsc47m1_probe(struct platform_device *pdev) | 563 | static int __init smsc47m1_probe(struct platform_device *pdev) |
566 | { | 564 | { |
567 | struct device *dev = &pdev->dev; | 565 | struct device *dev = &pdev->dev; |
568 | struct smsc47m1_sio_data *sio_data = dev->platform_data; | 566 | struct smsc47m1_sio_data *sio_data = dev->platform_data; |
@@ -720,7 +718,7 @@ error_release: | |||
720 | return err; | 718 | return err; |
721 | } | 719 | } |
722 | 720 | ||
723 | static int __devexit smsc47m1_remove(struct platform_device *pdev) | 721 | static int __exit smsc47m1_remove(struct platform_device *pdev) |
724 | { | 722 | { |
725 | struct smsc47m1_data *data = platform_get_drvdata(pdev); | 723 | struct smsc47m1_data *data = platform_get_drvdata(pdev); |
726 | struct resource *res; | 724 | struct resource *res; |
@@ -845,27 +843,27 @@ static int __init sm_smsc47m1_init(void) | |||
845 | if (smsc47m1_find(&address, &sio_data)) | 843 | if (smsc47m1_find(&address, &sio_data)) |
846 | return -ENODEV; | 844 | return -ENODEV; |
847 | 845 | ||
848 | err = platform_driver_register(&smsc47m1_driver); | 846 | /* Sets global pdev as a side effect */ |
847 | err = smsc47m1_device_add(address, &sio_data); | ||
849 | if (err) | 848 | if (err) |
850 | goto exit; | 849 | goto exit; |
851 | 850 | ||
852 | /* Sets global pdev as a side effect */ | 851 | err = platform_driver_probe(&smsc47m1_driver, smsc47m1_probe); |
853 | err = smsc47m1_device_add(address, &sio_data); | ||
854 | if (err) | 852 | if (err) |
855 | goto exit_driver; | 853 | goto exit_device; |
856 | 854 | ||
857 | return 0; | 855 | return 0; |
858 | 856 | ||
859 | exit_driver: | 857 | exit_device: |
860 | platform_driver_unregister(&smsc47m1_driver); | 858 | platform_device_unregister(pdev); |
861 | exit: | 859 | exit: |
862 | return err; | 860 | return err; |
863 | } | 861 | } |
864 | 862 | ||
865 | static void __exit sm_smsc47m1_exit(void) | 863 | static void __exit sm_smsc47m1_exit(void) |
866 | { | 864 | { |
867 | platform_device_unregister(pdev); | ||
868 | platform_driver_unregister(&smsc47m1_driver); | 865 | platform_driver_unregister(&smsc47m1_driver); |
866 | platform_device_unregister(pdev); | ||
869 | } | 867 | } |
870 | 868 | ||
871 | MODULE_AUTHOR("Mark D. Studebaker <mdsxyz123@yahoo.com>"); | 869 | MODULE_AUTHOR("Mark D. Studebaker <mdsxyz123@yahoo.com>"); |