drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 20 Oct 2017 17:26:41 +0000 (10:26 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 20 Oct 2017 23:18:03 +0000 (16:18 -0700)
commit9c3b2689d01ff03e2b8e8d47538881dbff756d78
treecc49bf269658bd62c6e97bcd283666589dcb26e7
parent2952cd6fb4cc9834baa3774fc4051718f94dc3fe
drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.

Starting on CNL we now need to map VBT DDC Pin to
BSPec DDC Pin values. Not a direct translation anymore.

According to VBT
Block 2 (General Bytes Definition)
DDC Bus

+----------+-----------+--------------------+
| DDI Type | VBT Value | Bspec Mapped Value |
+----------+-----------+--------------------+
| DDI-B    | 0x1       | 0x1                |
| DDI-C    | 0x2       | 0x2                |
| DDI-D    | 0x3       | 0x4                |
| DDI-F    | 0x4       | 0x3                |
+----------+-----------+--------------------+

v2: Move defines to a better place.
    This is actually CNL_PCH not CNL only.
v3: Accepting Ville's suggestions: enums and array to
    to make this future proof.
v4: Protect the array access as Ville suggested.
    Also accepting all Jani's suggestions:
           - use already defined gmbus pin definitions.
      - use map_ddc_pin for disambiguation.
      - Add /* sic */ comment on inverted values
       so people can easily see it it nos a mistake
we have the map 3 -> 4 and 4 -> 3 :/

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171020172641.16029-1-rodrigo.vivi@intel.com
drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_vbt_defs.h