aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/backlight
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2013-04-29 19:18:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-29 21:28:18 -0400
commit1dde37d4574cce3c0c99ddffc3623b533578be49 (patch)
tree5dd8309f161d166e3dc375201d5a8a784580b35c /drivers/video/backlight
parent07cac9d78fcc9a0a3dd7c5b8523371f4d8cae591 (diff)
backlight: tosa: convert tosa to dev_pm_ops
Instead of using legacy suspend/resume methods, using newer dev_pm_ops structure allows better control over power management. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/backlight')
-rw-r--r--drivers/video/backlight/tosa_bl.c18
-rw-r--r--drivers/video/backlight/tosa_lcd.c18
2 files changed, 16 insertions, 20 deletions
diff --git a/drivers/video/backlight/tosa_bl.c b/drivers/video/backlight/tosa_bl.c
index 2326fa810c59..9df66ac68b34 100644
--- a/drivers/video/backlight/tosa_bl.c
+++ b/drivers/video/backlight/tosa_bl.c
@@ -134,28 +134,27 @@ static int tosa_bl_remove(struct i2c_client *client)
134 return 0; 134 return 0;
135} 135}
136 136
137#ifdef CONFIG_PM 137#ifdef CONFIG_PM_SLEEP
138static int tosa_bl_suspend(struct i2c_client *client, pm_message_t pm) 138static int tosa_bl_suspend(struct device *dev)
139{ 139{
140 struct tosa_bl_data *data = i2c_get_clientdata(client); 140 struct tosa_bl_data *data = dev_get_drvdata(dev);
141 141
142 tosa_bl_set_backlight(data, 0); 142 tosa_bl_set_backlight(data, 0);
143 143
144 return 0; 144 return 0;
145} 145}
146 146
147static int tosa_bl_resume(struct i2c_client *client) 147static int tosa_bl_resume(struct device *dev)
148{ 148{
149 struct tosa_bl_data *data = i2c_get_clientdata(client); 149 struct tosa_bl_data *data = dev_get_drvdata(dev);
150 150
151 backlight_update_status(data->bl); 151 backlight_update_status(data->bl);
152 return 0; 152 return 0;
153} 153}
154#else
155#define tosa_bl_suspend NULL
156#define tosa_bl_resume NULL
157#endif 154#endif
158 155
156static SIMPLE_DEV_PM_OPS(tosa_bl_pm_ops, tosa_bl_suspend, tosa_bl_resume);
157
159static const struct i2c_device_id tosa_bl_id[] = { 158static const struct i2c_device_id tosa_bl_id[] = {
160 { "tosa-bl", 0 }, 159 { "tosa-bl", 0 },
161 { }, 160 { },
@@ -165,11 +164,10 @@ static struct i2c_driver tosa_bl_driver = {
165 .driver = { 164 .driver = {
166 .name = "tosa-bl", 165 .name = "tosa-bl",
167 .owner = THIS_MODULE, 166 .owner = THIS_MODULE,
167 .pm = &tosa_bl_pm_ops,
168 }, 168 },
169 .probe = tosa_bl_probe, 169 .probe = tosa_bl_probe,
170 .remove = tosa_bl_remove, 170 .remove = tosa_bl_remove,
171 .suspend = tosa_bl_suspend,
172 .resume = tosa_bl_resume,
173 .id_table = tosa_bl_id, 171 .id_table = tosa_bl_id,
174}; 172};
175 173
diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
index 666fe2593ea4..bf081573e5b5 100644
--- a/drivers/video/backlight/tosa_lcd.c
+++ b/drivers/video/backlight/tosa_lcd.c
@@ -240,19 +240,19 @@ static int tosa_lcd_remove(struct spi_device *spi)
240 return 0; 240 return 0;
241} 241}
242 242
243#ifdef CONFIG_PM 243#ifdef CONFIG_PM_SLEEP
244static int tosa_lcd_suspend(struct spi_device *spi, pm_message_t state) 244static int tosa_lcd_suspend(struct device *dev)
245{ 245{
246 struct tosa_lcd_data *data = spi_get_drvdata(spi); 246 struct tosa_lcd_data *data = dev_get_drvdata(dev);
247 247
248 tosa_lcd_tg_off(data); 248 tosa_lcd_tg_off(data);
249 249
250 return 0; 250 return 0;
251} 251}
252 252
253static int tosa_lcd_resume(struct spi_device *spi) 253static int tosa_lcd_resume(struct device *dev)
254{ 254{
255 struct tosa_lcd_data *data = spi_get_drvdata(spi); 255 struct tosa_lcd_data *data = dev_get_drvdata(dev);
256 256
257 tosa_lcd_tg_init(data); 257 tosa_lcd_tg_init(data);
258 if (POWER_IS_ON(data->lcd_power)) 258 if (POWER_IS_ON(data->lcd_power))
@@ -262,20 +262,18 @@ static int tosa_lcd_resume(struct spi_device *spi)
262 262
263 return 0; 263 return 0;
264} 264}
265#else
266#define tosa_lcd_suspend NULL
267#define tosa_lcd_resume NULL
268#endif 265#endif
269 266
267static SIMPLE_DEV_PM_OPS(tosa_lcd_pm_ops, tosa_lcd_suspend, tosa_lcd_resume);
268
270static struct spi_driver tosa_lcd_driver = { 269static struct spi_driver tosa_lcd_driver = {
271 .driver = { 270 .driver = {
272 .name = "tosa-lcd", 271 .name = "tosa-lcd",
273 .owner = THIS_MODULE, 272 .owner = THIS_MODULE,
273 .pm = &tosa_lcd_pm_ops,
274 }, 274 },
275 .probe = tosa_lcd_probe, 275 .probe = tosa_lcd_probe,
276 .remove = tosa_lcd_remove, 276 .remove = tosa_lcd_remove,
277 .suspend = tosa_lcd_suspend,
278 .resume = tosa_lcd_resume,
279}; 277};
280 278
281module_spi_driver(tosa_lcd_driver); 279module_spi_driver(tosa_lcd_driver);