Comment 59 for bug 312133

Revision history for this message
In , Jesse Barnes (jbarnes-virtuousgeek) wrote :

(In reply to comment #42)
> Jesse, I think the BDB_LVDS_LFP_DATA and BDB_LVDS_LFP_DATA_PTRS should be the
> same thing, while one is pointers and the other is datum. Driver is preferred
> to use BDB_LVDS_LFP_DATA_PTRS , rather than visit BDB_LVDS_LFP_DATA directly,
> even though we can...But,
>
> I did some Hex editing and noticed that all pointers in BDB_LVDS_LFP_DATA_PTRS
> are busted, as you said, and are set 4 bytes ahead of the correct value. Not
> only DVO_Timing, but also LFP_PARAMs, PnPIDs. I further checked out and noticed
> that BDB_LVDS_OPTIONS is unexpected 4 bytes longer than it should be of its BDB
> version ...The correct size is 4 ( excluding bdb header/size ) , but in this
> rom, it's 8. From a document I have, it is valid to have this size but it's
> only in later version, not 1.26.

Oh, nice debugging Michael, thanks for checking it out. So do you think it's possible to add a version check that accounts for this in our VBT parsing code? Sounds like 1.26 wouldn't work but maybe something earlier? Or we could check the BDB_LVDS_OPTIONS size instead since that seems correct, and use that to determine how to handle the DATA_PTRS offsets.