[Intel-gfx] [PATCH 03/13] drm/i915: VBT Parsing for the PSR Feature Block for HSW
Chris Wilson
chris at chris-wilson.co.uk
Thu Jun 13 15:41:33 CEST 2013
On Wed, Jun 12, 2013 at 05:55:44PM -0300, Rodrigo Vivi wrote:
> From: Shobhit Kumar <shobhit.kumar at intel.com>
>
> Parse and store useful information in i915_dev_private
>
> v2: Add to new vbt struct and call them psr_*
> v3: Fix comment and variable name
>
> Signed-off-by: Shobhit Kumar <shobhit.kumar at intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 7 +++++++
> drivers/gpu/drm/i915/intel_bios.c | 30 ++++++++++++++++++++++++++++++
> drivers/gpu/drm/i915/intel_bios.h | 20 +++++++++++++++++++-
> 3 files changed, 56 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 87f7f88..dd459a5 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -951,6 +951,13 @@ struct intel_vbt_data {
> int edp_bpp;
> struct edp_power_seq edp_pps;
>
> + /* eDP PSR*/
> + u8 psr_full_link_state;
> + u8 psr_wait_lines;
> + u8 psr_idle_frames;
> + u16 psr_wakeup_tp1;
> + u16 psr_wakeup_tp2_tp3;
Let's be neat and tidy and move these into their own psr struct. Do we
want a valid flag here?
>+
> int crt_ddc_pin;
>
> int child_dev_num;
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 53f2bed..99c6788 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -383,6 +383,35 @@ parse_general_definitions(struct drm_i915_private *dev_priv,
> }
> }
>
> +
> +static void
> +parse_edp_psr(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
> +{
> + struct bdb_psr_features *psr;
> + struct bdb_lvds_options *lvds_opts;
> + int index = 0;
> + lvds_opts = find_section(bdb, BDB_LVDS_OPTIONS);
> + if (!lvds_opts) {
> + DRM_DEBUG_KMS("No LVDS Options block found.\n");
> + return;
> + }
> +
> + index = lvds_opts->panel_type;
> +
> + psr = find_section(bdb, BDB_PSR_FEATURES);
> + if (!psr) {
> + DRM_DEBUG_KMS("No PSR feature block found.\n");
> + return;
> + }
You trust the bios that much to read a random index into an array?
Everything from the BIOS is tainted and must be validated.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list