Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp40585ybh; Tue, 17 Mar 2020 17:43:15 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvTOsRGaXaJElWlcS6I6XO7n5JPcSt5q3LAZuGGaRA2zXqndBccGqJo0MOJHqa2bF7BoJjo X-Received: by 2002:a9d:895:: with SMTP id 21mr1646178otf.365.1584492195648; Tue, 17 Mar 2020 17:43:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584492195; cv=none; d=google.com; s=arc-20160816; b=CTwRPZYLwha1gQbOhL6NuNXtm6+DJm0UznlCtxb/SHaxRaHg/kxPnUat3FS4eOh4GK uN2VIxAxKSPzbfAX0cAZDw36G+DnMyeCpVwg9Fmp64vBtDjJcYrhIt28xd/oKdObN/Fh uijENn9dyvZpOZlfuIXoIsyLIf4SyHL9h1k4h1leRd7aoK6bzhOFcmaA/Hsv4V/tiZnt GSpLeICcvHumyQVAO+JKPTKVI3iVB6fjC1KnZgqyEmy6FYej4NrT21rEIteV11vawS2u hdCDRiyGHtJmcqjdLte1Ia89/ZqkTJ10fT3F2g+0jO01Tz+e7llc8hxmNbHuIVY6rK7D 7W5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=TOKpkDx1+1S5gT8u85nuwajZFgWwJ6Fhafzgm2jG6Zg=; b=0OVNycuHFFUw6K/4yAtubphGKPvorTjkX2uNxkZ06BnDUJrGE1likK91wRJbqNsUoP RxvSfI7tDTBG6kxoGmAocqv0DvA8qHsgMq1X38bj9sXEuKK5kEU0/lcr5S9eGOBvzuTy SsHx0XDVmQAtbh3GcvWLw823LeSEdR0DrezlbMkFPB0rYadvJ/B7jXBEiYdFQzp5EUPt awusa2kHCQ4nZ3iYLMBnOzJBlUmCqWUmtkDpcoR9mkpCrIB98QprAtZ1rrFsPRIP1yA1 5MRmcPC7HHPklj5RPdDS21bal92G5mIs1uGusWPUNGjj1xpVPG4m3X2Z0iKpiZWIX7vT nXLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=hoYYWEfa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v22si2433915oic.271.2020.03.17.17.43.03; Tue, 17 Mar 2020 17:43:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=hoYYWEfa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727190AbgCRAmd (ORCPT + 99 others); Tue, 17 Mar 2020 20:42:33 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:42386 "EHLO us-smtp-delivery-74.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727069AbgCRAmd (ORCPT ); Tue, 17 Mar 2020 20:42:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584492152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TOKpkDx1+1S5gT8u85nuwajZFgWwJ6Fhafzgm2jG6Zg=; b=hoYYWEfaa/RcWrVeUhTy2pSYlH/Dw0D1wy+f02eboLAL30w1jjDUhLmcaf4s35+uOkprQM 37mb+tmaH4sCmrZlug04YeZWuOVFV4SxGf3lyatUqoWBNWu9nJdlFLeeMIvfFrOjTGetQ8 dN7c4masUYw6tLqY5GrAxIEmOiUn2og= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-396-mxb62zmLO5OAnbbMfQwoaw-1; Tue, 17 Mar 2020 20:42:30 -0400 X-MC-Unique: mxb62zmLO5OAnbbMfQwoaw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C5D2F8014CE; Wed, 18 Mar 2020 00:42:27 +0000 (UTC) Received: from whitewolf.redhat.com (ovpn-113-173.rdu2.redhat.com [10.10.113.173]) by smtp.corp.redhat.com (Postfix) with ESMTP id EB9D760BE0; Wed, 18 Mar 2020 00:42:21 +0000 (UTC) From: Lyude Paul To: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: "Daniel Vetter" , "David Airlie" , "Maarten Lankhorst" , linux-kernel@vger.kernel.org, "Thomas Zimmermann" , "Maxime Ripard" , "Alex Deucher" , "Ben Skeggs" , "Ilia Mirkin" , "Peteris Rudzusiks" , "Lyude Paul" , =?UTF-8?q?Christian=20K=C3=B6nig?= , "Nicholas Kazlauskas" , "Pankaj Bharadiya" , "Takashi Iwai" , "Sean Paul" , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , "Jani Nikula" , "Gerd Hoffmann" , "Sam Ravnborg" , "Kate Stewart" , "Greg Kroah-Hartman" Subject: [PATCH 0/9] drm/nouveau: Introduce CRC support for gf119+ Date: Tue, 17 Mar 2020 20:40:57 -0400 Message-Id: <20200318004159.235623-1-lyude@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Nvidia released some documentation on how CRC support works on their GPUs, hooray! So: this patch series implements said CRC support in nouveau, along with adding some special debugfs interfaces for some relevant igt-gpu-tools tests that we'll be sending in just a short bit. This additionally adds a feature that Ville Syrj=C3=A4l=C3=A4 came up wit= h: vblank works. Basically, this is just a generic DRM interface that allows for scheduling high-priority workers that start on a given vblank interrupt. Note that while we're currently only using this in nouveau, Intel has plans to use this for i915 as well (hence why they came up with it!). Anyway-welcome to the future! :) Lyude Paul (8): drm/nouveau/kms/nv50-: Unroll error cleanup in nv50_head_create() drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit drm/nouveau/kms/nv50-: Fix disabling dithering drm/nouveau/kms/nv50-: s/harm/armh/g drm/nouveau/kms/nv140-: Track wndw mappings in nv50_head_atom drm/nouveau/kms/nv50-: Expose nv50_outp_atom in disp.h drm/nouveau/kms/nv50-: Move hard-coded object handles into header drm/nouveau/kms/nvd9-: Add CRC support Ville Syrj=C3=A4l=C3=A4 (1): drm/vblank: Add vblank works drivers/gpu/drm/drm_vblank.c | 322 +++++++++ drivers/gpu/drm/nouveau/dispnv04/crtc.c | 25 +- drivers/gpu/drm/nouveau/dispnv50/Kbuild | 4 + drivers/gpu/drm/nouveau/dispnv50/atom.h | 21 + drivers/gpu/drm/nouveau/dispnv50/core.h | 4 + drivers/gpu/drm/nouveau/dispnv50/core907d.c | 3 + drivers/gpu/drm/nouveau/dispnv50/core917d.c | 3 + drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 3 + drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 3 + drivers/gpu/drm/nouveau/dispnv50/crc.c | 716 ++++++++++++++++++++ drivers/gpu/drm/nouveau/dispnv50/crc.h | 125 ++++ drivers/gpu/drm/nouveau/dispnv50/crc907d.c | 139 ++++ drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 153 +++++ drivers/gpu/drm/nouveau/dispnv50/disp.c | 65 +- drivers/gpu/drm/nouveau/dispnv50/disp.h | 24 + drivers/gpu/drm/nouveau/dispnv50/handles.h | 16 + drivers/gpu/drm/nouveau/dispnv50/head.c | 142 +++- drivers/gpu/drm/nouveau/dispnv50/head.h | 13 +- drivers/gpu/drm/nouveau/dispnv50/head907d.c | 14 +- drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 27 +- drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 20 +- drivers/gpu/drm/nouveau/dispnv50/wndw.c | 15 +- drivers/gpu/drm/nouveau/nouveau_display.c | 60 +- include/drm/drm_vblank.h | 34 + 24 files changed, 1821 insertions(+), 130 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc.h create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc907d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crcc37d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/handles.h --=20 2.24.1