[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