From patchwork Tue Dec 11 07:10:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Skeggs X-Patchwork-Id: 10723125 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 2CFFE1751 for ; Tue, 11 Dec 2018 07:11:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B63B2A8BA for ; Tue, 11 Dec 2018 07:11:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0FC952A8A1; Tue, 11 Dec 2018 07:11:07 +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,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,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 2B5BD2A8BA for ; Tue, 11 Dec 2018 07:11:06 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6E7C089E1B; Tue, 11 Dec 2018 07:11:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ua1-x942.google.com (mail-ua1-x942.google.com [IPv6:2607:f8b0:4864:20::942]) by gabe.freedesktop.org (Postfix) with ESMTPS id 588FE89E1B for ; Tue, 11 Dec 2018 07:11:02 +0000 (UTC) Received: by mail-ua1-x942.google.com with SMTP id k10so4768604ual.6 for ; Mon, 10 Dec 2018 23:11:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ni3A5JM4PUYrUBR8E5RQq+0srFWHh3b0mdHZ93+Tjow=; b=bqvFT9iUtnGkFWjhr4lPrFASusEERGQz8GYt5h7llGXvYGbwOCnIg7aFvwo+TUsTPo isNh3ok3GhzVEJTDDpcqrTDZf8FkS7WQcyV6DG+Hl9okLl7HqN918SoUTEYHOBcOjD0D U+KtCIC0Q73fWVcjHq+/b2OpqGqFjtyOjjHK2CVjmKomhGN9/h6odGR651P/G78jxxR6 ikyHVn1n/o8WfUhcAIhJM2QjGnB/j21ETa5yXBT8SsGfrsmZt1833F0YrobS0rCmFe6r mBKVKMaUAXSiwrgDZMKwPcpguT9uWfhl71H6kPLvrQCSmL1ThmSQIoufdVQEdwrjzjVW 09gg== X-Gm-Message-State: AA+aEWbZam8JZZBkSRrfWCsU25Qque2P71Cc+B2DJio9Rsiq7OQlcuLb 5ng0DYgd3Eg0g63eq5NEw7tI3XSg3TaK5MBcMIQ+x13B X-Google-Smtp-Source: AFSGD/Xj8hxJLvWNwcLyUWunFy/8luyd441K0pxIsGOxZ+EuRIk1cLDJwt0m6vJFoclXuPzPwbDhOtJxnVlPi1hRLTM= X-Received: by 2002:ab0:3111:: with SMTP id e17mr6914717ual.61.1544512261144; Mon, 10 Dec 2018 23:11:01 -0800 (PST) MIME-Version: 1.0 From: Ben Skeggs Date: Tue, 11 Dec 2018 17:10:49 +1000 Message-ID: Subject: nouveau-next 4.21 To: dri-devel@lists.freedesktop.org, Dave Airlie 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hey Dave, Mostly just initial support for Turing TU104/TU106 chipsets. Support for TU102 is missing as I don't yet have HW, but it should be trivial to add in later in the merge window (in theory). It's a bit of a rough first pass that'll get improved in future releases as a finish figuring out some of the other HW changes, but it's good enough as it stands for modesetting and suspend/resume etc. Acceleration bring-up is incomplete due to NVIDIA not yet having provided FW images for me to use, though command submission and copy engines are functional already. Thanks, Ben. The following changes since commit e69aa5f9b97f7f871643336deb281db5cb14878b: Merge tag 'drm-misc-next-2018-12-06' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2018-12-07 11:23:05 +1000) are available in the Git repository at: git://github.com/skeggsb/linux linux-4.21 for you to fetch changes up to 8ff01abcccbb563fbf50b84a476bd9b22c42c0a3: drm/nouveau/ce/tu106: initial support (2018-12-11 15:38:01 +1000) ---------------------------------------------------------------- Ben Skeggs (72): drm/nouveau/core: support multiple nvdec instances drm/nouveau/bios: translate additional memory types drm/nouveau/bios: translate USB-C connector type drm/nouveau/devinit/gm200-: export function to upload+execute PMU/PRE_OS drm/nouveau/tmr: detect stalled gpu timer and break out of waits drm/nouveau/imem/nv50: support pinning objects in BAR2 and returning address drm/nouveau/fault: remove manual mapping of fault buffers into BAR2 drm/nouveau/fault: store get/put pri address in nvkm_fault_buffer drm/nouveau/fault: add explicit control over fault buffer interrupts drm/nouveau/mmu: add more general vmm free/node handling functions drm/nouveau/disp/gv100: fix name of window channels in debug output drm/nouveau/fifo/gf100-: call into BAR to reset BARs after MMU fault drm/nouveau/fifo/gk104-: return channel instance in ctor args drm/nouveau/fifo/gk104-: support enabling privileged ce functions drm/nouveau/fifo/gk104-: separate runlist building from committing to hw drm/nouveau/fifo/gk104-: group pbdma functions together drm/nouveau/fifo/gk104-: virtualise pbdma enable function drm/nouveau/fifo/gm200-: read pbdma count more directly drm/nouveau/fifo/gv100: allocate method buffer drm/nouveau/fifo/gv100: return work submission token in channel ctor args drm/nouveau: remove left-over struct member drm/nouveau/kms/nv50-: allow more flexibility with lut formats drm/nouveau/core: recognise TU104 drm/nouveau/pci/tu104: initial support drm/nouveau/bios/tu104: initial support drm/nouveau/devinit/tu104: initial support drm/nouveau/top/tu104: initial support drm/nouveau/ibus/tu104: initial support drm/nouveau/gpio/tu104: initial support drm/nouveau/i2c/tu104: initial support drm/nouveau/fuse/tu104: initial support drm/nouveau/mc/tu104: initial support drm/nouveau/bus/tu104: initial support drm/nouveau/tmr/tu104: initial support drm/nouveau/imem/tu104: initial support drm/nouveau/fb/tu104: initial support drm/nouveau/ltc/tu104: initial support drm/nouveau/mmu/tu104: initial support drm/nouveau/bar/tu104: initial support drm/nouveau/fault/tu104: initial support drm/nouveau/pmu/tu104: initial support drm/nouveau/therm/tu104: initial support drm/nouveau/dma/tu104: initial support drm/nouveau/disp/tu104: initial support drm/nouveau/fifo/tu104: initial support drm/nouveau/ce/tu104: initial support drm/nouveau/kms/tu104: initial support drm/nouveau/core: increase maximum number of nvdec instances to 3 drm/nouveau/core: recognise TU106 drm/nouveau/pci/tu106: initial support drm/nouveau/bios/tu106: initial support drm/nouveau/devinit/tu106: initial support drm/nouveau/top/tu106: initial support drm/nouveau/ibus/tu106: initial support drm/nouveau/gpio/tu106: initial support drm/nouveau/i2c/tu106: initial support drm/nouveau/fuse/tu106: initial support drm/nouveau/mc/tu106: initial support drm/nouveau/bus/tu106: initial support drm/nouveau/tmr/tu106: initial support drm/nouveau/imem/tu106: initial support drm/nouveau/fb/tu106: initial support drm/nouveau/ltc/tu106: initial support drm/nouveau/mmu/tu106: initial support drm/nouveau/bar/tu106: initial support drm/nouveau/fault/tu106: initial support drm/nouveau/pmu/tu106: initial support drm/nouveau/therm/tu106: initial support drm/nouveau/dma/tu106: initial support drm/nouveau/disp/tu106: initial support drm/nouveau/fifo/tu106: initial support drm/nouveau/ce/tu106: initial support Lyude Paul (4): drm/nouveau: Add strap_peek to debugfs drm/nouveau: Add size to vbios.rom file in debugfs drm/nouveau/drm/nouveau: Check rc from drm_dp_mst_topology_mgr_resume() drm/nouveau/drm/nouveau: Don't forget to label dp_aux devices drivers/gpu/drm/nouveau/dispnv04/disp.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/Kbuild | 3 ++ drivers/gpu/drm/nouveau/dispnv50/atom.h | 7 ++- drivers/gpu/drm/nouveau/dispnv50/base907c.c | 1 + drivers/gpu/drm/nouveau/dispnv50/core.c | 1 + drivers/gpu/drm/nouveau/dispnv50/core.h | 4 ++ drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 4 +- drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 61 ++++++++++++++++++++++++ drivers/gpu/drm/nouveau/dispnv50/curs.c | 1 + drivers/gpu/drm/nouveau/dispnv50/disp.c | 14 ++++-- drivers/gpu/drm/nouveau/dispnv50/disp.h | 2 + drivers/gpu/drm/nouveau/dispnv50/head.c | 6 +-- drivers/gpu/drm/nouveau/dispnv50/head.h | 11 +++++ drivers/gpu/drm/nouveau/dispnv50/head507d.c | 19 ++++++++ drivers/gpu/drm/nouveau/dispnv50/head907d.c | 18 +++++++ drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 11 +++-- drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/dispnv50/lut.c | 50 +++++++------------- drivers/gpu/drm/nouveau/dispnv50/lut.h | 5 +- drivers/gpu/drm/nouveau/dispnv50/wimm.c | 1 + drivers/gpu/drm/nouveau/dispnv50/wndw.c | 12 +++-- drivers/gpu/drm/nouveau/dispnv50/wndw.h | 18 +++++++ drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c | 21 +++++---- drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvif/cl0080.h | 1 + drivers/gpu/drm/nouveau/include/nvif/cla06f.h | 3 +- drivers/gpu/drm/nouveau/include/nvif/class.h | 9 +++- drivers/gpu/drm/nouveau/include/nvif/clc36f.h | 19 ++++++++ drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 11 +++-- drivers/gpu/drm/nouveau/include/nvkm/core/memory.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 3 ++ drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0203.h | 13 ++++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/fault.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 5 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h | 28 +++++++---- drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 + drivers/gpu/drm/nouveau/nouveau_chan.c | 37 +++++++++++---- drivers/gpu/drm/nouveau/nouveau_chan.h | 5 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 12 ++++- drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 46 ++++++++++++++++-- drivers/gpu/drm/nouveau/nouveau_dma.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 8 ++-- drivers/gpu/drm/nouveau/nouveau_vmm.h | 1 - drivers/gpu/drm/nouveau/nvif/disp.c | 1 + drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/ce/tu104.c | 40 ++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 87 ++++++++++++++++++++++++++++++---- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 3 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 7 +++ drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 5 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu104.c | 52 +++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu104.c | 97 ++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/tu104.c | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 3 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 13 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 90 +++++++++++++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 30 ++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c | 11 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c | 16 ++++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm20b.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp10b.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 19 +++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogv100.c | 72 +++++++++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifotu104.c | 83 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c | 15 +++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu104.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/user.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/usertu104.c | 45 ++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 20 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu104.c | 98 +++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c | 14 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu104.c | 89 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fault/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c | 21 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.c | 24 +++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.c | 47 ++++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fault/priv.h | 9 +++- drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu104.c | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 11 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c | 3 ++ drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 16 ++++++- drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 3 ++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/tu104.c | 55 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu104.c | 43 +++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 21 ++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 145 ++++++++++++++++++++++++++++++++++++++++++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 8 +++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu104.c | 77 ++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gp102.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 36 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.c | 2 +- 119 files changed, 2450 insertions(+), 308 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/dispnv50/corec57d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/headc57d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c create mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc36f.h create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/ce/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifotu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/usertu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mc/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu104.c