drm/i915: Extract physical display dimensions from VBT
commit356d27bbfe332de0f2f78e55636e581960c9774e
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 31 May 2016 09:08:34 +0000 (31 12:08 +0300)
committerJani Nikula <jani.nikula@intel.com>
Fri, 10 Jun 2016 07:41:15 +0000 (10 10:41 +0300)
tree2041822a73e9457dc1c161b8ac266e47915826f6
parenta5aac5ab876ad95b7f5e8d862afb07248ee9cae2
drm/i915: Extract physical display dimensions from VBT

The VBT has these mysterious H/V image sizes as part of the display
timings. Looking at some dumps those appear to be the physical
dimensions in mm. Which makes sense since the timing descriptor matches
the format used by EDID detailed timing descriptor, which defines these
as "H/V Addressable Video Image Size in mm".

So let's use that information from the panel fixed mode to get the
physical dimensions for LVDS/eDP/DSI displays. And with that we can
fill out the display_info so that userspace can get at it via
GetConnector.

v2: Use (hi<<8)|lo instead of broken (hi<<4)+lo
    Handle LVDS and eDP too

Cc: Stephen Just <stephenjust@gmail.com>
Tested-by: Stephen Just <stephenjust@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96255
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1464685714-30507-1-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
(cherry picked from commit df457245b5b7515cf97763ebd8975229e34d4cf3)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_dsi.c
drivers/gpu/drm/i915/intel_lvds.c
drivers/gpu/drm/i915/intel_vbt_defs.h