From patchwork Tue Sep 4 00:57:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilia Mirkin X-Patchwork-Id: 10586423 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E708614BD for ; Tue, 4 Sep 2018 00:58:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2170C28EA4 for ; Tue, 4 Sep 2018 00:58:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 156CC28EB4; Tue, 4 Sep 2018 00:58:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C3A9328EA4 for ; Tue, 4 Sep 2018 00:57:59 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A40C89C9C; Tue, 4 Sep 2018 00:57:50 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-qt0-x244.google.com (mail-qt0-x244.google.com [IPv6:2607:f8b0:400d:c0d::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id E648789D9B; Tue, 4 Sep 2018 00:57:48 +0000 (UTC) Received: by mail-qt0-x244.google.com with SMTP id g53-v6so2233640qtg.10; Mon, 03 Sep 2018 17:57:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=SAgDrr2nNboOenRHUBSRVlnTQLB7MUlq4802NwB6Hlg=; b=D7qTU2mDmveq99rFEU1H9JyS4MwoehfZHn9MtaCfMf5Xe5rHCzb5HWWDjhGRS4rxg4 HjrK3yJoTKcH3wLGLrf93ViRhYbyvnCY96jsEhx6Z/olD+TZJUmXS4+rj/JgHe1w2UqT zJatKj43+kehboJFErdzGddlKkVIMrirMTsvBxnJJ3Wn6nQZOZLeYYl8lZX/BmXlfRK7 6xqRvxkoJtaQZs5TZl5gQWMAkTVzj5WkxBAjKmtAsllm9rYjtXlXAW52QmJTRvC7KM5j AFQIUFx7pcONhr5VVRR8s20Y1Dfexrx0pM9NM9aScexmlyEKjAbuGpBjnMRnarWE8NkW 0IKg== X-Gm-Message-State: APzg51AlRWzRz62QmdqAoCXeWtQzdGZcBqFeiqqY3pWPtX/Qdmp7Hujh HGQy8u/1YeJGC3x+NntafGoM6Dg9 X-Google-Smtp-Source: ANB0VdZsnWErUIfvL+zfNr2XwM0LkKzVzLMxwhALnbhktnfW5d4mjPYkJTuMT5G+U2HmSg8f6WKE8A== X-Received: by 2002:ac8:29ef:: with SMTP id 44-v6mr27426450qtt.174.1536022667230; Mon, 03 Sep 2018 17:57:47 -0700 (PDT) Received: from athos.fios-router.home (pool-108-29-13-48.nycmny.fios.verizon.net. [108.29.13.48]) by smtp.gmail.com with ESMTPSA id o68-v6sm9779960qkf.9.2018.09.03.17.57.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Sep 2018 17:57:43 -0700 (PDT) From: Ilia Mirkin To: Ben Skeggs , nouveau@lists.freedesktop.org Subject: [PATCH 0/5] drm/nouveau: add basic HDMI 2.0 support Date: Mon, 3 Sep 2018 20:57:32 -0400 Message-Id: <20180904005737.5346-1-imirkin@alum.mit.edu> X-Mailer: git-send-email 2.16.4 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP This is the beginnings of HDMI 2.0 support. All of the "extra" features are left out, such as 12/16bpc, YUV420, etc. I've verified that with this code, a GP108 (GT1030) can switch between 4k@60 and 1920x1080@60 on a LG 4K TV. Further, I've verified via i2c tools, that the SCDC writes really do happen. I suspect that the patch for keeping track of the high-speed TMDS setting is somehow off, esp if one were to switch between HDMI and DVI on the same port, or DP and HDMI. I'm quite confused about OR's vs HEAD's, and how to tell whether a register is indexed by one or the other. But at least it works a little bit! Note that I have limited testing equipment, but I did verify that a GM204 trace referred to the same register for controlling scrambling. I may get access to a GM206 later in the week to verify there. Ilia Mirkin (5): drm/nouveau/disp: add a way to configure scrambling/tmds for hdmi 2.0 drm/nouveau/disp/gm200-: add scdc parameter setter drm/nouveau/disp: keep track of high-speed state, program into clock drm/nouveau/disp: add support for setting scdc parameters for high modes drm/nouveau/disp: take sink support into account for exposing 594mhz drivers/gpu/drm/nouveau/dispnv50/disp.c | 40 +++++++++++++++++++++- drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 5 ++- drivers/gpu/drm/nouveau/nouveau_connector.c | 34 +++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c | 36 +++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 8 +++++ .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 10 ++++-- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 11 +++--- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 1 + 10 files changed, 127 insertions(+), 20 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c