diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/video/backlight/da903x_bl.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/video/backlight/da903x_bl.c')
-rw-r--r-- | drivers/video/backlight/da903x_bl.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c index 701a1081e199..87659ed79bd7 100644 --- a/drivers/video/backlight/da903x_bl.c +++ b/drivers/video/backlight/da903x_bl.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/fb.h> | 18 | #include <linux/fb.h> |
19 | #include <linux/backlight.h> | 19 | #include <linux/backlight.h> |
20 | #include <linux/mfd/da903x.h> | 20 | #include <linux/mfd/da903x.h> |
21 | #include <linux/slab.h> | ||
21 | 22 | ||
22 | #define DA9030_WLED_CONTROL 0x25 | 23 | #define DA9030_WLED_CONTROL 0x25 |
23 | #define DA9030_WLED_CP_EN (1 << 6) | 24 | #define DA9030_WLED_CP_EN (1 << 6) |
@@ -25,6 +26,7 @@ | |||
25 | 26 | ||
26 | #define DA9034_WLED_CONTROL1 0x3C | 27 | #define DA9034_WLED_CONTROL1 0x3C |
27 | #define DA9034_WLED_CONTROL2 0x3D | 28 | #define DA9034_WLED_CONTROL2 0x3D |
29 | #define DA9034_WLED_ISET(x) ((x) & 0x1f) | ||
28 | 30 | ||
29 | #define DA9034_WLED_BOOST_EN (1 << 5) | 31 | #define DA9034_WLED_BOOST_EN (1 << 5) |
30 | 32 | ||
@@ -94,15 +96,17 @@ static int da903x_backlight_get_brightness(struct backlight_device *bl) | |||
94 | return data->current_brightness; | 96 | return data->current_brightness; |
95 | } | 97 | } |
96 | 98 | ||
97 | static struct backlight_ops da903x_backlight_ops = { | 99 | static const struct backlight_ops da903x_backlight_ops = { |
98 | .update_status = da903x_backlight_update_status, | 100 | .update_status = da903x_backlight_update_status, |
99 | .get_brightness = da903x_backlight_get_brightness, | 101 | .get_brightness = da903x_backlight_get_brightness, |
100 | }; | 102 | }; |
101 | 103 | ||
102 | static int da903x_backlight_probe(struct platform_device *pdev) | 104 | static int da903x_backlight_probe(struct platform_device *pdev) |
103 | { | 105 | { |
106 | struct da9034_backlight_pdata *pdata = pdev->dev.platform_data; | ||
104 | struct da903x_backlight_data *data; | 107 | struct da903x_backlight_data *data; |
105 | struct backlight_device *bl; | 108 | struct backlight_device *bl; |
109 | struct backlight_properties props; | ||
106 | int max_brightness; | 110 | int max_brightness; |
107 | 111 | ||
108 | data = kzalloc(sizeof(*data), GFP_KERNEL); | 112 | data = kzalloc(sizeof(*data), GFP_KERNEL); |
@@ -127,15 +131,20 @@ static int da903x_backlight_probe(struct platform_device *pdev) | |||
127 | data->da903x_dev = pdev->dev.parent; | 131 | data->da903x_dev = pdev->dev.parent; |
128 | data->current_brightness = 0; | 132 | data->current_brightness = 0; |
129 | 133 | ||
130 | bl = backlight_device_register(pdev->name, data->da903x_dev, | 134 | /* adjust the WLED output current */ |
131 | data, &da903x_backlight_ops); | 135 | if (pdata) |
136 | da903x_write(data->da903x_dev, DA9034_WLED_CONTROL2, | ||
137 | DA9034_WLED_ISET(pdata->output_current)); | ||
138 | |||
139 | props.max_brightness = max_brightness; | ||
140 | bl = backlight_device_register(pdev->name, data->da903x_dev, data, | ||
141 | &da903x_backlight_ops, &props); | ||
132 | if (IS_ERR(bl)) { | 142 | if (IS_ERR(bl)) { |
133 | dev_err(&pdev->dev, "failed to register backlight\n"); | 143 | dev_err(&pdev->dev, "failed to register backlight\n"); |
134 | kfree(data); | 144 | kfree(data); |
135 | return PTR_ERR(bl); | 145 | return PTR_ERR(bl); |
136 | } | 146 | } |
137 | 147 | ||
138 | bl->props.max_brightness = max_brightness; | ||
139 | bl->props.brightness = max_brightness; | 148 | bl->props.brightness = max_brightness; |
140 | 149 | ||
141 | platform_set_drvdata(pdev, bl); | 150 | platform_set_drvdata(pdev, bl); |
@@ -170,7 +179,7 @@ static int da903x_backlight_resume(struct device *dev) | |||
170 | return 0; | 179 | return 0; |
171 | } | 180 | } |
172 | 181 | ||
173 | static struct dev_pm_ops da903x_backlight_pm_ops = { | 182 | static const struct dev_pm_ops da903x_backlight_pm_ops = { |
174 | .suspend = da903x_backlight_suspend, | 183 | .suspend = da903x_backlight_suspend, |
175 | .resume = da903x_backlight_resume, | 184 | .resume = da903x_backlight_resume, |
176 | }; | 185 | }; |