From: Ville Syrjälä <ville.syrj...@linux.intel.com>

VBT reuses a bunch of EDID data structures. Flag those as such
for clarity.

I chose "bdb_edid_" as the namespace for these.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c     | 28 +++---
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 95 ++++++++++---------
 2 files changed, 62 insertions(+), 61 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c 
b/drivers/gpu/drm/i915/display/intel_bios.c
index 661842a3c2e6..9f933508be1c 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -242,13 +242,13 @@ static bool validate_lfp_data_ptrs(const void *bdb,
 
        /* fp_timing has variable size */
        if (fp_timing_size < 32 ||
-           dvo_timing_size != sizeof(struct lvds_dvo_timing) ||
-           panel_pnp_id_size != sizeof(struct lvds_pnp_id))
+           dvo_timing_size != sizeof(struct bdb_edid_dtd) ||
+           panel_pnp_id_size != sizeof(struct bdb_edid_pnp_id))
                return false;
 
        /* panel_name is not present in old VBTs */
        if (panel_name_size != 0 &&
-           panel_name_size != sizeof(struct lvds_lfp_panel_name))
+           panel_name_size != sizeof(struct bdb_edid_product_name))
                return false;
 
        lfp_data_size = ptrs->ptr[1].fp_timing.offset - 
ptrs->ptr[0].fp_timing.offset;
@@ -385,8 +385,8 @@ static void *generate_lfp_data_ptrs(struct drm_i915_private 
*i915,
 
        block_size = get_blocksize(block);
 
-       size = fp_timing_size + sizeof(struct lvds_dvo_timing) +
-               sizeof(struct lvds_pnp_id);
+       size = fp_timing_size + sizeof(struct bdb_edid_dtd) +
+               sizeof(struct bdb_edid_pnp_id);
        if (size * 16 > block_size)
                return NULL;
 
@@ -398,10 +398,10 @@ static void *generate_lfp_data_ptrs(struct 
drm_i915_private *i915,
        *(u16 *)(ptrs_block + 1) = sizeof(*ptrs);
        ptrs = ptrs_block + 3;
 
-       table_size = sizeof(struct lvds_pnp_id);
+       table_size = sizeof(struct bdb_edid_pnp_id);
        size = make_lfp_data_ptr(&ptrs->ptr[0].panel_pnp_id, table_size, size);
 
-       table_size = sizeof(struct lvds_dvo_timing);
+       table_size = sizeof(struct bdb_edid_dtd);
        size = make_lfp_data_ptr(&ptrs->ptr[0].dvo_timing, table_size, size);
 
        table_size = fp_timing_size;
@@ -419,15 +419,15 @@ static void *generate_lfp_data_ptrs(struct 
drm_i915_private *i915,
                return NULL;
        }
 
-       size = fp_timing_size + sizeof(struct lvds_dvo_timing) +
-               sizeof(struct lvds_pnp_id);
+       size = fp_timing_size + sizeof(struct bdb_edid_dtd) +
+               sizeof(struct bdb_edid_pnp_id);
        for (i = 1; i < 16; i++) {
                next_lfp_data_ptr(&ptrs->ptr[i].fp_timing, 
&ptrs->ptr[i-1].fp_timing, size);
                next_lfp_data_ptr(&ptrs->ptr[i].dvo_timing, 
&ptrs->ptr[i-1].dvo_timing, size);
                next_lfp_data_ptr(&ptrs->ptr[i].panel_pnp_id, 
&ptrs->ptr[i-1].panel_pnp_id, size);
        }
 
-       table_size = sizeof(struct lvds_lfp_panel_name);
+       table_size = sizeof(struct bdb_edid_product_name);
 
        if (16 * (size + table_size) <= block_size) {
                ptrs->panel_name.table_size = table_size;
@@ -525,7 +525,7 @@ static void init_bdb_blocks(struct drm_i915_private *i915,
 static void
 fill_detail_timing_data(struct drm_i915_private *i915,
                        struct drm_display_mode *panel_fixed_mode,
-                       const struct lvds_dvo_timing *dvo_timing)
+                       const struct bdb_edid_dtd *dvo_timing)
 {
        panel_fixed_mode->hdisplay = (dvo_timing->hactive_hi << 8) |
                dvo_timing->hactive_lo;
@@ -579,7 +579,7 @@ fill_detail_timing_data(struct drm_i915_private *i915,
        drm_mode_set_name(panel_fixed_mode);
 }
 
-static const struct lvds_dvo_timing *
+static const struct bdb_edid_dtd *
 get_lvds_dvo_timing(const struct bdb_lvds_lfp_data *data,
                    const struct bdb_lvds_lfp_data_ptrs *ptrs,
                    int index)
@@ -601,7 +601,7 @@ get_lvds_pnp_id(const struct bdb_lvds_lfp_data *data,
                int index)
 {
        /* These two are supposed to have the same layout in memory. */
-       BUILD_BUG_ON(sizeof(struct lvds_pnp_id) != sizeof(struct 
drm_edid_product_id));
+       BUILD_BUG_ON(sizeof(struct bdb_edid_pnp_id) != sizeof(struct 
drm_edid_product_id));
 
        return (const void *)data + ptrs->ptr[index].panel_pnp_id.offset;
 }
@@ -835,7 +835,7 @@ parse_lfp_panel_dtd(struct drm_i915_private *i915,
                    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 bdb_edid_dtd *panel_dvo_timing;
        const struct lvds_fp_timing *fp_timing;
        struct drm_display_mode *panel_fixed_mode;
        int panel_type = panel->vbt.panel_type;
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h 
b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index eebb91f4d88b..7ad4d31f6437 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -39,6 +39,50 @@
 
 #include "intel_bios.h"
 
+/* EDID derived structures */
+struct bdb_edid_pnp_id {
+       u16 mfg_name;
+       u16 product_code;
+       u32 serial;
+       u8 mfg_week;
+       u8 mfg_year;
+} __packed;
+
+struct bdb_edid_product_name {
+       char name[13];
+} __packed;
+
+struct bdb_edid_dtd {
+       u16 clock;              /**< In 10khz */
+       u8 hactive_lo;
+       u8 hblank_lo;
+       u8 hblank_hi:4;
+       u8 hactive_hi:4;
+       u8 vactive_lo;
+       u8 vblank_lo;
+       u8 vblank_hi:4;
+       u8 vactive_hi:4;
+       u8 hsync_off_lo;
+       u8 hsync_pulse_width_lo;
+       u8 vsync_pulse_width_lo:4;
+       u8 vsync_off_lo:4;
+       u8 vsync_pulse_width_hi:2;
+       u8 vsync_off_hi:2;
+       u8 hsync_pulse_width_hi:2;
+       u8 hsync_off_hi:2;
+       u8 himage_lo;
+       u8 vimage_lo;
+       u8 vimage_hi:4;
+       u8 himage_hi:4;
+       u8 h_border;
+       u8 v_border;
+       u8 rsvd1:3;
+       u8 digital:2;
+       u8 vsync_positive:1;
+       u8 hsync_positive:1;
+       u8 non_interlaced:1;
+} __packed;
+
 /**
  * struct vbt_header - VBT Header structure
  * @signature:         VBT signature, always starts with "$VBT"
@@ -645,39 +689,8 @@ struct bdb_sdvo_lvds_options {
  * Block 23 - SDVO LVDS Panel DTDs
  */
 
-struct lvds_dvo_timing {
-       u16 clock;              /**< In 10khz */
-       u8 hactive_lo;
-       u8 hblank_lo;
-       u8 hblank_hi:4;
-       u8 hactive_hi:4;
-       u8 vactive_lo;
-       u8 vblank_lo;
-       u8 vblank_hi:4;
-       u8 vactive_hi:4;
-       u8 hsync_off_lo;
-       u8 hsync_pulse_width_lo;
-       u8 vsync_pulse_width_lo:4;
-       u8 vsync_off_lo:4;
-       u8 vsync_pulse_width_hi:2;
-       u8 vsync_off_hi:2;
-       u8 hsync_pulse_width_hi:2;
-       u8 hsync_off_hi:2;
-       u8 himage_lo;
-       u8 vimage_lo;
-       u8 vimage_hi:4;
-       u8 himage_hi:4;
-       u8 h_border;
-       u8 v_border;
-       u8 rsvd1:3;
-       u8 digital:2;
-       u8 vsync_positive:1;
-       u8 hsync_positive:1;
-       u8 non_interlaced:1;
-} __packed;
-
 struct bdb_sdvo_panel_dtds {
-       struct lvds_dvo_timing dtds[4];
+       struct bdb_edid_dtd dtds[4];
 } __packed;
 
 /*
@@ -828,14 +841,6 @@ struct lvds_fp_timing {
        u16 terminator;
 } __packed;
 
-struct lvds_pnp_id {
-       u16 mfg_name;
-       u16 product_code;
-       u32 serial;
-       u8 mfg_week;
-       u8 mfg_year;
-} __packed;
-
 /*
  * For reference only. fp_timing has variable size so
  * the data must be accessed using the data table pointers.
@@ -843,18 +848,14 @@ struct lvds_pnp_id {
  */
 struct lvds_lfp_data_entry {
        struct lvds_fp_timing fp_timing;
-       struct lvds_dvo_timing dvo_timing;
-       struct lvds_pnp_id pnp_id;
+       struct bdb_edid_dtd dvo_timing;
+       struct bdb_edid_pnp_id pnp_id;
 } __packed;
 
 struct bdb_lvds_lfp_data {
        struct lvds_lfp_data_entry data[16];
 } __packed;
 
-struct lvds_lfp_panel_name {
-       u8 name[13];
-} __packed;
-
 struct lvds_lfp_black_border {
        u8 top;         /* 227+ */
        u8 bottom;      /* 227+ */
@@ -863,7 +864,7 @@ struct lvds_lfp_black_border {
 } __packed;
 
 struct bdb_lvds_lfp_data_tail {
-       struct lvds_lfp_panel_name panel_name[16];              /* (156-163?)+ 
*/
+       struct bdb_edid_product_name panel_name[16];            /* (156-163?)+ 
*/
        u16 scaling_enable;                                     /* 187+ */
        u8 seamless_drrs_min_refresh_rate[16];                  /* 188+ */
        u8 pixel_overlap_count[16];                             /* 208+ */
-- 
2.43.2

Reply via email to