Lines Matching refs:bd

99 	struct backlight_device *bd;
108 bd = container_of(self, struct backlight_device, fb_notif);
109 mutex_lock(&bd->ops_lock);
111 if (!bd->ops)
113 if (bd->ops->check_fb && !bd->ops->check_fb(bd, evdata->info))
117 if (fb_blank == FB_BLANK_UNBLANK && !bd->fb_bl_on[node]) {
118 bd->fb_bl_on[node] = true;
119 if (!bd->use_count++) {
120 bd->props.state &= ~BL_CORE_FBBLANK;
121 bd->props.fb_blank = FB_BLANK_UNBLANK;
122 backlight_update_status(bd);
124 } else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) {
125 bd->fb_bl_on[node] = false;
126 if (!(--bd->use_count)) {
127 bd->props.state |= BL_CORE_FBBLANK;
128 bd->props.fb_blank = fb_blank;
129 backlight_update_status(bd);
133 mutex_unlock(&bd->ops_lock);
137 static int backlight_register_fb(struct backlight_device *bd)
139 memset(&bd->fb_notif, 0, sizeof(bd->fb_notif));
140 bd->fb_notif.notifier_call = fb_notifier_callback;
142 return fb_register_client(&bd->fb_notif);
145 static void backlight_unregister_fb(struct backlight_device *bd)
147 fb_unregister_client(&bd->fb_notif);
150 static inline int backlight_register_fb(struct backlight_device *bd)
155 static inline void backlight_unregister_fb(struct backlight_device *bd)
160 static void backlight_generate_event(struct backlight_device *bd,
177 kobject_uevent_env(&bd->dev.kobj, KOBJ_CHANGE, envp);
178 sysfs_notify(&bd->dev.kobj, NULL, "actual_brightness");
184 struct backlight_device *bd = to_backlight_device(dev);
186 return sprintf(buf, "%d\n", bd->props.power);
193 struct backlight_device *bd = to_backlight_device(dev);
201 mutex_lock(&bd->ops_lock);
202 if (bd->ops) {
204 if (bd->props.power != power) {
205 old_power = bd->props.power;
206 bd->props.power = power;
207 rc = backlight_update_status(bd);
209 bd->props.power = old_power;
216 mutex_unlock(&bd->ops_lock);
225 struct backlight_device *bd = to_backlight_device(dev);
227 return sprintf(buf, "%d\n", bd->props.brightness);
230 int backlight_device_set_brightness(struct backlight_device *bd,
235 mutex_lock(&bd->ops_lock);
236 if (bd->ops) {
237 if (brightness > bd->props.max_brightness)
241 bd->props.brightness = brightness;
242 rc = backlight_update_status(bd);
245 mutex_unlock(&bd->ops_lock);
247 backlight_generate_event(bd, BACKLIGHT_UPDATE_SYSFS);
257 struct backlight_device *bd = to_backlight_device(dev);
264 rc = backlight_device_set_brightness(bd, brightness);
273 struct backlight_device *bd = to_backlight_device(dev);
275 return sprintf(buf, "%s\n", backlight_types[bd->props.type]);
282 struct backlight_device *bd = to_backlight_device(dev);
284 return sprintf(buf, "%d\n", bd->props.max_brightness);
292 struct backlight_device *bd = to_backlight_device(dev);
294 mutex_lock(&bd->ops_lock);
295 if (bd->ops && bd->ops->get_brightness)
296 rc = sprintf(buf, "%d\n", bd->ops->get_brightness(bd));
298 rc = sprintf(buf, "%d\n", bd->props.brightness);
299 mutex_unlock(&bd->ops_lock);
308 struct backlight_device *bd = to_backlight_device(dev);
310 if (WARN_ON(bd->props.scale > BACKLIGHT_SCALE_NON_LINEAR))
313 return sprintf(buf, "%s\n", backlight_scale_types[bd->props.scale]);
322 struct backlight_device *bd = to_backlight_device(dev);
324 mutex_lock(&bd->ops_lock);
325 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
326 bd->props.state |= BL_CORE_SUSPENDED;
327 backlight_update_status(bd);
329 mutex_unlock(&bd->ops_lock);
336 struct backlight_device *bd = to_backlight_device(dev);
338 mutex_lock(&bd->ops_lock);
339 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
340 bd->props.state &= ~BL_CORE_SUSPENDED;
341 backlight_update_status(bd);
343 mutex_unlock(&bd->ops_lock);
354 struct backlight_device *bd = to_backlight_device(dev);
355 kfree(bd);
372 * @bd: the backlight device to update
381 void backlight_force_update(struct backlight_device *bd,
384 mutex_lock(&bd->ops_lock);
385 if (bd->ops && bd->ops->get_brightness)
386 bd->props.brightness = bd->ops->get_brightness(bd);
387 mutex_unlock(&bd->ops_lock);
388 backlight_generate_event(bd, reason);
471 struct backlight_device *bd;
474 list_for_each_entry(bd, &backlight_dev_list, entry) {
475 if (bd->props.type == type) {
482 return found ? bd : NULL;
508 void backlight_device_unregister(struct backlight_device *bd)
510 if (!bd)
514 list_del(&bd->entry);
519 if (pmac_backlight == bd)
525 BACKLIGHT_UNREGISTERED, bd);
527 mutex_lock(&bd->ops_lock);
528 bd->ops = NULL;
529 mutex_unlock(&bd->ops_lock);
531 backlight_unregister_fb(bd);
532 device_unregister(&bd->dev);
630 * @bd: the backlight device to unregister
637 struct backlight_device *bd)
642 devm_backlight_device_match, bd);
678 struct backlight_device *bd = NULL;
687 bd = of_find_backlight_by_node(np);
689 if (!bd)
694 return bd;
699 struct backlight_device *bd = data;
701 if (bd)
702 put_device(&bd->dev);
722 struct backlight_device *bd;
725 bd = of_find_backlight(dev);
726 if (IS_ERR_OR_NULL(bd))
727 return bd;
728 ret = devm_add_action(dev, devm_backlight_release, bd);
730 put_device(&bd->dev);
733 return bd;