[PATCH v2 00/10] Enable HDMI Stereoscopy

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Mar 29 12:02:47 UTC 2017


On Mon, Mar 27, 2017 at 05:57:57PM -0400, Alastair Bridgewater wrote:
> HDMI 3D mode support, round two.  Revisions include no longer dealing
> with audio InfoFrames, passing infoframe data to NVKM as bags of bytes
> rather than as data pre-packed for the hardware, more-normal return
> value checking for drm_hdmi_*_infoframe_from_display_mode() results,
> Frame-Packing mode support, more-principled logic for enabling stereo
> mode support on a connector, and support for all four nv50+ DISPs.
> Additionally, this patch set is being sent to the dri-devel list as
> well as the nouveau list.  Dropped in this version is the removal of
> the "mandatory" 3D mode logic.  After discussion, I'm still convinced
> that it's wrong, but now I'm convinced that it's too conservative
> rather than my original belief which was that it was too liberal.
> 
> Thanks to Ilia Mirkin, Damien Lespiau, and Ben Skeggs for feedback on
> the original patch set.  If I have neglected to mention anyone, mea
> culpa.
> 
> The first patch perhaps isn't technically necessary, but simplifies
> the later logic for fixing frame-packing mode timing.  There may be
> some effect from applying this, as drm_mode_set_crtcinfo() does
> something with vscan which can affect the given CRTC timing.  I'm
> not sure what's going on there, if there's any behavioral change or
> not, and if there is what to do about it (other than using
> drm_mode_set_crtcinfo() twice, once with CRTC_NO_VSCAN and once
> without).
> 
> The second through eighth patches are all the InfoFrame logic again,
> this time with support for all four DISP types.  This does not appear
> to cause regressions in HDMI audio on GT215, GF119, or GK104.  I hope
> that it doesn't cause a regression on G84, but haven't yet managed to
> set up a test case for G84 and HDMI audio.
> 
> The ninth patch is to fix up frame-packing mode timings and geometry.
> As the patch comment says, there are clearly-correct parts, and there
> are possibly-hacky parts.  But it gets frame-packing modes working,
> and we can revise from there if necessary.
> 
> And the tenth patch enables stereo mode support...  on HDMI and DPort
> connectors on nv50+ hardware.  HDMI connectors because obvious.  DPort
> connectors because of DPort to HDMI adaptors.

Do you mean DP++ or actual protocol converters? DP++ is just HDMI with
a some electrical tweaks, but IIRC proper DP defines 3D stereo quite
differently than HDMI. I'm not sure if we should be able to push HDMI
style 3D through DP->HDMI/DP++ adaptors. The specs are unfortunately
very vague when it comes to such devices.

> eDP connectors because
> it shouldn't do any harm, and someone might have been maniac enough to
> set up an eDP port to point to something with an HDMI 3D setup.  And
> nv50+ hardware only because while I'm not aware of any pre-nv50 cards
> that have HDMI outputs, there could be a setup out there like the PS3
> that uses an external HDMI encoder on pre-nv50 hardware, at which
> point none of the mode timing or InfoFrame support is in place for it.
> 
> Alastair Bridgewater (10):
>   drm/nouveau: Use drm_mode_set_crtcinfo() to compensate for vscan /
>     ilace
>   drm/nouveau: Extend NVKM HDMI power control method to set InfoFrames
>   drm/nouveau: Pass mode-dependent AVI and Vendor HDMI InfoFrames to
>     NVKM
>   drm/nouveau: Add mechanism to convert HDMI InfoFrames to hardware
>     format
>   drm/nouveau: Use supplied HDMI InfoFrames on G84 hardware
>   drm/nouveau: Use supplied HDMI InfoFrames on GT215 hardware
>   drm/nouveau: Use supplied HDMI InfoFrames on GF119 hardware
>   drm/nouveau: Use supplied HDMI InfoFrames on GK104 hardware
>   drm/nouveau: Handle frame-packing mode geometry and timing effects
>   drm/nouveau: Enable stereoscopic 3D output over HDMI
> 
>  drivers/gpu/drm/nouveau/include/nvif/cl5070.h      |  4 +-
>  drivers/gpu/drm/nouveau/nouveau_connector.c        | 10 +++
>  drivers/gpu/drm/nouveau/nv50_display.c             | 80 ++++++++++++++++------
>  drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild    |  1 +
>  .../drm/nouveau/nvkm/engine/disp/hdmi_infoframe.c  | 66 ++++++++++++++++++
>  drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 46 +++++++++++--
>  .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c   | 49 +++++++++++--
>  .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c   | 45 ++++++++++--
>  .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c   | 46 +++++++++++--
>  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h    | 11 +++
>  10 files changed, 307 insertions(+), 51 deletions(-)
>  create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmi_infoframe.c
> 
> -- 
> 2.10.2
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel OTC


More information about the dri-devel mailing list