[Intel-gfx] [PATCH v4 0/4] Enable lspcon support for GEN9 devices

Imre Deak imre.deak at intel.com
Thu Aug 25 15:29:17 UTC 2016


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 at 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 at 60 modeset with:
> - BXT-T board
> - Single HDMI 4k at 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 at 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
> 


More information about the Intel-gfx mailing list