Lines Matching refs:dev_priv

210 parse_lfp_panel_data(struct drm_i915_private *dev_priv,  in parse_lfp_panel_data()  argument
225 dev_priv->vbt.lvds_dither = lvds_options->pixel_dither; in parse_lfp_panel_data()
240 dev_priv->vbt.drrs_type = STATIC_DRRS_SUPPORT; in parse_lfp_panel_data()
244 dev_priv->vbt.drrs_type = SEAMLESS_DRRS_SUPPORT; in parse_lfp_panel_data()
248 dev_priv->vbt.drrs_type = DRRS_NOT_SUPPORTED; in parse_lfp_panel_data()
261 dev_priv->vbt.lvds_vbt = 1; in parse_lfp_panel_data()
273 dev_priv->vbt.lfp_lvds_vbt_mode = panel_fixed_mode; in parse_lfp_panel_data()
295 dev_priv->lvds_downclock_avail = 1; in parse_lfp_panel_data()
296 dev_priv->lvds_downclock = downclock * 10; in parse_lfp_panel_data()
309 dev_priv->vbt.bios_lvds_val = fp_timing->lvds_reg_val; in parse_lfp_panel_data()
311 dev_priv->vbt.bios_lvds_val); in parse_lfp_panel_data()
317 parse_lfp_backlight(struct drm_i915_private *dev_priv, struct bdb_header *bdb) in parse_lfp_backlight() argument
334 dev_priv->vbt.backlight.present = entry->type == BDB_BACKLIGHT_TYPE_PWM; in parse_lfp_backlight()
335 if (!dev_priv->vbt.backlight.present) { in parse_lfp_backlight()
341 dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; in parse_lfp_backlight()
342 dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; in parse_lfp_backlight()
343 dev_priv->vbt.backlight.min_brightness = entry->min_brightness; in parse_lfp_backlight()
346 dev_priv->vbt.backlight.pwm_freq_hz, in parse_lfp_backlight()
347 dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", in parse_lfp_backlight()
348 dev_priv->vbt.backlight.min_brightness, in parse_lfp_backlight()
354 parse_sdvo_panel_data(struct drm_i915_private *dev_priv, in parse_sdvo_panel_data() argument
387 dev_priv->vbt.sdvo_lvds_vbt_mode = panel_fixed_mode; in parse_sdvo_panel_data()
408 parse_general_features(struct drm_i915_private *dev_priv, in parse_general_features() argument
411 struct drm_device *dev = dev_priv->dev; in parse_general_features()
416 dev_priv->vbt.int_tv_support = general->int_tv_support; in parse_general_features()
417 dev_priv->vbt.int_crt_support = general->int_crt_support; in parse_general_features()
418 dev_priv->vbt.lvds_use_ssc = general->enable_ssc; in parse_general_features()
419 dev_priv->vbt.lvds_ssc_freq = in parse_general_features()
421 dev_priv->vbt.display_clock_mode = general->display_clock_mode; in parse_general_features()
422 dev_priv->vbt.fdi_rx_polarity_inverted = general->fdi_rx_polarity_inverted; in parse_general_features()
424 dev_priv->vbt.int_tv_support, in parse_general_features()
425 dev_priv->vbt.int_crt_support, in parse_general_features()
426 dev_priv->vbt.lvds_use_ssc, in parse_general_features()
427 dev_priv->vbt.lvds_ssc_freq, in parse_general_features()
428 dev_priv->vbt.display_clock_mode, in parse_general_features()
429 dev_priv->vbt.fdi_rx_polarity_inverted); in parse_general_features()
434 parse_general_definitions(struct drm_i915_private *dev_priv, in parse_general_definitions() argument
446 dev_priv->vbt.crt_ddc_pin = bus_pin; in parse_general_definitions()
455 parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, in parse_sdvo_device_mapping() argument
510 p_mapping = &(dev_priv->sdvo_mappings[p_child->old.dvo_port - 1]); in parse_sdvo_device_mapping()
545 parse_driver_features(struct drm_i915_private *dev_priv, in parse_driver_features() argument
555 dev_priv->vbt.edp_support = 1; in parse_driver_features()
558 dev_priv->render_reclock_avail = true; in parse_driver_features()
568 dev_priv->vbt.drrs_type = DRRS_NOT_SUPPORTED; in parse_driver_features()
572 parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb) in parse_edp() argument
580 if (dev_priv->vbt.edp_support) in parse_edp()
587 dev_priv->vbt.edp_bpp = 18; in parse_edp()
590 dev_priv->vbt.edp_bpp = 24; in parse_edp()
593 dev_priv->vbt.edp_bpp = 30; in parse_edp()
601 dev_priv->vbt.edp_pps = *edp_pps; in parse_edp()
605 dev_priv->vbt.edp_rate = DP_LINK_BW_1_62; in parse_edp()
608 dev_priv->vbt.edp_rate = DP_LINK_BW_2_7; in parse_edp()
618 dev_priv->vbt.edp_lanes = 1; in parse_edp()
621 dev_priv->vbt.edp_lanes = 2; in parse_edp()
624 dev_priv->vbt.edp_lanes = 4; in parse_edp()
634 dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0; in parse_edp()
637 dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1; in parse_edp()
640 dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2; in parse_edp()
643 dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3; in parse_edp()
653 dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0; in parse_edp()
656 dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1; in parse_edp()
659 dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2; in parse_edp()
662 dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3; in parse_edp()
674 dev_priv->vbt.edp_low_vswing = vswing == 0; in parse_edp()
679 parse_psr(struct drm_i915_private *dev_priv, struct bdb_header *bdb) in parse_psr() argument
692 dev_priv->vbt.psr.full_link = psr_table->full_link; in parse_psr()
693 dev_priv->vbt.psr.require_aux_wakeup = psr_table->require_aux_to_wakeup; in parse_psr()
696 dev_priv->vbt.psr.idle_frames = psr_table->idle_frames < 0 ? 0 : in parse_psr()
701 dev_priv->vbt.psr.lines_to_wait = PSR_0_LINES_TO_WAIT; in parse_psr()
704 dev_priv->vbt.psr.lines_to_wait = PSR_1_LINE_TO_WAIT; in parse_psr()
707 dev_priv->vbt.psr.lines_to_wait = PSR_4_LINES_TO_WAIT; in parse_psr()
710 dev_priv->vbt.psr.lines_to_wait = PSR_8_LINES_TO_WAIT; in parse_psr()
718 dev_priv->vbt.psr.tp1_wakeup_time = psr_table->tp1_wakeup_time; in parse_psr()
719 dev_priv->vbt.psr.tp2_tp3_wakeup_time = psr_table->tp2_tp3_wakeup_time; in parse_psr()
790 parse_mipi(struct drm_i915_private *dev_priv, struct bdb_header *bdb) in parse_mipi() argument
801 if (!dev_priv->vbt.has_mipi) in parse_mipi()
805 dev_priv->vbt.dsi.panel_id = MIPI_DSI_UNDEFINED_PANEL_ID; in parse_mipi()
832 dev_priv->vbt.dsi.config = kmemdup(config, sizeof(struct mipi_config), GFP_KERNEL); in parse_mipi()
833 if (!dev_priv->vbt.dsi.config) in parse_mipi()
836 dev_priv->vbt.dsi.pps = kmemdup(pps, sizeof(struct mipi_pps_data), GFP_KERNEL); in parse_mipi()
837 if (!dev_priv->vbt.dsi.pps) { in parse_mipi()
838 kfree(dev_priv->vbt.dsi.config); in parse_mipi()
843 dev_priv->vbt.dsi.panel_id = MIPI_DSI_GENERIC_PANEL_ID; in parse_mipi()
865 dev_priv->vbt.dsi.seq_version = sequence->version; in parse_mipi()
900 dev_priv->vbt.dsi.data = kmemdup(seq_data + 3, seq_size, GFP_KERNEL); in parse_mipi()
901 if (!dev_priv->vbt.dsi.data) in parse_mipi()
908 data = dev_priv->vbt.dsi.data; in parse_mipi()
909 dev_priv->vbt.dsi.size = seq_size; in parse_mipi()
915 dev_priv->vbt.dsi.sequence[seq_id] = data; in parse_mipi()
937 kfree(dev_priv->vbt.dsi.data); in parse_mipi()
938 dev_priv->vbt.dsi.data = NULL; in parse_mipi()
942 memset(dev_priv->vbt.dsi.sequence, 0, sizeof(dev_priv->vbt.dsi.sequence)); in parse_mipi()
945 static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, in parse_ddi_port() argument
949 struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port]; in parse_ddi_port()
966 for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { in parse_ddi_port()
967 it = dev_priv->vbt.child_dev + i; in parse_ddi_port()
1047 static void parse_ddi_ports(struct drm_i915_private *dev_priv, in parse_ddi_ports() argument
1050 struct drm_device *dev = dev_priv->dev; in parse_ddi_ports()
1056 if (!dev_priv->vbt.child_dev_num) in parse_ddi_ports()
1063 parse_ddi_port(dev_priv, port, bdb); in parse_ddi_ports()
1067 parse_device_mapping(struct drm_i915_private *dev_priv, in parse_device_mapping() argument
1109 dev_priv->vbt.child_dev = kcalloc(count, sizeof(*p_child), GFP_KERNEL); in parse_device_mapping()
1110 if (!dev_priv->vbt.child_dev) { in parse_device_mapping()
1115 dev_priv->vbt.child_dev_num = count; in parse_device_mapping()
1128 dev_priv->vbt.has_mipi = 1; in parse_device_mapping()
1129 dev_priv->vbt.dsi.port = p_child->common.dvo_port; in parse_device_mapping()
1132 child_dev_ptr = dev_priv->vbt.child_dev + count; in parse_device_mapping()
1141 init_vbt_defaults(struct drm_i915_private *dev_priv) in init_vbt_defaults() argument
1143 struct drm_device *dev = dev_priv->dev; in init_vbt_defaults()
1146 dev_priv->vbt.crt_ddc_pin = GMBUS_PORT_VGADDC; in init_vbt_defaults()
1149 dev_priv->vbt.backlight.present = true; in init_vbt_defaults()
1152 dev_priv->vbt.lvds_dither = 1; in init_vbt_defaults()
1153 dev_priv->vbt.lvds_vbt = 0; in init_vbt_defaults()
1156 dev_priv->vbt.sdvo_lvds_vbt_mode = NULL; in init_vbt_defaults()
1159 dev_priv->vbt.int_tv_support = 1; in init_vbt_defaults()
1160 dev_priv->vbt.int_crt_support = 1; in init_vbt_defaults()
1163 dev_priv->vbt.lvds_use_ssc = 1; in init_vbt_defaults()
1168 dev_priv->vbt.lvds_ssc_freq = intel_bios_ssc_frequency(dev, in init_vbt_defaults()
1170 DRM_DEBUG_KMS("Set default to SSC at %d kHz\n", dev_priv->vbt.lvds_ssc_freq); in init_vbt_defaults()
1174 &dev_priv->vbt.ddi_port_info[port]; in init_vbt_defaults()
1256 struct drm_i915_private *dev_priv = dev->dev_private; in intel_parse_bios() local
1264 init_vbt_defaults(dev_priv); in intel_parse_bios()
1267 if (!dmi_check_system(intel_no_opregion_vbt) && dev_priv->opregion.vbt) in intel_parse_bios()
1268 bdb = validate_vbt((char *)dev_priv->opregion.header, OPREGION_SIZE, in intel_parse_bios()
1269 (struct vbt_header *)dev_priv->opregion.vbt, in intel_parse_bios()
1296 parse_general_features(dev_priv, bdb); in intel_parse_bios()
1297 parse_general_definitions(dev_priv, bdb); in intel_parse_bios()
1298 parse_lfp_panel_data(dev_priv, bdb); in intel_parse_bios()
1299 parse_lfp_backlight(dev_priv, bdb); in intel_parse_bios()
1300 parse_sdvo_panel_data(dev_priv, bdb); in intel_parse_bios()
1301 parse_sdvo_device_mapping(dev_priv, bdb); in intel_parse_bios()
1302 parse_device_mapping(dev_priv, bdb); in intel_parse_bios()
1303 parse_driver_features(dev_priv, bdb); in intel_parse_bios()
1304 parse_edp(dev_priv, bdb); in intel_parse_bios()
1305 parse_psr(dev_priv, bdb); in intel_parse_bios()
1306 parse_mipi(dev_priv, bdb); in intel_parse_bios()
1307 parse_ddi_ports(dev_priv, bdb); in intel_parse_bios()
1320 struct drm_i915_private *dev_priv = dev->dev_private; in intel_setup_bios() local