Lines Matching refs:dev_priv
58 parse_edp(struct drm_psb_private *dev_priv, struct bdb_header *bdb) in parse_edp() argument
67 dev_priv->edp.bpp = 18; in parse_edp()
69 if (dev_priv->edp.support) { in parse_edp()
71 dev_priv->edp.bpp); in parse_edp()
76 panel_type = dev_priv->panel_type; in parse_edp()
79 dev_priv->edp.bpp = 18; in parse_edp()
82 dev_priv->edp.bpp = 24; in parse_edp()
85 dev_priv->edp.bpp = 30; in parse_edp()
93 dev_priv->edp.pps = *edp_pps; in parse_edp()
96 dev_priv->edp.pps.t1_t3, dev_priv->edp.pps.t8, in parse_edp()
97 dev_priv->edp.pps.t9, dev_priv->edp.pps.t10, in parse_edp()
98 dev_priv->edp.pps.t11_t12); in parse_edp()
100 dev_priv->edp.rate = edp_link_params->rate ? DP_LINK_BW_2_7 : in parse_edp()
104 dev_priv->edp.lanes = 1; in parse_edp()
107 dev_priv->edp.lanes = 2; in parse_edp()
111 dev_priv->edp.lanes = 4; in parse_edp()
115 dev_priv->edp.lanes, dev_priv->edp.rate, dev_priv->edp.bpp); in parse_edp()
119 dev_priv->edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0; in parse_edp()
122 dev_priv->edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1; in parse_edp()
125 dev_priv->edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2; in parse_edp()
128 dev_priv->edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3; in parse_edp()
133 dev_priv->edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0; in parse_edp()
136 dev_priv->edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1; in parse_edp()
139 dev_priv->edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2; in parse_edp()
142 dev_priv->edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3; in parse_edp()
146 dev_priv->edp.vswing, dev_priv->edp.preemphasis); in parse_edp()
201 static void parse_backlight_data(struct drm_psb_private *dev_priv, in parse_backlight_data() argument
211 dev_priv->lvds_bl = NULL; in parse_backlight_data()
223 dev_err(dev_priv->dev->dev, "out of memory for backlight data\n"); in parse_backlight_data()
226 dev_priv->lvds_bl = lvds_bl; in parse_backlight_data()
230 static void parse_lfp_panel_data(struct drm_psb_private *dev_priv, in parse_lfp_panel_data() argument
240 dev_priv->lvds_dither = 0; in parse_lfp_panel_data()
241 dev_priv->lvds_vbt = 0; in parse_lfp_panel_data()
247 dev_priv->lvds_dither = lvds_options->pixel_dither; in parse_lfp_panel_data()
248 dev_priv->panel_type = lvds_options->panel_type; in parse_lfp_panel_data()
264 dev_err(dev_priv->dev->dev, "out of memory for fixed panel mode\n"); in parse_lfp_panel_data()
268 dev_priv->lvds_vbt = 1; in parse_lfp_panel_data()
272 dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode; in parse_lfp_panel_data()
275 dev_dbg(dev_priv->dev->dev, "ignoring invalid LVDS VBT\n"); in parse_lfp_panel_data()
276 dev_priv->lvds_vbt = 0; in parse_lfp_panel_data()
283 static void parse_sdvo_panel_data(struct drm_psb_private *dev_priv, in parse_sdvo_panel_data() argument
290 dev_priv->sdvo_lvds_vbt_mode = NULL; in parse_sdvo_panel_data()
308 dev_priv->sdvo_lvds_vbt_mode = panel_fixed_mode; in parse_sdvo_panel_data()
313 static void parse_general_features(struct drm_psb_private *dev_priv, in parse_general_features() argument
319 dev_priv->int_tv_support = 1; in parse_general_features()
320 dev_priv->int_crt_support = 1; in parse_general_features()
324 dev_priv->int_tv_support = general->int_tv_support; in parse_general_features()
325 dev_priv->int_crt_support = general->int_crt_support; in parse_general_features()
326 dev_priv->lvds_use_ssc = general->enable_ssc; in parse_general_features()
328 if (dev_priv->lvds_use_ssc) { in parse_general_features()
329 dev_priv->lvds_ssc_freq in parse_general_features()
336 parse_sdvo_device_mapping(struct drm_psb_private *dev_priv, in parse_sdvo_device_mapping() argument
391 p_mapping = &(dev_priv->sdvo_mappings[p_child->dvo_port - 1]); in parse_sdvo_device_mapping()
427 parse_driver_features(struct drm_psb_private *dev_priv, in parse_driver_features() argument
437 dev_priv->edp.support = 1; in parse_driver_features()
441 dev_priv->dplla_96mhz = true; in parse_driver_features()
443 dev_priv->dplla_96mhz = false; in parse_driver_features()
447 parse_device_mapping(struct drm_psb_private *dev_priv, in parse_device_mapping() argument
489 dev_priv->child_dev = kcalloc(count, sizeof(*p_child), GFP_KERNEL); in parse_device_mapping()
490 if (!dev_priv->child_dev) { in parse_device_mapping()
495 dev_priv->child_dev_num = count; in parse_device_mapping()
503 child_dev_ptr = dev_priv->child_dev + count; in parse_device_mapping()
528 struct drm_psb_private *dev_priv = dev->dev_private; in psb_intel_init_bios() local
537 dev_priv->panel_type = 0xff; in psb_intel_init_bios()
540 if (dev_priv->opregion.vbt) { in psb_intel_init_bios()
541 struct vbt_header *vbt = dev_priv->opregion.vbt; in psb_intel_init_bios()
547 dev_priv->opregion.vbt = NULL; in psb_intel_init_bios()
572 parse_general_features(dev_priv, bdb); in psb_intel_init_bios()
573 parse_driver_features(dev_priv, bdb); in psb_intel_init_bios()
574 parse_lfp_panel_data(dev_priv, bdb); in psb_intel_init_bios()
575 parse_sdvo_panel_data(dev_priv, bdb); in psb_intel_init_bios()
576 parse_sdvo_device_mapping(dev_priv, bdb); in psb_intel_init_bios()
577 parse_device_mapping(dev_priv, bdb); in psb_intel_init_bios()
578 parse_backlight_data(dev_priv, bdb); in psb_intel_init_bios()
579 parse_edp(dev_priv, bdb); in psb_intel_init_bios()
592 struct drm_psb_private *dev_priv = dev->dev_private; in psb_intel_destroy_bios() local
594 kfree(dev_priv->sdvo_lvds_vbt_mode); in psb_intel_destroy_bios()
595 kfree(dev_priv->lfp_lvds_vbt_mode); in psb_intel_destroy_bios()
596 kfree(dev_priv->lvds_bl); in psb_intel_destroy_bios()