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. 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel