Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

leds: Convert led class driver from legacy pm ops to dev_pm_ops

Convert drivers/leds/led-class to use dev_pm_ops for power management and
remove Legacy PM ops hooks. With this change, led class registers
suspend/resume callbacks via class->pm (dev_pm_ops) instead of Legacy
class->suspend/resume. When __device_suspend() runs call-backs, it will
find class->pm ops for the led class.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>

authored by

Shuah Khan and committed by
Bryan Wu
73e1ab41 ae6cdb03

+7 -3
+7 -3
drivers/leds/led-class.c
··· 156 156 } 157 157 EXPORT_SYMBOL_GPL(led_classdev_resume); 158 158 159 - static int led_suspend(struct device *dev, pm_message_t state) 159 + static int led_suspend(struct device *dev) 160 160 { 161 161 struct led_classdev *led_cdev = dev_get_drvdata(dev); 162 162 ··· 175 175 176 176 return 0; 177 177 } 178 + 179 + static const struct dev_pm_ops leds_class_dev_pm_ops = { 180 + .suspend = led_suspend, 181 + .resume = led_resume, 182 + }; 178 183 179 184 /** 180 185 * led_classdev_register - register a new object of led_classdev class. ··· 257 252 leds_class = class_create(THIS_MODULE, "leds"); 258 253 if (IS_ERR(leds_class)) 259 254 return PTR_ERR(leds_class); 260 - leds_class->suspend = led_suspend; 261 - leds_class->resume = led_resume; 255 + leds_class->pm = &leds_class_dev_pm_ops; 262 256 leds_class->dev_attrs = led_class_attrs; 263 257 return 0; 264 258 }