Lines Matching refs:bl

3959 int drm_edp_backlight_set_level(struct drm_dp_aux *aux, const struct drm_edp_backlight_info *bl,  in drm_edp_backlight_set_level()  argument
3967 if (!(bl->aux_set || bl->luminance_set)) in drm_edp_backlight_set_level()
3970 if (bl->luminance_set) { in drm_edp_backlight_set_level()
3977 } else if (bl->lsb_reg_used) { in drm_edp_backlight_set_level()
3997 drm_edp_backlight_set_enable(struct drm_dp_aux *aux, const struct drm_edp_backlight_info *bl, in drm_edp_backlight_set_enable() argument
4004 if (!bl->aux_enable) in drm_edp_backlight_set_enable()
4046 int drm_edp_backlight_enable(struct drm_dp_aux *aux, const struct drm_edp_backlight_info *bl, in drm_edp_backlight_enable() argument
4052 if (bl->aux_set) in drm_edp_backlight_enable()
4057 if (bl->luminance_set) in drm_edp_backlight_enable()
4060 if (bl->pwmgen_bit_count) { in drm_edp_backlight_enable()
4061 ret = drm_dp_dpcd_write_byte(aux, DP_EDP_PWMGEN_BIT_COUNT, bl->pwmgen_bit_count); in drm_edp_backlight_enable()
4067 if (bl->pwm_freq_pre_divider) { in drm_edp_backlight_enable()
4069 bl->pwm_freq_pre_divider); in drm_edp_backlight_enable()
4085 ret = drm_edp_backlight_set_level(aux, bl, level); in drm_edp_backlight_enable()
4088 ret = drm_edp_backlight_set_enable(aux, bl, true); in drm_edp_backlight_enable()
4111 int drm_edp_backlight_disable(struct drm_dp_aux *aux, const struct drm_edp_backlight_info *bl) in drm_edp_backlight_disable() argument
4115 ret = drm_edp_backlight_set_enable(aux, bl, false); in drm_edp_backlight_disable()
4124 drm_edp_backlight_probe_max(struct drm_dp_aux *aux, struct drm_edp_backlight_info *bl, in drm_edp_backlight_probe_max() argument
4131 if (!bl->aux_set) in drm_edp_backlight_probe_max()
4142 bl->max = (1 << pn) - 1; in drm_edp_backlight_probe_max()
4206 bl->pwmgen_bit_count = pn; in drm_edp_backlight_probe_max()
4207 bl->max = (1 << pn) - 1; in drm_edp_backlight_probe_max()
4210 bl->pwm_freq_pre_divider = f; in drm_edp_backlight_probe_max()
4219 drm_edp_backlight_probe_state(struct drm_dp_aux *aux, struct drm_edp_backlight_info *bl, in drm_edp_backlight_probe_state() argument
4234 if (!bl->aux_set) in drm_edp_backlight_probe_state()
4238 int size = 1 + bl->lsb_reg_used; in drm_edp_backlight_probe_state()
4240 if (bl->luminance_set) { in drm_edp_backlight_probe_state()
4266 if (bl->lsb_reg_used) in drm_edp_backlight_probe_state()
4277 return bl->max; in drm_edp_backlight_probe_state()
4301 drm_edp_backlight_init(struct drm_dp_aux *aux, struct drm_edp_backlight_info *bl, in drm_edp_backlight_init() argument
4309 bl->aux_enable = true; in drm_edp_backlight_init()
4311 bl->aux_set = true; in drm_edp_backlight_init()
4313 bl->lsb_reg_used = true; in drm_edp_backlight_init()
4316 bl->luminance_set = true; in drm_edp_backlight_init()
4319 if (!bl->aux_set && !(edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP) && in drm_edp_backlight_init()
4320 !bl->luminance_set) { in drm_edp_backlight_init()
4327 if (bl->luminance_set) { in drm_edp_backlight_init()
4328 bl->max = max_luminance; in drm_edp_backlight_init()
4330 ret = drm_edp_backlight_probe_max(aux, bl, driver_pwm_freq_hz, edp_dpcd); in drm_edp_backlight_init()
4335 ret = drm_edp_backlight_probe_state(aux, bl, current_mode); in drm_edp_backlight_init()
4342 aux->name, bl->aux_set, bl->aux_enable, *current_mode); in drm_edp_backlight_init()
4343 if (bl->aux_set) { in drm_edp_backlight_init()
4346 aux->name, *current_level, bl->max, bl->pwm_freq_pre_divider, in drm_edp_backlight_init()
4347 bl->lsb_reg_used); in drm_edp_backlight_init()
4359 struct dp_aux_backlight *bl = bl_get_data(bd); in dp_aux_backlight_update_status() local
4364 if (!bl->enabled) { in dp_aux_backlight_update_status()
4365 drm_edp_backlight_enable(bl->aux, &bl->info, brightness); in dp_aux_backlight_update_status()
4366 bl->enabled = true; in dp_aux_backlight_update_status()
4369 ret = drm_edp_backlight_set_level(bl->aux, &bl->info, brightness); in dp_aux_backlight_update_status()
4371 if (bl->enabled) { in dp_aux_backlight_update_status()
4372 drm_edp_backlight_disable(bl->aux, &bl->info); in dp_aux_backlight_update_status()
4373 bl->enabled = false; in dp_aux_backlight_update_status()
4410 struct dp_aux_backlight *bl; in drm_panel_dp_aux_backlight() local
4430 bl = devm_kzalloc(panel->dev, sizeof(*bl), GFP_KERNEL); in drm_panel_dp_aux_backlight()
4431 if (!bl) in drm_panel_dp_aux_backlight()
4434 bl->aux = aux; in drm_panel_dp_aux_backlight()
4436 ret = drm_edp_backlight_init(aux, &bl->info, 0, 0, edp_dpcd, in drm_panel_dp_aux_backlight()
4443 props.max_brightness = bl->info.max; in drm_panel_dp_aux_backlight()
4445 bl->base = devm_backlight_device_register(panel->dev, "dp_aux_backlight", in drm_panel_dp_aux_backlight()
4446 panel->dev, bl, in drm_panel_dp_aux_backlight()
4448 if (IS_ERR(bl->base)) in drm_panel_dp_aux_backlight()
4449 return PTR_ERR(bl->base); in drm_panel_dp_aux_backlight()
4451 backlight_disable(bl->base); in drm_panel_dp_aux_backlight()
4453 panel->backlight = bl->base; in drm_panel_dp_aux_backlight()