const struct bdb_header *bdb)
 {
        const struct bdb_lfp_backlight_data *backlight_data;
-       const struct bdb_lfp_backlight_data_entry *entry;
+       const struct lfp_backlight_data_entry *entry;
        int panel_type = dev_priv->vbt.panel_type;
 
        backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT);
        dev_priv->vbt.backlight.type = INTEL_BACKLIGHT_DISPLAY_DDI;
        if (bdb->version >= 191 &&
            get_blocksize(backlight_data) >= sizeof(*backlight_data)) {
-               const struct bdb_lfp_backlight_control_method *method;
+               const struct lfp_backlight_control_method *method;
 
                method = &backlight_data->backlight_control[panel_type];
                dev_priv->vbt.backlight.type = method->type;
 parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
                      const struct bdb_header *bdb)
 {
-       const struct lvds_dvo_timing *dvo_timing;
+       const struct bdb_sdvo_panel_dtds *dtds;
        struct drm_display_mode *panel_fixed_mode;
        int index;
 
                index = sdvo_lvds_options->panel_type;
        }
 
-       dvo_timing = find_section(bdb, BDB_SDVO_PANEL_DTDS);
-       if (!dvo_timing)
+       dtds = find_section(bdb, BDB_SDVO_PANEL_DTDS);
+       if (!dtds)
                return;
 
        panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), GFP_KERNEL);
        if (!panel_fixed_mode)
                return;
 
-       fill_detail_timing_data(panel_fixed_mode, dvo_timing + index);
+       fill_detail_timing_data(panel_fixed_mode, &dtds->dtds[index]);
 
        dev_priv->vbt.sdvo_lvds_vbt_mode = panel_fixed_mode;
 
 
 } __packed;
 
 /* LFP pointer table contains entries to the struct below */
-struct bdb_lvds_lfp_data_ptr {
+struct lvds_lfp_data_ptr {
        u16 fp_timing_offset; /* offsets are from start of bdb */
        u8 fp_table_size;
        u16 dvo_timing_offset;
 
 struct bdb_lvds_lfp_data_ptrs {
        u8 lvds_entries; /* followed by one or more lvds_data_ptr structs */
-       struct bdb_lvds_lfp_data_ptr ptr[16];
+       struct lvds_lfp_data_ptr ptr[16];
 } __packed;
 
 /* LFP data has 3 blocks per entry */
        u8 mfg_year;
 } __packed;
 
-struct bdb_lvds_lfp_data_entry {
+struct lvds_lfp_data_entry {
        struct lvds_fp_timing fp_timing;
        struct lvds_dvo_timing dvo_timing;
        struct lvds_pnp_id pnp_id;
 } __packed;
 
 struct bdb_lvds_lfp_data {
-       struct bdb_lvds_lfp_data_entry data[16];
+       struct lvds_lfp_data_entry data[16];
+} __packed;
+
+struct bdb_sdvo_panel_dtds {
+       struct lvds_dvo_timing dtds[4];
 } __packed;
 
 #define BDB_BACKLIGHT_TYPE_NONE        0
 #define BDB_BACKLIGHT_TYPE_PWM 2
 
-struct bdb_lfp_backlight_data_entry {
+struct lfp_backlight_data_entry {
        u8 type:2;
        u8 active_low_pwm:1;
        u8 obsolete1:5;
        u8 obsolete3;
 } __packed;
 
-struct bdb_lfp_backlight_control_method {
+struct lfp_backlight_control_method {
        u8 type:4;
        u8 controller:4;
 } __packed;
 
 struct bdb_lfp_backlight_data {
        u8 entry_size;
-       struct bdb_lfp_backlight_data_entry data[16];
+       struct lfp_backlight_data_entry data[16];
        u8 level[16];
-       struct bdb_lfp_backlight_control_method backlight_control[16];
+       struct lfp_backlight_control_method backlight_control[16];
 } __packed;
 
 struct bdb_sdvo_lvds_options {