aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2012-03-23 18:02:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 19:58:33 -0400
commit67a67272e890c79372bc0e2e555071f903d864a7 (patch)
tree55005e79957c29348d1ee25e7bb08824040c2ae8 /drivers/video
parent35c1682cc069fc1f677012d3170757135e246b39 (diff)
backlight: convert platform_lcd 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> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/backlight/platform_lcd.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/video/backlight/platform_lcd.c b/drivers/video/backlight/platform_lcd.c
index f0bf491ed087..b6672340d6c7 100644
--- a/drivers/video/backlight/platform_lcd.c
+++ b/drivers/video/backlight/platform_lcd.c
@@ -121,9 +121,9 @@ static int __devexit platform_lcd_remove(struct platform_device *pdev)
121} 121}
122 122
123#ifdef CONFIG_PM 123#ifdef CONFIG_PM
124static int platform_lcd_suspend(struct platform_device *pdev, pm_message_t st) 124static int platform_lcd_suspend(struct device *dev)
125{ 125{
126 struct platform_lcd *plcd = platform_get_drvdata(pdev); 126 struct platform_lcd *plcd = dev_get_drvdata(dev);
127 127
128 plcd->suspended = 1; 128 plcd->suspended = 1;
129 platform_lcd_set_power(plcd->lcd, plcd->power); 129 platform_lcd_set_power(plcd->lcd, plcd->power);
@@ -131,29 +131,30 @@ static int platform_lcd_suspend(struct platform_device *pdev, pm_message_t st)
131 return 0; 131 return 0;
132} 132}
133 133
134static int platform_lcd_resume(struct platform_device *pdev) 134static int platform_lcd_resume(struct device *dev)
135{ 135{
136 struct platform_lcd *plcd = platform_get_drvdata(pdev); 136 struct platform_lcd *plcd = dev_get_drvdata(dev);
137 137
138 plcd->suspended = 0; 138 plcd->suspended = 0;
139 platform_lcd_set_power(plcd->lcd, plcd->power); 139 platform_lcd_set_power(plcd->lcd, plcd->power);
140 140
141 return 0; 141 return 0;
142} 142}
143#else 143
144#define platform_lcd_suspend NULL 144static SIMPLE_DEV_PM_OPS(platform_lcd_pm_ops, platform_lcd_suspend,
145#define platform_lcd_resume NULL 145 platform_lcd_resume);
146#endif 146#endif
147 147
148static struct platform_driver platform_lcd_driver = { 148static struct platform_driver platform_lcd_driver = {
149 .driver = { 149 .driver = {
150 .name = "platform-lcd", 150 .name = "platform-lcd",
151 .owner = THIS_MODULE, 151 .owner = THIS_MODULE,
152#ifdef CONFIG_PM
153 .pm = &platform_lcd_pm_ops,
154#endif
152 }, 155 },
153 .probe = platform_lcd_probe, 156 .probe = platform_lcd_probe,
154 .remove = __devexit_p(platform_lcd_remove), 157 .remove = __devexit_p(platform_lcd_remove),
155 .suspend = platform_lcd_suspend,
156 .resume = platform_lcd_resume,
157}; 158};
158 159
159module_platform_driver(platform_lcd_driver); 160module_platform_driver(platform_lcd_driver);