[Intel-gfx] [PATCH v4 1/2] drm/i915/vbt: Parse panel options separately from timing data

Jesse Barnes jsbarnes at google.com
Fri Nov 15 00:05:02 UTC 2019


LGTM.

Reviewed-by: Jesse Barnes <jsbarnes at google.com>

On Thu, Nov 14, 2019 at 9:07 AM Matt Roper <matthew.d.roper at intel.com> wrote:
>
> Newer VBT versions will add an alternate way to read panel DTD
> information, so let's split parsing of the general panel information
> from the timing data in preparation.
>
> Cc: Jani Nikula <jani.nikula at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_bios.c | 27 +++++++++++++++--------
>  1 file changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 6d7b1a83cb07..d13ce0b7db8b 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -208,17 +208,12 @@ get_lvds_fp_timing(const struct bdb_header *bdb,
>         return (const struct lvds_fp_timing *)((const u8 *)bdb + ofs);
>  }
>
> -/* Try to find integrated panel data */
> +/* Parse general panel options */
>  static void
> -parse_lfp_panel_data(struct drm_i915_private *dev_priv,
> -                    const struct bdb_header *bdb)
> +parse_panel_options(struct drm_i915_private *dev_priv,
> +                   const struct bdb_header *bdb)
>  {
>         const struct bdb_lvds_options *lvds_options;
> -       const struct bdb_lvds_lfp_data *lvds_lfp_data;
> -       const struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
> -       const struct lvds_dvo_timing *panel_dvo_timing;
> -       const struct lvds_fp_timing *fp_timing;
> -       struct drm_display_mode *panel_fixed_mode;
>         int panel_type;
>         int drrs_mode;
>         int ret;
> @@ -267,6 +262,19 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv,
>                 DRM_DEBUG_KMS("DRRS not supported (VBT input)\n");
>                 break;
>         }
> +}
> +
> +/* Try to find integrated panel timing data */
> +static void
> +parse_lfp_panel_dtd(struct drm_i915_private *dev_priv,
> +                   const struct bdb_header *bdb)
> +{
> +       const struct bdb_lvds_lfp_data *lvds_lfp_data;
> +       const struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
> +       const struct lvds_dvo_timing *panel_dvo_timing;
> +       const struct lvds_fp_timing *fp_timing;
> +       struct drm_display_mode *panel_fixed_mode;
> +       int panel_type = dev_priv->vbt.panel_type;
>
>         lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA);
>         if (!lvds_lfp_data)
> @@ -1868,7 +1876,8 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
>         /* Grab useful general definitions */
>         parse_general_features(dev_priv, bdb);
>         parse_general_definitions(dev_priv, bdb);
> -       parse_lfp_panel_data(dev_priv, bdb);
> +       parse_panel_options(dev_priv, bdb);
> +       parse_lfp_panel_dtd(dev_priv, bdb);
>         parse_lfp_backlight(dev_priv, bdb);
>         parse_sdvo_panel_data(dev_priv, bdb);
>         parse_driver_features(dev_priv, bdb);
> --
> 2.21.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list