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 = bd->ops->get_brightness(bd);
300 rc = sprintf(buf, "%d\n", bd->props.brightness);
302 mutex_unlock(&bd->ops_lock);
311 struct backlight_device *bd = to_backlight_device(dev);
313 if (WARN_ON(bd->props.scale > BACKLIGHT_SCALE_NON_LINEAR))
316 return sprintf(buf, "%s\n", backlight_scale_types[bd->props.scale]);
325 struct backlight_device *bd = to_backlight_device(dev);
327 mutex_lock(&bd->ops_lock);
328 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
329 bd->props.state |= BL_CORE_SUSPENDED;
330 backlight_update_status(bd);
332 mutex_unlock(&bd->ops_lock);
339 struct backlight_device *bd = to_backlight_device(dev);
341 mutex_lock(&bd->ops_lock);
342 if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
343 bd->props.state &= ~BL_CORE_SUSPENDED;
344 backlight_update_status(bd);
346 mutex_unlock(&bd->ops_lock);
357 struct backlight_device *bd = to_backlight_device(dev);
358 kfree(bd);
375 * @bd: the backlight device to update
384 void backlight_force_update(struct backlight_device *bd,
389 mutex_lock(&bd->ops_lock);
390 if (bd->ops && bd->ops->get_brightness) {
391 brightness = bd->ops->get_brightness(bd);
393 bd->props.brightness = brightness;
395 dev_err(&bd->dev,
399 mutex_unlock(&bd->ops_lock);
400 backlight_generate_event(bd, reason);
483 struct backlight_device *bd;
486 list_for_each_entry(bd, &backlight_dev_list, entry) {
487 if (bd->props.type == type) {
494 return found ? bd : NULL;
520 void backlight_device_unregister(struct backlight_device *bd)
522 if (!bd)
526 list_del(&bd->entry);
531 if (pmac_backlight == bd)
537 BACKLIGHT_UNREGISTERED, bd);
539 mutex_lock(&bd->ops_lock);
540 bd->ops = NULL;
541 mutex_unlock(&bd->ops_lock);
543 backlight_unregister_fb(bd);
544 device_unregister(&bd->dev);
642 * @bd: the backlight device to unregister
649 struct backlight_device *bd)
654 devm_backlight_device_match, bd);
690 struct backlight_device *bd = NULL;
699 bd = of_find_backlight_by_node(np);
701 if (!bd)
706 return bd;
711 struct backlight_device *bd = data;
713 put_device(&bd->dev);
733 struct backlight_device *bd;
736 bd = of_find_backlight(dev);
737 if (IS_ERR_OR_NULL(bd))
738 return bd;
739 ret = devm_add_action_or_reset(dev, devm_backlight_release, bd);
743 return bd;