[PATCH v2 0/4] Enable lspcon support for GEN9 devices

Shashank Sharma
2016-06-21T14:51:31Z

LSPCON is essencially a dp++->hdmi adaptor with dual mode of operation.

These modes are:
- Level Shifter mode: In LS mode, this device works as a type2 dp->hdmi
passive dongle, which steps up DP++ output to appropriate HDMI 1.4 signal.
This mode doesn't do any conversion at the protocol level.

- Protocol Converter mode: In PCON mode, this device acts as an
active DP++->HDMI 2.0 dongle, which converts the DP++ output to
compatible HDMI 2.0 output. In PCON mode, lspcon can support 4k@60
outputs, using DP HBR2 mode.

Many of Intel GEN9 devices come with in-built lspcon card
in motherboartd down mode. This patch series adds support for
lspcon devices in I915 driver.

While unit-testing this code, I was able to see a 4k@60 modeset with:
- BXT-T board
- Single HDMI 4k@60 display (ACER S)
- Ubuntu 14.04 desktop

V2: Worked on review comments from Ville
- In general, Ville suggested not to use the dual personality of
DDI to drive lspcon, so this patch set drives it just as DP++ display.
There is no separate detection for lspcon (hpd_pulse is good enough), and
its being driven as a DP display with special initialization and EDID
read sequence. To be able to do this, we driving lspcon in PCON mode only,
where it can serve both HDMI1.3/HDMI1.4 sinks as well as 4k@60 capable
HDMI 2.0 sinks. So compared to previous series, there is one patch less,
as we have dropped lspcon detection patch.

Shashank Sharma (4):
drm: Helper for lspcon in drm_dp_dual_mode
drm/i915: Add lspcon support for I915 driver
drm/i915: Parse VBT data for lspcon
drm/i915: Enable lspcon initialization

drivers/gpu/drm/drm_dp_dual_mode_helper.c | 103 +++++++++++++++++++++
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/i915_drv.h | 3 +
drivers/gpu/drm/i915/intel_bios.c | 49 ++++++++++
drivers/gpu/drm/i915/intel_ddi.c | 29 +++++-
drivers/gpu/drm/i915/intel_drv.h | 13 ++-
drivers/gpu/drm/i915/intel_lspcon.c | 145 ++++++++++++++++++++++++++++++
include/drm/drm_dp_dual_mode_helper.h | 25 ++++++
8 files changed, 366 insertions(+), 2 deletions(-)
create mode 100644 drivers/gpu/drm/i915/intel_lspcon.c

--
1.9.1