Lines Matching refs:backlight
74 hw_level = scale(user_level, 0, user_max, 0, panel->backlight.max); in clamp_user_to_hw()
75 hw_level = clamp(hw_level, panel->backlight.min, panel->backlight.max); in clamp_user_to_hw()
86 return scale(hw_level, panel->backlight.min, panel->backlight.max, in scale_hw_to_user()
95 drm_WARN_ON(display->drm, panel->backlight.pwm_level_max == 0); in intel_backlight_invert_pwm_level()
102 return panel->backlight.pwm_level_max - val + panel->backlight.pwm_level_min; in intel_backlight_invert_pwm_level()
116 panel->backlight.pwm_funcs->set(conn_state, val); in intel_backlight_set_pwm_level()
125 panel->backlight.max == 0 || panel->backlight.pwm_level_max == 0); in intel_backlight_level_to_pwm()
127 val = scale(val, panel->backlight.min, panel->backlight.max, in intel_backlight_level_to_pwm()
128 panel->backlight.pwm_level_min, panel->backlight.pwm_level_max); in intel_backlight_level_to_pwm()
139 panel->backlight.max == 0 || panel->backlight.pwm_level_max == 0); in intel_backlight_level_from_pwm()
144 val = panel->backlight.pwm_level_max - (val - panel->backlight.pwm_level_min); in intel_backlight_level_from_pwm()
146 return scale(val, panel->backlight.pwm_level_min, panel->backlight.pwm_level_max, in intel_backlight_level_from_pwm()
147 panel->backlight.min, panel->backlight.max); in intel_backlight_level_from_pwm()
174 if (panel->backlight.combination_mode) { in i9xx_get_backlight()
200 return intel_de_read(display, BXT_BLC_PWM_DUTY(panel->backlight.controller)); in bxt_get_backlight()
208 pwm_get_state(panel->backlight.pwm, &state); in ext_pwm_get_backlight()
239 drm_WARN_ON(display->drm, panel->backlight.pwm_level_max == 0); in i9xx_set_backlight()
241 if (panel->backlight.combination_mode) { in i9xx_set_backlight()
245 lbpc = level * 0xfe / panel->backlight.pwm_level_max + 1; in i9xx_set_backlight()
278 intel_de_write(display, BXT_BLC_PWM_DUTY(panel->backlight.controller), level); in bxt_set_backlight()
285 pwm_set_relative_duty_cycle(&panel->backlight.pwm_state, level, 100); in ext_pwm_set_backlight()
286 pwm_apply_might_sleep(panel->backlight.pwm, &panel->backlight.pwm_state); in ext_pwm_set_backlight()
299 panel->backlight.funcs->set(conn_state, level); in intel_panel_actually_set_backlight()
319 if (!panel->backlight.present || !conn_state->crtc) in intel_backlight_set_acpi()
322 mutex_lock(&display->backlight.lock); in intel_backlight_set_acpi()
324 drm_WARN_ON(display->drm, panel->backlight.max == 0); in intel_backlight_set_acpi()
327 panel->backlight.level = hw_level; in intel_backlight_set_acpi()
329 if (panel->backlight.device) in intel_backlight_set_acpi()
330 panel->backlight.device->props.brightness = in intel_backlight_set_acpi()
332 panel->backlight.level, in intel_backlight_set_acpi()
333 panel->backlight.device->props.max_brightness); in intel_backlight_set_acpi()
335 if (panel->backlight.enabled) in intel_backlight_set_acpi()
338 mutex_unlock(&display->backlight.lock); in intel_backlight_set_acpi()
413 intel_de_rmw(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in bxt_disable_backlight()
416 if (panel->backlight.controller == 1) in bxt_disable_backlight()
428 intel_de_rmw(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in cnp_disable_backlight()
439 panel->backlight.pwm_state.enabled = false; in ext_pwm_disable_backlight()
440 pwm_apply_might_sleep(panel->backlight.pwm, &panel->backlight.pwm_state); in ext_pwm_disable_backlight()
449 if (!panel->backlight.present) in intel_backlight_disable()
464 mutex_lock(&display->backlight.lock); in intel_backlight_disable()
466 if (panel->backlight.device) in intel_backlight_disable()
467 panel->backlight.device->props.power = BACKLIGHT_POWER_OFF; in intel_backlight_disable()
468 panel->backlight.enabled = false; in intel_backlight_disable()
469 panel->backlight.funcs->disable(old_conn_state, 0); in intel_backlight_disable()
471 mutex_unlock(&display->backlight.lock); in intel_backlight_disable()
493 panel->backlight.alternate_pwm_increment ? in lpt_enable_backlight()
497 panel->backlight.alternate_pwm_increment ? in lpt_enable_backlight()
500 pch_ctl2 = panel->backlight.pwm_level_max << 16; in lpt_enable_backlight()
504 if (panel->backlight.active_low_pwm) in lpt_enable_backlight()
557 pch_ctl2 = panel->backlight.pwm_level_max << 16; in pch_enable_backlight()
561 if (panel->backlight.active_low_pwm) in pch_enable_backlight()
585 freq = panel->backlight.pwm_level_max; in i9xx_enable_backlight()
586 if (panel->backlight.combination_mode) in i9xx_enable_backlight()
590 if (panel->backlight.combination_mode) in i9xx_enable_backlight()
592 if (display->platform.pineview && panel->backlight.active_low_pwm) in i9xx_enable_backlight()
628 freq = panel->backlight.pwm_level_max; in i965_enable_backlight()
629 if (panel->backlight.combination_mode) in i965_enable_backlight()
636 if (panel->backlight.combination_mode) in i965_enable_backlight()
638 if (panel->backlight.active_low_pwm) in i965_enable_backlight()
665 ctl = panel->backlight.pwm_level_max << 16; in vlv_enable_backlight()
672 if (panel->backlight.active_low_pwm) in vlv_enable_backlight()
689 if (panel->backlight.controller == 1) { in bxt_enable_backlight()
700 if (panel->backlight.util_pin_active_low) in bxt_enable_backlight()
706 pwm_ctl = intel_de_read(display, BXT_BLC_PWM_CTL(panel->backlight.controller)); in bxt_enable_backlight()
712 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in bxt_enable_backlight()
716 intel_de_write(display, BXT_BLC_PWM_FREQ(panel->backlight.controller), in bxt_enable_backlight()
717 panel->backlight.pwm_level_max); in bxt_enable_backlight()
722 if (panel->backlight.active_low_pwm) in bxt_enable_backlight()
725 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), pwm_ctl); in bxt_enable_backlight()
726 intel_de_posting_read(display, BXT_BLC_PWM_CTL(panel->backlight.controller)); in bxt_enable_backlight()
727 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in bxt_enable_backlight()
739 pwm_ctl = intel_de_read(display, BXT_BLC_PWM_CTL(panel->backlight.controller)); in cnp_enable_backlight()
743 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in cnp_enable_backlight()
747 intel_de_write(display, BXT_BLC_PWM_FREQ(panel->backlight.controller), in cnp_enable_backlight()
748 panel->backlight.pwm_level_max); in cnp_enable_backlight()
753 if (panel->backlight.active_low_pwm) in cnp_enable_backlight()
756 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), pwm_ctl); in cnp_enable_backlight()
757 intel_de_posting_read(display, BXT_BLC_PWM_CTL(panel->backlight.controller)); in cnp_enable_backlight()
758 intel_de_write(display, BXT_BLC_PWM_CTL(panel->backlight.controller), in cnp_enable_backlight()
768 pwm_set_relative_duty_cycle(&panel->backlight.pwm_state, level, 100); in ext_pwm_enable_backlight()
769 panel->backlight.pwm_state.enabled = true; in ext_pwm_enable_backlight()
770 pwm_apply_might_sleep(panel->backlight.pwm, &panel->backlight.pwm_state); in ext_pwm_enable_backlight()
779 WARN_ON(panel->backlight.max == 0); in __intel_backlight_enable()
781 if (panel->backlight.level < panel->backlight.min) { in __intel_backlight_enable()
782 panel->backlight.level = panel->backlight.min; in __intel_backlight_enable()
783 if (panel->backlight.device) in __intel_backlight_enable()
784 panel->backlight.device->props.brightness = in __intel_backlight_enable()
786 panel->backlight.level, in __intel_backlight_enable()
787 panel->backlight.device->props.max_brightness); in __intel_backlight_enable()
790 panel->backlight.funcs->enable(crtc_state, conn_state, panel->backlight.level); in __intel_backlight_enable()
791 panel->backlight.enabled = true; in __intel_backlight_enable()
792 if (panel->backlight.device) in __intel_backlight_enable()
793 panel->backlight.device->props.power = BACKLIGHT_POWER_ON; in __intel_backlight_enable()
804 if (!panel->backlight.present) in intel_backlight_enable()
809 mutex_lock(&display->backlight.lock); in intel_backlight_enable()
813 mutex_unlock(&display->backlight.lock); in intel_backlight_enable()
823 mutex_lock(&display->backlight.lock); in intel_panel_get_backlight()
825 if (panel->backlight.enabled) in intel_panel_get_backlight()
826 val = panel->backlight.funcs->get(connector, intel_connector_get_pipe(connector)); in intel_panel_get_backlight()
828 mutex_unlock(&display->backlight.lock); in intel_panel_get_backlight()
841 panel->backlight.min, panel->backlight.max); in scale_user_to_hw()
853 if (!panel->backlight.present) in intel_panel_set_backlight()
856 mutex_lock(&display->backlight.lock); in intel_panel_set_backlight()
858 drm_WARN_ON(display->drm, panel->backlight.max == 0); in intel_panel_set_backlight()
861 panel->backlight.level = hw_level; in intel_panel_set_backlight()
863 if (panel->backlight.enabled) in intel_panel_set_backlight()
866 mutex_unlock(&display->backlight.lock); in intel_panel_set_backlight()
888 if (panel->backlight.enabled) { in intel_backlight_device_update_status()
889 if (panel->backlight.power) { in intel_backlight_device_update_status()
892 panel->backlight.power(connector, enable); in intel_backlight_device_update_status()
938 if (WARN_ON(panel->backlight.device)) in intel_backlight_device_register()
941 if (!panel->backlight.present) in intel_backlight_device_register()
944 WARN_ON(panel->backlight.max == 0); in intel_backlight_device_register()
959 props.max_brightness = panel->backlight.max; in intel_backlight_device_register()
961 panel->backlight.level, in intel_backlight_device_register()
964 if (panel->backlight.enabled) in intel_backlight_device_register()
1001 panel->backlight.device = bd; in intel_backlight_device_register()
1017 if (panel->backlight.device) { in intel_backlight_device_unregister()
1018 backlight_device_unregister(panel->backlight.device); in intel_backlight_device_unregister()
1019 panel->backlight.device = NULL; in intel_backlight_device_unregister()
1054 if (panel->backlight.alternate_pwm_increment) in spt_hz_to_pwm()
1073 if (panel->backlight.alternate_pwm_increment) in lpt_hz_to_pwm()
1164 u16 pwm_freq_hz = connector->panel.vbt.backlight.pwm_freq_hz; in get_vbt_pwm_freq()
1187 if (!panel->backlight.pwm_funcs->hz_to_pwm) { in get_backlight_max_vbt()
1193 pwm = panel->backlight.pwm_funcs->hz_to_pwm(connector, pwm_freq_hz); in get_backlight_max_vbt()
1212 drm_WARN_ON(display->drm, panel->backlight.pwm_level_max == 0); in get_backlight_min_vbt()
1221 min = clamp_t(int, connector->panel.vbt.backlight.min_brightness, 0, 64); in get_backlight_min_vbt()
1222 if (min != connector->panel.vbt.backlight.min_brightness) { in get_backlight_min_vbt()
1225 connector->panel.vbt.backlight.min_brightness, min); in get_backlight_min_vbt()
1229 return scale(min, 0, 255, 0, panel->backlight.pwm_level_max); in get_backlight_min_vbt()
1243 panel->backlight.alternate_pwm_increment = alt; in lpt_setup_backlight()
1246 panel->backlight.active_low_pwm = pch_ctl1 & BLM_PCH_POLARITY; in lpt_setup_backlight()
1249 panel->backlight.pwm_level_max = pch_ctl2 >> 16; in lpt_setup_backlight()
1253 if (!panel->backlight.pwm_level_max) in lpt_setup_backlight()
1254 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in lpt_setup_backlight()
1256 if (!panel->backlight.pwm_level_max) in lpt_setup_backlight()
1259 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in lpt_setup_backlight()
1261 panel->backlight.pwm_enabled = pch_ctl1 & BLM_PCH_PWM_ENABLE; in lpt_setup_backlight()
1263 cpu_mode = panel->backlight.pwm_enabled && HAS_PCH_LPT(display) && in lpt_setup_backlight()
1296 panel->backlight.active_low_pwm = pch_ctl1 & BLM_PCH_POLARITY; in pch_setup_backlight()
1299 panel->backlight.pwm_level_max = pch_ctl2 >> 16; in pch_setup_backlight()
1301 if (!panel->backlight.pwm_level_max) in pch_setup_backlight()
1302 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in pch_setup_backlight()
1304 if (!panel->backlight.pwm_level_max) in pch_setup_backlight()
1307 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in pch_setup_backlight()
1310 panel->backlight.pwm_enabled = (cpu_ctl2 & BLM_PWM_ENABLE) && in pch_setup_backlight()
1329 panel->backlight.combination_mode = ctl & BLM_LEGACY_MODE; in i9xx_setup_backlight()
1332 panel->backlight.active_low_pwm = ctl & BLM_POLARITY_PNV; in i9xx_setup_backlight()
1334 panel->backlight.pwm_level_max = ctl >> 17; in i9xx_setup_backlight()
1336 if (!panel->backlight.pwm_level_max) { in i9xx_setup_backlight()
1337 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in i9xx_setup_backlight()
1338 panel->backlight.pwm_level_max >>= 1; in i9xx_setup_backlight()
1341 if (!panel->backlight.pwm_level_max) in i9xx_setup_backlight()
1344 if (panel->backlight.combination_mode) in i9xx_setup_backlight()
1345 panel->backlight.pwm_level_max *= 0xff; in i9xx_setup_backlight()
1347 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in i9xx_setup_backlight()
1351 val = clamp(val, panel->backlight.pwm_level_min, panel->backlight.pwm_level_max); in i9xx_setup_backlight()
1353 panel->backlight.pwm_enabled = val != 0; in i9xx_setup_backlight()
1369 panel->backlight.combination_mode = ctl2 & BLM_COMBINATION_MODE; in i965_setup_backlight()
1370 panel->backlight.active_low_pwm = ctl2 & BLM_POLARITY_I965; in i965_setup_backlight()
1373 panel->backlight.pwm_level_max = ctl >> 16; in i965_setup_backlight()
1375 if (!panel->backlight.pwm_level_max) in i965_setup_backlight()
1376 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in i965_setup_backlight()
1378 if (!panel->backlight.pwm_level_max) in i965_setup_backlight()
1381 if (panel->backlight.combination_mode) in i965_setup_backlight()
1382 panel->backlight.pwm_level_max *= 0xff; in i965_setup_backlight()
1384 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in i965_setup_backlight()
1386 panel->backlight.pwm_enabled = ctl2 & BLM_PWM_ENABLE; in i965_setup_backlight()
1405 panel->backlight.active_low_pwm = ctl2 & BLM_POLARITY_I965; in vlv_setup_backlight()
1408 panel->backlight.pwm_level_max = ctl >> 16; in vlv_setup_backlight()
1410 if (!panel->backlight.pwm_level_max) in vlv_setup_backlight()
1411 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in vlv_setup_backlight()
1413 if (!panel->backlight.pwm_level_max) in vlv_setup_backlight()
1416 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in vlv_setup_backlight()
1418 panel->backlight.pwm_enabled = ctl2 & BLM_PWM_ENABLE; in vlv_setup_backlight()
1434 panel->backlight.controller = connector->panel.vbt.backlight.controller; in bxt_setup_backlight()
1437 BXT_BLC_PWM_CTL(panel->backlight.controller)); in bxt_setup_backlight()
1440 if (panel->backlight.controller == 1) { in bxt_setup_backlight()
1442 panel->backlight.util_pin_active_low = in bxt_setup_backlight()
1446 panel->backlight.active_low_pwm = pwm_ctl & BXT_BLC_PWM_POLARITY; in bxt_setup_backlight()
1447 panel->backlight.pwm_level_max = in bxt_setup_backlight()
1448 intel_de_read(display, BXT_BLC_PWM_FREQ(panel->backlight.controller)); in bxt_setup_backlight()
1450 if (!panel->backlight.pwm_level_max) in bxt_setup_backlight()
1451 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in bxt_setup_backlight()
1453 if (!panel->backlight.pwm_level_max) in bxt_setup_backlight()
1456 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in bxt_setup_backlight()
1458 panel->backlight.pwm_enabled = pwm_ctl & BXT_BLC_PWM_ENABLE; in bxt_setup_backlight()
1463 panel->backlight.controller); in bxt_setup_backlight()
1506 panel->backlight.controller = connector->panel.vbt.backlight.controller; in cnp_setup_backlight()
1507 if (!cnp_backlight_controller_is_valid(display, panel->backlight.controller)) { in cnp_setup_backlight()
1511 panel->backlight.controller); in cnp_setup_backlight()
1512 panel->backlight.controller = 0; in cnp_setup_backlight()
1516 BXT_BLC_PWM_CTL(panel->backlight.controller)); in cnp_setup_backlight()
1518 panel->backlight.active_low_pwm = pwm_ctl & BXT_BLC_PWM_POLARITY; in cnp_setup_backlight()
1519 panel->backlight.pwm_level_max = in cnp_setup_backlight()
1520 intel_de_read(display, BXT_BLC_PWM_FREQ(panel->backlight.controller)); in cnp_setup_backlight()
1522 if (!panel->backlight.pwm_level_max) in cnp_setup_backlight()
1523 panel->backlight.pwm_level_max = get_backlight_max_vbt(connector); in cnp_setup_backlight()
1525 if (!panel->backlight.pwm_level_max) in cnp_setup_backlight()
1528 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in cnp_setup_backlight()
1530 panel->backlight.pwm_enabled = pwm_ctl & BXT_BLC_PWM_ENABLE; in cnp_setup_backlight()
1535 panel->backlight.controller); in cnp_setup_backlight()
1550 panel->backlight.pwm = pwm_get(display->drm->dev, in ext_pwm_setup_backlight()
1554 panel->backlight.pwm = pwm_get(display->drm->dev, in ext_pwm_setup_backlight()
1559 if (IS_ERR(panel->backlight.pwm)) { in ext_pwm_setup_backlight()
1563 panel->backlight.pwm = NULL; in ext_pwm_setup_backlight()
1567 panel->backlight.pwm_level_max = 100; /* 100% */ in ext_pwm_setup_backlight()
1568 panel->backlight.pwm_level_min = get_backlight_min_vbt(connector); in ext_pwm_setup_backlight()
1570 if (pwm_is_enabled(panel->backlight.pwm)) { in ext_pwm_setup_backlight()
1572 pwm_get_state(panel->backlight.pwm, &panel->backlight.pwm_state); in ext_pwm_setup_backlight()
1574 level = pwm_get_relative_duty_cycle(&panel->backlight.pwm_state, in ext_pwm_setup_backlight()
1577 panel->backlight.pwm_enabled = true; in ext_pwm_setup_backlight()
1582 NSEC_PER_SEC / (unsigned long)panel->backlight.pwm_state.period, in ext_pwm_setup_backlight()
1586 panel->backlight.pwm_state.period = in ext_pwm_setup_backlight()
1602 panel->backlight.pwm_funcs->set(conn_state, in intel_pwm_set_backlight()
1611 panel->backlight.pwm_funcs->get(connector, pipe)); in intel_pwm_get_backlight()
1620 panel->backlight.pwm_funcs->enable(crtc_state, conn_state, in intel_pwm_enable_backlight()
1629 panel->backlight.pwm_funcs->disable(conn_state, in intel_pwm_disable_backlight()
1638 ret = panel->backlight.pwm_funcs->setup(connector, pipe); in intel_pwm_setup_backlight()
1642 panel->backlight.min = panel->backlight.pwm_level_min; in intel_pwm_setup_backlight()
1643 panel->backlight.max = panel->backlight.pwm_level_max; in intel_pwm_setup_backlight()
1644 panel->backlight.level = intel_pwm_get_backlight(connector, pipe); in intel_pwm_setup_backlight()
1645 panel->backlight.enabled = panel->backlight.pwm_enabled; in intel_pwm_setup_backlight()
1659 if (!panel->backlight.present) in intel_backlight_update()
1662 mutex_lock(&display->backlight.lock); in intel_backlight_update()
1663 if (!panel->backlight.enabled) in intel_backlight_update()
1666 mutex_unlock(&display->backlight.lock); in intel_backlight_update()
1675 if (!connector->panel.vbt.backlight.present) { in intel_backlight_setup()
1689 if (drm_WARN_ON(display->drm, !panel->backlight.funcs)) in intel_backlight_setup()
1693 mutex_lock(&display->backlight.lock); in intel_backlight_setup()
1694 ret = panel->backlight.funcs->setup(connector, pipe); in intel_backlight_setup()
1695 mutex_unlock(&display->backlight.lock); in intel_backlight_setup()
1704 panel->backlight.present = true; in intel_backlight_setup()
1709 str_enabled_disabled(panel->backlight.enabled), in intel_backlight_setup()
1710 panel->backlight.level, panel->backlight.max); in intel_backlight_setup()
1718 if (panel->backlight.pwm) in intel_backlight_destroy()
1719 pwm_put(panel->backlight.pwm); in intel_backlight_destroy()
1721 panel->backlight.present = false; in intel_backlight_destroy()
1824 panel->backlight.pwm_funcs = &bxt_pwm_funcs; in intel_backlight_init_funcs()
1826 panel->backlight.pwm_funcs = &cnp_pwm_funcs; in intel_backlight_init_funcs()
1829 panel->backlight.pwm_funcs = &lpt_pwm_funcs; in intel_backlight_init_funcs()
1831 panel->backlight.pwm_funcs = &spt_pwm_funcs; in intel_backlight_init_funcs()
1833 panel->backlight.pwm_funcs = &pch_pwm_funcs; in intel_backlight_init_funcs()
1836 panel->backlight.pwm_funcs = &ext_pwm_funcs; in intel_backlight_init_funcs()
1838 panel->backlight.pwm_funcs = &vlv_pwm_funcs; in intel_backlight_init_funcs()
1841 panel->backlight.pwm_funcs = &i965_pwm_funcs; in intel_backlight_init_funcs()
1843 panel->backlight.pwm_funcs = &i9xx_pwm_funcs; in intel_backlight_init_funcs()
1851 connector->panel.backlight.power = intel_pps_backlight_power; in intel_backlight_init_funcs()
1855 panel->backlight.funcs = &pwm_bl_funcs; in intel_backlight_init_funcs()