On Wed, Jun 12, 2013 at 05:55:44PM -0300, Rodrigo Vivi wrote:
> From: Shobhit Kumar <shobhit.ku...@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.ku...@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.v...@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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to