blob: 7466239f3051649dc81c2610d08d69bdd18cd21c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
This change also fixes error handling when platform_device_alloc() fails.
(When platform_device_alloc() failed, it returns error without
unregistering progearbl_driver)
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Marcin Juszkiewicz <linux@hrw.one.pl>
Cc: Richard Purdie <rpurdie@rpsys.net>
---
drivers/video/backlight/progear_bl.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
Index: 2.6-git/drivers/video/backlight/progear_bl.c
===================================================================
--- 2.6-git.orig/drivers/video/backlight/progear_bl.c
+++ 2.6-git/drivers/video/backlight/progear_bl.c
@@ -119,20 +119,16 @@ static int __init progearbl_init(void)
{
int ret = platform_driver_register(&progearbl_driver);
- if (!ret) {
- progearbl_device = platform_device_alloc("progear-bl", -1);
- if (!progearbl_device)
- return -ENOMEM;
-
- ret = platform_device_add(progearbl_device);
-
- if (ret) {
- platform_device_put(progearbl_device);
- platform_driver_unregister(&progearbl_driver);
- }
+ if (ret)
+ return ret;
+ progearbl_device = platform_device_register_simple("progear-bl", -1,
+ NULL, 0);
+ if (IS_ERR(progearbl_device)) {
+ platform_driver_unregister(&progearbl_driver);
+ return PTR_ERR(progearbl_device);
}
- return ret;
+ return 0;
}
static void __exit progearbl_exit(void)
|