diff options
author | Jingoo Han <jg1.han@samsung.com> | 2012-03-23 18:02:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 19:58:33 -0400 |
commit | 67a67272e890c79372bc0e2e555071f903d864a7 (patch) | |
tree | 55005e79957c29348d1ee25e7bb08824040c2ae8 /drivers/video | |
parent | 35c1682cc069fc1f677012d3170757135e246b39 (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.c | 19 |
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 |
124 | static int platform_lcd_suspend(struct platform_device *pdev, pm_message_t st) | 124 | static 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 | ||
134 | static int platform_lcd_resume(struct platform_device *pdev) | 134 | static 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 | 144 | static 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 | ||
148 | static struct platform_driver platform_lcd_driver = { | 148 | static 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 | ||
159 | module_platform_driver(platform_lcd_driver); | 160 | module_platform_driver(platform_lcd_driver); |