Lines Matching refs:panel

787 		    struct intel_panel *panel)  in parse_panel_options()  argument
790 int panel_type = panel->vbt.panel_type; in parse_panel_options()
797 panel->vbt.lvds_dither = lvds_options->pixel_dither; in parse_panel_options()
816 panel->vbt.drrs_type = DRRS_TYPE_STATIC; in parse_panel_options()
820 panel->vbt.drrs_type = DRRS_TYPE_SEAMLESS; in parse_panel_options()
825 panel->vbt.drrs_type = DRRS_TYPE_NONE; in parse_panel_options()
834 struct intel_panel *panel, in parse_lfp_panel_dtd() argument
841 int panel_type = panel->vbt.panel_type; in parse_lfp_panel_dtd()
853 panel->vbt.lfp_lvds_vbt_mode = panel_fixed_mode; in parse_lfp_panel_dtd()
866 panel->vbt.bios_lvds_val = fp_timing->lvds_reg_val; in parse_lfp_panel_dtd()
869 panel->vbt.bios_lvds_val); in parse_lfp_panel_dtd()
875 struct intel_panel *panel) in parse_lfp_data() argument
881 int panel_type = panel->vbt.panel_type; in parse_lfp_data()
891 if (!panel->vbt.lfp_lvds_vbt_mode) in parse_lfp_data()
892 parse_lfp_panel_dtd(i915, panel, data, ptrs); in parse_lfp_data()
906 panel->vbt.seamless_drrs_min_refresh_rate = in parse_lfp_data()
910 panel->vbt.seamless_drrs_min_refresh_rate); in parse_lfp_data()
916 struct intel_panel *panel) in parse_generic_dtd() argument
951 if (panel->vbt.panel_type >= num_dtd) { in parse_generic_dtd()
954 panel->vbt.panel_type, num_dtd); in parse_generic_dtd()
958 dtd = &generic_dtd->dtd[panel->vbt.panel_type]; in parse_generic_dtd()
1001 panel->vbt.lfp_lvds_vbt_mode = panel_fixed_mode; in parse_generic_dtd()
1006 struct intel_panel *panel) in parse_lfp_backlight() argument
1010 int panel_type = panel->vbt.panel_type; in parse_lfp_backlight()
1026 panel->vbt.backlight.present = entry->type == BDB_BACKLIGHT_TYPE_PWM; in parse_lfp_backlight()
1027 if (!panel->vbt.backlight.present) { in parse_lfp_backlight()
1034 panel->vbt.backlight.type = INTEL_BACKLIGHT_DISPLAY_DDI; in parse_lfp_backlight()
1049 panel->vbt.backlight.type = method->type; in parse_lfp_backlight()
1050 panel->vbt.backlight.controller = method->controller; in parse_lfp_backlight()
1054 panel->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; in parse_lfp_backlight()
1055 panel->vbt.backlight.active_low_pwm = entry->active_low_pwm; in parse_lfp_backlight()
1076 panel->vbt.backlight.min_brightness = min_level; in parse_lfp_backlight()
1078 panel->vbt.backlight.brightness_precision_bits = in parse_lfp_backlight()
1082 panel->vbt.backlight.min_brightness = entry->min_brightness; in parse_lfp_backlight()
1088 panel->vbt.backlight.pwm_freq_hz, in parse_lfp_backlight()
1089 panel->vbt.backlight.active_low_pwm ? "low" : "high", in parse_lfp_backlight()
1090 panel->vbt.backlight.min_brightness, in parse_lfp_backlight()
1092 panel->vbt.backlight.controller); in parse_lfp_backlight()
1098 struct intel_panel *panel) in parse_sdvo_panel_data() argument
1131 panel->vbt.sdvo_lvds_vbt_mode = panel_fixed_mode; in parse_sdvo_panel_data()
1314 struct intel_panel *panel) in parse_panel_driver_features() argument
1331 if (!driver->drrs_enabled && panel->vbt.drrs_type != DRRS_TYPE_NONE) { in parse_panel_driver_features()
1337 panel->vbt.drrs_type = DRRS_TYPE_STATIC; in parse_panel_driver_features()
1339 panel->vbt.drrs_type = DRRS_TYPE_NONE; in parse_panel_driver_features()
1342 panel->vbt.psr.enable = driver->psr_enabled; in parse_panel_driver_features()
1348 struct intel_panel *panel) in parse_power_conservation_features() argument
1351 u8 panel_type = panel->vbt.panel_type; in parse_power_conservation_features()
1353 panel->vbt.vrr = true; /* matches Windows behaviour */ in parse_power_conservation_features()
1362 panel->vbt.psr.enable = panel_bool(power->psr, panel_type); in parse_power_conservation_features()
1370 if (!panel_bool(power->drrs, panel_type) && panel->vbt.drrs_type != DRRS_TYPE_NONE) { in parse_power_conservation_features()
1376 panel->vbt.drrs_type = DRRS_TYPE_STATIC; in parse_power_conservation_features()
1378 panel->vbt.drrs_type = DRRS_TYPE_NONE; in parse_power_conservation_features()
1382 panel->vbt.edp.hobl = panel_bool(power->hobl, panel_type); in parse_power_conservation_features()
1385 panel->vbt.vrr = panel_bool(power->vrr_feature_enabled, in parse_power_conservation_features()
1391 struct intel_panel *panel) in parse_edp() argument
1396 int panel_type = panel->vbt.panel_type; in parse_edp()
1404 panel->vbt.edp.bpp = 18; in parse_edp()
1407 panel->vbt.edp.bpp = 24; in parse_edp()
1410 panel->vbt.edp.bpp = 30; in parse_edp()
1418 panel->vbt.edp.pps = *edp_pps; in parse_edp()
1421 panel->vbt.edp.rate = in parse_edp()
1426 panel->vbt.edp.rate = 162000; in parse_edp()
1429 panel->vbt.edp.rate = 270000; in parse_edp()
1432 panel->vbt.edp.rate = 540000; in parse_edp()
1444 panel->vbt.edp.lanes = 1; in parse_edp()
1447 panel->vbt.edp.lanes = 2; in parse_edp()
1450 panel->vbt.edp.lanes = 4; in parse_edp()
1461 panel->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0; in parse_edp()
1464 panel->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1; in parse_edp()
1467 panel->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2; in parse_edp()
1470 panel->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3; in parse_edp()
1481 panel->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0; in parse_edp()
1484 panel->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1; in parse_edp()
1487 panel->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2; in parse_edp()
1490 panel->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3; in parse_edp()
1504 panel->vbt.edp.low_vswing = in parse_edp()
1508 panel->vbt.edp.low_vswing = vswing == 0; in parse_edp()
1512 panel->vbt.edp.drrs_msa_timing_delay = in parse_edp()
1516 panel->vbt.edp.max_link_rate = in parse_edp()
1522 struct intel_panel *panel) in parse_psr() argument
1526 int panel_type = panel->vbt.panel_type; in parse_psr()
1536 panel->vbt.psr.full_link = psr_table->full_link; in parse_psr()
1537 panel->vbt.psr.require_aux_wakeup = psr_table->require_aux_to_wakeup; in parse_psr()
1540 panel->vbt.psr.idle_frames = psr_table->idle_frames < 0 ? 0 : in parse_psr()
1551 panel->vbt.psr.tp1_wakeup_time_us = 500; in parse_psr()
1554 panel->vbt.psr.tp1_wakeup_time_us = 100; in parse_psr()
1557 panel->vbt.psr.tp1_wakeup_time_us = 0; in parse_psr()
1565 panel->vbt.psr.tp1_wakeup_time_us = 2500; in parse_psr()
1571 panel->vbt.psr.tp2_tp3_wakeup_time_us = 500; in parse_psr()
1574 panel->vbt.psr.tp2_tp3_wakeup_time_us = 100; in parse_psr()
1577 panel->vbt.psr.tp2_tp3_wakeup_time_us = 0; in parse_psr()
1585 panel->vbt.psr.tp2_tp3_wakeup_time_us = 2500; in parse_psr()
1589 panel->vbt.psr.tp1_wakeup_time_us = psr_table->tp1_wakeup_time * 100; in parse_psr()
1590 panel->vbt.psr.tp2_tp3_wakeup_time_us = psr_table->tp2_tp3_wakeup_time * 100; in parse_psr()
1612 panel->vbt.psr.psr2_tp2_tp3_wakeup_time_us = wakeup_time; in parse_psr()
1615 panel->vbt.psr.psr2_tp2_tp3_wakeup_time_us = panel->vbt.psr.tp2_tp3_wakeup_time_us; in parse_psr()
1620 struct intel_panel *panel, in parse_dsi_backlight_ports() argument
1625 if (!panel->vbt.dsi.config->dual_link || i915->display.vbt.version < 197) { in parse_dsi_backlight_ports()
1626 panel->vbt.dsi.bl_ports = BIT(port); in parse_dsi_backlight_ports()
1627 if (panel->vbt.dsi.config->cabc_supported) in parse_dsi_backlight_ports()
1628 panel->vbt.dsi.cabc_ports = BIT(port); in parse_dsi_backlight_ports()
1633 switch (panel->vbt.dsi.config->dl_dcs_backlight_ports) { in parse_dsi_backlight_ports()
1635 panel->vbt.dsi.bl_ports = BIT(PORT_A); in parse_dsi_backlight_ports()
1638 panel->vbt.dsi.bl_ports = BIT(port_bc); in parse_dsi_backlight_ports()
1642 panel->vbt.dsi.bl_ports = BIT(PORT_A) | BIT(port_bc); in parse_dsi_backlight_ports()
1646 if (!panel->vbt.dsi.config->cabc_supported) in parse_dsi_backlight_ports()
1649 switch (panel->vbt.dsi.config->dl_dcs_cabc_ports) { in parse_dsi_backlight_ports()
1651 panel->vbt.dsi.cabc_ports = BIT(PORT_A); in parse_dsi_backlight_ports()
1654 panel->vbt.dsi.cabc_ports = BIT(port_bc); in parse_dsi_backlight_ports()
1658 panel->vbt.dsi.cabc_ports = in parse_dsi_backlight_ports()
1666 struct intel_panel *panel) in parse_mipi_config() argument
1671 int panel_type = panel->vbt.panel_type; in parse_mipi_config()
1679 panel->vbt.dsi.panel_id = MIPI_DSI_UNDEFINED_PANEL_ID; in parse_mipi_config()
1706 panel->vbt.dsi.config = kmemdup(config, sizeof(struct mipi_config), GFP_KERNEL); in parse_mipi_config()
1707 if (!panel->vbt.dsi.config) in parse_mipi_config()
1710 panel->vbt.dsi.pps = kmemdup(pps, sizeof(struct mipi_pps_data), GFP_KERNEL); in parse_mipi_config()
1711 if (!panel->vbt.dsi.pps) { in parse_mipi_config()
1712 kfree(panel->vbt.dsi.config); in parse_mipi_config()
1716 parse_dsi_backlight_ports(i915, panel, port); in parse_mipi_config()
1725 panel->vbt.dsi.orientation = in parse_mipi_config()
1729 panel->vbt.dsi.orientation = in parse_mipi_config()
1733 panel->vbt.dsi.orientation = in parse_mipi_config()
1737 panel->vbt.dsi.orientation = in parse_mipi_config()
1743 panel->vbt.dsi.panel_id = MIPI_DSI_GENERIC_PANEL_ID; in parse_mipi_config()
1907 struct intel_panel *panel) in get_init_otp_deassert_fragment_len() argument
1909 const u8 *data = panel->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP]; in get_init_otp_deassert_fragment_len()
1913 !data || panel->vbt.dsi.seq_version != 1)) in get_init_otp_deassert_fragment_len()
1942 struct intel_panel *panel) in fixup_mipi_sequences() argument
1952 if (panel->vbt.dsi.config->is_cmd_mode || in fixup_mipi_sequences()
1953 panel->vbt.dsi.seq_version != 1) in fixup_mipi_sequences()
1957 if (!panel->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP] || in fixup_mipi_sequences()
1958 !panel->vbt.dsi.sequence[MIPI_SEQ_ASSERT_RESET] || in fixup_mipi_sequences()
1959 panel->vbt.dsi.sequence[MIPI_SEQ_DEASSERT_RESET]) in fixup_mipi_sequences()
1963 len = get_init_otp_deassert_fragment_len(i915, panel); in fixup_mipi_sequences()
1971 init_otp = (u8 *)panel->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP]; in fixup_mipi_sequences()
1972 panel->vbt.dsi.deassert_seq = kmemdup(init_otp, len + 1, GFP_KERNEL); in fixup_mipi_sequences()
1973 if (!panel->vbt.dsi.deassert_seq) in fixup_mipi_sequences()
1975 panel->vbt.dsi.deassert_seq[0] = MIPI_SEQ_DEASSERT_RESET; in fixup_mipi_sequences()
1976 panel->vbt.dsi.deassert_seq[len] = MIPI_SEQ_ELEM_END; in fixup_mipi_sequences()
1978 panel->vbt.dsi.sequence[MIPI_SEQ_DEASSERT_RESET] = in fixup_mipi_sequences()
1979 panel->vbt.dsi.deassert_seq; in fixup_mipi_sequences()
1983 panel->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP] = init_otp + len - 1; in fixup_mipi_sequences()
1988 struct intel_panel *panel) in parse_mipi_sequence() argument
1990 int panel_type = panel->vbt.panel_type; in parse_mipi_sequence()
1998 if (panel->vbt.dsi.panel_id != MIPI_DSI_GENERIC_PANEL_ID) in parse_mipi_sequence()
2044 panel->vbt.dsi.sequence[seq_id] = data + index; in parse_mipi_sequence()
2057 panel->vbt.dsi.data = data; in parse_mipi_sequence()
2058 panel->vbt.dsi.size = seq_size; in parse_mipi_sequence()
2059 panel->vbt.dsi.seq_version = sequence->version; in parse_mipi_sequence()
2061 fixup_mipi_sequences(i915, panel); in parse_mipi_sequence()
2068 memset(panel->vbt.dsi.sequence, 0, sizeof(panel->vbt.dsi.sequence)); in parse_mipi_sequence()
2864 init_vbt_panel_defaults(struct intel_panel *panel) in init_vbt_panel_defaults() argument
2867 panel->vbt.backlight.present = true; in init_vbt_panel_defaults()
2870 panel->vbt.lvds_dither = true; in init_vbt_panel_defaults()
3179 struct intel_panel *panel, in intel_bios_init_panel() argument
3183 init_vbt_panel_defaults(panel); in intel_bios_init_panel()
3185 panel->vbt.panel_type = get_panel_type(i915, devdata, edid); in intel_bios_init_panel()
3187 parse_panel_options(i915, panel); in intel_bios_init_panel()
3188 parse_generic_dtd(i915, panel); in intel_bios_init_panel()
3189 parse_lfp_data(i915, panel); in intel_bios_init_panel()
3190 parse_lfp_backlight(i915, panel); in intel_bios_init_panel()
3191 parse_sdvo_panel_data(i915, panel); in intel_bios_init_panel()
3192 parse_panel_driver_features(i915, panel); in intel_bios_init_panel()
3193 parse_power_conservation_features(i915, panel); in intel_bios_init_panel()
3194 parse_edp(i915, panel); in intel_bios_init_panel()
3195 parse_psr(i915, panel); in intel_bios_init_panel()
3196 parse_mipi_config(i915, panel); in intel_bios_init_panel()
3197 parse_mipi_sequence(i915, panel); in intel_bios_init_panel()
3221 void intel_bios_fini_panel(struct intel_panel *panel) in intel_bios_fini_panel() argument
3223 kfree(panel->vbt.sdvo_lvds_vbt_mode); in intel_bios_fini_panel()
3224 panel->vbt.sdvo_lvds_vbt_mode = NULL; in intel_bios_fini_panel()
3225 kfree(panel->vbt.lfp_lvds_vbt_mode); in intel_bios_fini_panel()
3226 panel->vbt.lfp_lvds_vbt_mode = NULL; in intel_bios_fini_panel()
3227 kfree(panel->vbt.dsi.data); in intel_bios_fini_panel()
3228 panel->vbt.dsi.data = NULL; in intel_bios_fini_panel()
3229 kfree(panel->vbt.dsi.pps); in intel_bios_fini_panel()
3230 panel->vbt.dsi.pps = NULL; in intel_bios_fini_panel()
3231 kfree(panel->vbt.dsi.config); in intel_bios_fini_panel()
3232 panel->vbt.dsi.config = NULL; in intel_bios_fini_panel()
3233 kfree(panel->vbt.dsi.deassert_seq); in intel_bios_fini_panel()
3234 panel->vbt.dsi.deassert_seq = NULL; in intel_bios_fini_panel()