Adapt the dumping according to the changes, and do what the kernel does.

Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 tools/intel_bios.h       | 28 ----------------------------
 tools/intel_vbt_decode.c |  9 ++++++---
 tools/intel_vbt_defs.h   | 31 +++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 31 deletions(-)

diff --git a/tools/intel_bios.h b/tools/intel_bios.h
index 65e64ccb41ef..8d1bf7ae0c81 100644
--- a/tools/intel_bios.h
+++ b/tools/intel_bios.h
@@ -155,34 +155,6 @@ struct bdb_child_devices {
        struct child_device_config children[DEVICE_CHILD_SIZE];
 } __attribute__ ((packed));
 
-struct lvds_dvo_timing {
-       uint16_t clock;         /**< In 10khz */
-       uint8_t hactive_lo;
-       uint8_t hblank_lo;
-       uint8_t hblank_hi:4;
-       uint8_t hactive_hi:4;
-       uint8_t vactive_lo;
-       uint8_t vblank_lo;
-       uint8_t vblank_hi:4;
-       uint8_t vactive_hi:4;
-       uint8_t hsync_off_lo;
-       uint8_t hsync_pulse_width;
-       uint8_t vsync_pulse_width:4;
-       uint8_t vsync_off:4;
-       uint8_t rsvd0:6;
-       uint8_t hsync_off_hi:2;
-       uint8_t h_image;
-       uint8_t v_image;
-       uint8_t max_hv;
-       uint8_t h_border;
-       uint8_t v_border;
-       uint8_t rsvd1:3;
-       uint8_t digital:2;
-       uint8_t vsync_positive:1;
-       uint8_t hsync_positive:1;
-       uint8_t rsvd2:1;
-} __attribute__((packed));
-
 struct blc_struct {
        uint8_t inverter_type:2;
        uint8_t inverter_polarity:1;    /* 1 means inverted (0 = max 
brightness) */
diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index 836a9783d54e..beb33672835e 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -950,7 +950,8 @@ print_detail_timing_data(const struct lvds_dvo_timing 
*dvo_timing)
        display = (dvo_timing->hactive_hi << 8) | dvo_timing->hactive_lo;
        sync_start = display +
                ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
-       sync_end = sync_start + dvo_timing->hsync_pulse_width;
+       sync_end = sync_start + ((dvo_timing->hsync_pulse_width_hi) << 8 |
+                                dvo_timing->hsync_pulse_width_lo);
        total = display +
                ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
        printf("\thdisplay: %d\n", display);
@@ -959,8 +960,10 @@ print_detail_timing_data(const struct lvds_dvo_timing 
*dvo_timing)
        printf("\thtotal: %d\n", total);
 
        display = (dvo_timing->vactive_hi << 8) | dvo_timing->vactive_lo;
-       sync_start = display + dvo_timing->vsync_off;
-       sync_end = sync_start + dvo_timing->vsync_pulse_width;
+       sync_start = display + ((dvo_timing->vsync_off_hi << 8) |
+                               dvo_timing->vsync_off_lo);
+       sync_end = sync_start + ((dvo_timing->vsync_pulse_width_hi << 8) |
+                                dvo_timing->vsync_pulse_width_lo);
        total = display +
                ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
        printf("\tvdisplay: %d\n", display);
diff --git a/tools/intel_vbt_defs.h b/tools/intel_vbt_defs.h
index 5481304d2ac2..8bdb2292747b 100644
--- a/tools/intel_vbt_defs.h
+++ b/tools/intel_vbt_defs.h
@@ -379,6 +379,37 @@ struct lvds_fp_timing {
        u16 terminator;
 } __packed;
 
+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 lvds_pnp_id {
        u16 mfg_name;
        u16 product_code;
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to