Lines Matching +full:power +full:- +full:managed
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 2003,2004 Hewlett-Packard Company
43 * and if it is, we're switching lcd power as well ...
50 struct fb_info *info = evdata->info; in fb_notifier_callback()
53 guard(mutex)(&ld->ops_lock); in fb_notifier_callback()
55 if (!ld->ops) in fb_notifier_callback()
57 if (ld->ops->controls_device && !ld->ops->controls_device(ld, info->device)) in fb_notifier_callback()
63 int power = to_lcd_power(*(int *)evdata->data); in fb_notifier_callback() local
65 if (ld->ops->set_power) in fb_notifier_callback()
66 ld->ops->set_power(ld, power); in fb_notifier_callback()
68 const struct fb_videomode *videomode = evdata->data; in fb_notifier_callback()
70 if (ld->ops->set_mode) in fb_notifier_callback()
71 ld->ops->set_mode(ld, videomode->xres, videomode->yres); in fb_notifier_callback()
79 memset(&ld->fb_notif, 0, sizeof(ld->fb_notif)); in lcd_register_fb()
80 ld->fb_notif.notifier_call = fb_notifier_callback; in lcd_register_fb()
81 return fb_register_client(&ld->fb_notif); in lcd_register_fb()
86 fb_unregister_client(&ld->fb_notif); in lcd_unregister_fb()
105 mutex_lock(&ld->ops_lock); in lcd_power_show()
106 if (ld->ops && ld->ops->get_power) in lcd_power_show()
107 rc = sprintf(buf, "%d\n", ld->ops->get_power(ld)); in lcd_power_show()
109 rc = -ENXIO; in lcd_power_show()
110 mutex_unlock(&ld->ops_lock); in lcd_power_show()
120 unsigned long power; in lcd_power_store() local
122 rc = kstrtoul(buf, 0, &power); in lcd_power_store()
126 rc = -ENXIO; in lcd_power_store()
128 mutex_lock(&ld->ops_lock); in lcd_power_store()
129 if (ld->ops && ld->ops->set_power) { in lcd_power_store()
130 pr_debug("set power to %lu\n", power); in lcd_power_store()
131 ld->ops->set_power(ld, power); in lcd_power_store()
134 mutex_unlock(&ld->ops_lock); in lcd_power_store()
143 int rc = -ENXIO; in contrast_show()
146 mutex_lock(&ld->ops_lock); in contrast_show()
147 if (ld->ops && ld->ops->get_contrast) in contrast_show()
148 rc = sprintf(buf, "%d\n", ld->ops->get_contrast(ld)); in contrast_show()
149 mutex_unlock(&ld->ops_lock); in contrast_show()
165 rc = -ENXIO; in contrast_store()
167 mutex_lock(&ld->ops_lock); in contrast_store()
168 if (ld->ops && ld->ops->set_contrast) { in contrast_store()
170 ld->ops->set_contrast(ld, contrast); in contrast_store()
173 mutex_unlock(&ld->ops_lock); in contrast_store()
184 return sprintf(buf, "%d\n", ld->props.max_contrast); in max_contrast_show()
208 * lcd_device_register - register a new object of lcd_device class.
229 return ERR_PTR(-ENOMEM); in lcd_device_register()
231 mutex_init(&new_ld->ops_lock); in lcd_device_register()
232 mutex_init(&new_ld->update_lock); in lcd_device_register()
234 new_ld->dev.class = &lcd_class; in lcd_device_register()
235 new_ld->dev.parent = parent; in lcd_device_register()
236 new_ld->dev.release = lcd_device_release; in lcd_device_register()
237 dev_set_name(&new_ld->dev, "%s", name); in lcd_device_register()
238 dev_set_drvdata(&new_ld->dev, devdata); in lcd_device_register()
240 new_ld->ops = ops; in lcd_device_register()
242 rc = device_register(&new_ld->dev); in lcd_device_register()
244 put_device(&new_ld->dev); in lcd_device_register()
250 device_unregister(&new_ld->dev); in lcd_device_register()
259 * lcd_device_unregister - unregisters a object of lcd_device class.
269 mutex_lock(&ld->ops_lock); in lcd_device_unregister()
270 ld->ops = NULL; in lcd_device_unregister()
271 mutex_unlock(&ld->ops_lock); in lcd_device_unregister()
274 device_unregister(&ld->dev); in lcd_device_unregister()
293 * devm_lcd_device_register - resource managed lcd_device_register()
302 * Managed lcd_device_register(). The lcd_device returned from this function
314 return ERR_PTR(-ENOMEM); in devm_lcd_device_register()
329 * devm_lcd_device_unregister - resource managed lcd_device_unregister()