Lines Matching refs:bd
99 struct backlight_device *bd; in fb_notifier_callback() local
110 bd = container_of(self, struct backlight_device, fb_notif); in fb_notifier_callback()
111 mutex_lock(&bd->ops_lock); in fb_notifier_callback()
113 if (!bd->ops) in fb_notifier_callback()
115 if (bd->ops->controls_device && !bd->ops->controls_device(bd, info->device)) in fb_notifier_callback()
117 if (fb_bd && fb_bd != bd) in fb_notifier_callback()
121 if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) { in fb_notifier_callback()
122 bd->fb_bl_on[node] = true; in fb_notifier_callback()
123 if (!bd->use_count++) { in fb_notifier_callback()
124 bd->props.state &= ~BL_CORE_FBBLANK; in fb_notifier_callback()
125 backlight_update_status(bd); in fb_notifier_callback()
127 } else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) { in fb_notifier_callback()
128 bd->fb_bl_on[node] = false; in fb_notifier_callback()
129 if (!(--bd->use_count)) { in fb_notifier_callback()
130 bd->props.state |= BL_CORE_FBBLANK; in fb_notifier_callback()
131 backlight_update_status(bd); in fb_notifier_callback()
135 mutex_unlock(&bd->ops_lock); in fb_notifier_callback()
139 static int backlight_register_fb(struct backlight_device *bd) in backlight_register_fb() argument
141 memset(&bd->fb_notif, 0, sizeof(bd->fb_notif)); in backlight_register_fb()
142 bd->fb_notif.notifier_call = fb_notifier_callback; in backlight_register_fb()
144 return fb_register_client(&bd->fb_notif); in backlight_register_fb()
147 static void backlight_unregister_fb(struct backlight_device *bd) in backlight_unregister_fb() argument
149 fb_unregister_client(&bd->fb_notif); in backlight_unregister_fb()
152 static inline int backlight_register_fb(struct backlight_device *bd) in backlight_register_fb() argument
157 static inline void backlight_unregister_fb(struct backlight_device *bd) in backlight_unregister_fb() argument
162 static void backlight_generate_event(struct backlight_device *bd, in backlight_generate_event() argument
179 kobject_uevent_env(&bd->dev.kobj, KOBJ_CHANGE, envp); in backlight_generate_event()
180 sysfs_notify(&bd->dev.kobj, NULL, "actual_brightness"); in backlight_generate_event()
186 struct backlight_device *bd = to_backlight_device(dev); in bl_power_show() local
188 return sprintf(buf, "%d\n", bd->props.power); in bl_power_show()
195 struct backlight_device *bd = to_backlight_device(dev); in bl_power_store() local
203 mutex_lock(&bd->ops_lock); in bl_power_store()
204 if (bd->ops) { in bl_power_store()
206 if (bd->props.power != power) { in bl_power_store()
207 old_power = bd->props.power; in bl_power_store()
208 bd->props.power = power; in bl_power_store()
209 rc = backlight_update_status(bd); in bl_power_store()
211 bd->props.power = old_power; in bl_power_store()
218 mutex_unlock(&bd->ops_lock); in bl_power_store()
227 struct backlight_device *bd = to_backlight_device(dev); in brightness_show() local
229 return sprintf(buf, "%d\n", bd->props.brightness); in brightness_show()
232 int backlight_device_set_brightness(struct backlight_device *bd, in backlight_device_set_brightness() argument
237 mutex_lock(&bd->ops_lock); in backlight_device_set_brightness()
238 if (bd->ops) { in backlight_device_set_brightness()
239 if (brightness > bd->props.max_brightness) in backlight_device_set_brightness()
243 bd->props.brightness = brightness; in backlight_device_set_brightness()
244 rc = backlight_update_status(bd); in backlight_device_set_brightness()
247 mutex_unlock(&bd->ops_lock); in backlight_device_set_brightness()
249 backlight_generate_event(bd, BACKLIGHT_UPDATE_SYSFS); in backlight_device_set_brightness()
259 struct backlight_device *bd = to_backlight_device(dev); in brightness_store() local
266 rc = backlight_device_set_brightness(bd, brightness); in brightness_store()
275 struct backlight_device *bd = to_backlight_device(dev); in type_show() local
277 return sprintf(buf, "%s\n", backlight_types[bd->props.type]); in type_show()
284 struct backlight_device *bd = to_backlight_device(dev); in max_brightness_show() local
286 return sprintf(buf, "%d\n", bd->props.max_brightness); in max_brightness_show()
294 struct backlight_device *bd = to_backlight_device(dev); in actual_brightness_show() local
296 mutex_lock(&bd->ops_lock); in actual_brightness_show()
297 if (bd->ops && bd->ops->get_brightness) { in actual_brightness_show()
298 rc = bd->ops->get_brightness(bd); in actual_brightness_show()
302 rc = sprintf(buf, "%d\n", bd->props.brightness); in actual_brightness_show()
304 mutex_unlock(&bd->ops_lock); in actual_brightness_show()
313 struct backlight_device *bd = to_backlight_device(dev); in scale_show() local
315 if (WARN_ON(bd->props.scale > BACKLIGHT_SCALE_NON_LINEAR)) in scale_show()
318 return sprintf(buf, "%s\n", backlight_scale_types[bd->props.scale]); in scale_show()
325 struct backlight_device *bd = to_backlight_device(dev); in backlight_suspend() local
327 mutex_lock(&bd->ops_lock); in backlight_suspend()
328 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { in backlight_suspend()
329 bd->props.state |= BL_CORE_SUSPENDED; in backlight_suspend()
330 backlight_update_status(bd); in backlight_suspend()
332 mutex_unlock(&bd->ops_lock); in backlight_suspend()
339 struct backlight_device *bd = to_backlight_device(dev); in backlight_resume() local
341 mutex_lock(&bd->ops_lock); in backlight_resume()
342 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { in backlight_resume()
343 bd->props.state &= ~BL_CORE_SUSPENDED; in backlight_resume()
344 backlight_update_status(bd); in backlight_resume()
346 mutex_unlock(&bd->ops_lock); in backlight_resume()
357 struct backlight_device *bd = to_backlight_device(dev); in bl_device_release() local
358 kfree(bd); in bl_device_release()
390 void backlight_force_update(struct backlight_device *bd, in backlight_force_update() argument
395 mutex_lock(&bd->ops_lock); in backlight_force_update()
396 if (bd->ops && bd->ops->get_brightness) { in backlight_force_update()
397 brightness = bd->ops->get_brightness(bd); in backlight_force_update()
399 bd->props.brightness = brightness; in backlight_force_update()
401 dev_err(&bd->dev, in backlight_force_update()
405 mutex_unlock(&bd->ops_lock); in backlight_force_update()
406 backlight_generate_event(bd, reason); in backlight_force_update()
489 struct backlight_device *bd; in backlight_device_get_by_type() local
492 list_for_each_entry(bd, &backlight_dev_list, entry) { in backlight_device_get_by_type()
493 if (bd->props.type == type) { in backlight_device_get_by_type()
500 return found ? bd : NULL; in backlight_device_get_by_type()
526 void backlight_device_unregister(struct backlight_device *bd) in backlight_device_unregister() argument
528 if (!bd) in backlight_device_unregister()
532 list_del(&bd->entry); in backlight_device_unregister()
537 if (pmac_backlight == bd) in backlight_device_unregister()
543 BACKLIGHT_UNREGISTERED, bd); in backlight_device_unregister()
545 mutex_lock(&bd->ops_lock); in backlight_device_unregister()
546 bd->ops = NULL; in backlight_device_unregister()
547 mutex_unlock(&bd->ops_lock); in backlight_device_unregister()
549 backlight_unregister_fb(bd); in backlight_device_unregister()
550 device_unregister(&bd->dev); in backlight_device_unregister()
655 struct backlight_device *bd) in devm_backlight_device_unregister() argument
660 devm_backlight_device_match, bd); in devm_backlight_device_unregister()
696 struct backlight_device *bd = NULL; in of_find_backlight() local
705 bd = of_find_backlight_by_node(np); in of_find_backlight()
707 if (!bd) in of_find_backlight()
712 return bd; in of_find_backlight()
717 struct backlight_device *bd = data; in devm_backlight_release() local
719 put_device(&bd->dev); in devm_backlight_release()
739 struct backlight_device *bd; in devm_of_find_backlight() local
742 bd = of_find_backlight(dev); in devm_of_find_backlight()
743 if (IS_ERR_OR_NULL(bd)) in devm_of_find_backlight()
744 return bd; in devm_of_find_backlight()
745 ret = devm_add_action_or_reset(dev, devm_backlight_release, bd); in devm_of_find_backlight()
749 return bd; in devm_of_find_backlight()