Hi, On ti, 2016-08-16 at 22:17 +0530, Shashank Sharma wrote: > LSPCON is essentially a dp++->hdmi adapter 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. > > > V3: Addressed review comments from Rodrigo > Details available with respective patch. > > V4: Addressed review comments from Ville > Details available with respective 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 Testing these patches on my APL RVP, modesetting works fine, but after suspend-to-ram the LSPCON output stops working. Link training fails during the resume time enabling and I can't get any hotplug interrupts afterwards, or make it recover in any way. Debugging it further I see that right after resume a DPCD read succeeds but returns corrupted values. I'm thinking that there is some delay while the LSPCON HW/FW is initializing and trying to do link training during this time gets it into the broken state. At least delaying the encoder enabling after resume by 100ms fixes things, DPCD reads return correct values and link training/modesetting will succeed. Have you seen this on the other platforms? The FW version I have is 1.39 as reported by DPCD 0x50A/0x50B. --Imre > > drivers/gpu/drm/drm_dp_dual_mode_helper.c | 103 ++++++++++++++++++++++++ > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/i915_drv.h | 5 ++ > 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 | 127 ++++++++++++++++++++++++++++++ > include/drm/drm_dp_dual_mode_helper.h | 26 ++++++ > 8 files changed, 351 insertions(+), 2 deletions(-) > create mode 100644 drivers/gpu/drm/i915/intel_lspcon.c > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx