diff options
| author | Dave Airlie <airlied@redhat.com> | 2014-01-20 10:21:54 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2014-01-20 10:21:54 +1000 | 
| commit | cfd72a4c2089aa3938f37281a34d6eb3306d5fd8 (patch) | |
| tree | e63f6df423aeb59d1ea5f7af3597d6718e75c335 /drivers/gpu/drm/i915/intel_bios.c | |
| parent | 9354eafd893f45320a37da360e1728104e49cc2f (diff) | |
| parent | 0d9d349d8788d30f3fc3bb39279c370f94d9dbec (diff) | |
Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
drm-intel-next-2014-01-10:
- final bits for runtime D3 on Haswell from Paul (now enabled fully)
- parse the backlight modulation freq information in the VBT from Jani
  (but not yet used)
- more watermark improvements from Ville for ilk-ivb and bdw
- bugfixes for fastboot from Jesse
- watermark fix for i830M (but not yet everything)
- vlv vga hotplug w/a (Imre)
- piles of other small improvements, cleanups and fixes all over
Note that the pull request includes a backmerge of the last drm-fixes
pulled into Linus' tree - things where getting a bit too messy. So the
shortlog also contains a bunch of patches from Linus tree. Please yell if
you want me to frob it for you a bit.
* 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel: (609 commits)
  drm/i915/bdw: make sure south port interrupts are enabled properly v2
  drm/i915: Include more information in disabled hotplug interrupt warning
  drm/i915: Only complain about a rogue hotplug IRQ after disabling
  drm/i915: Only WARN about a stuck hotplug irq ONCE
  drm/i915: s/hotplugt_status_gen4/hotplug_status_g4x/
Diffstat (limited to 'drivers/gpu/drm/i915/intel_bios.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index f88e5079a3f5..f22041973f3a 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c @@ -281,6 +281,34 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv,  	}  } +static void +parse_lfp_backlight(struct drm_i915_private *dev_priv, struct bdb_header *bdb) +{ +	const struct bdb_lfp_backlight_data *backlight_data; +	const struct bdb_lfp_backlight_data_entry *entry; + +	backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); +	if (!backlight_data) +		return; + +	if (backlight_data->entry_size != sizeof(backlight_data->data[0])) { +		DRM_DEBUG_KMS("Unsupported backlight data entry size %u\n", +			      backlight_data->entry_size); +		return; +	} + +	entry = &backlight_data->data[panel_type]; + +	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; +	dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; +	DRM_DEBUG_KMS("VBT backlight PWM modulation frequency %u Hz, " +		      "active %s, min brightness %u, level %u\n", +		      dev_priv->vbt.backlight.pwm_freq_hz, +		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", +		      entry->min_brightness, +		      backlight_data->level[panel_type]); +} +  /* Try to find sdvo panel data */  static void  parse_sdvo_panel_data(struct drm_i915_private *dev_priv, @@ -894,6 +922,7 @@ intel_parse_bios(struct drm_device *dev)  	parse_general_features(dev_priv, bdb);  	parse_general_definitions(dev_priv, bdb);  	parse_lfp_panel_data(dev_priv, bdb); +	parse_lfp_backlight(dev_priv, bdb);  	parse_sdvo_panel_data(dev_priv, bdb);  	parse_sdvo_device_mapping(dev_priv, bdb);  	parse_device_mapping(dev_priv, bdb);  | 
