Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp7844349ybi; Thu, 6 Jun 2019 02:24:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqwQMsoVYUVVvRTrQB9pI9DrLuQzFM9sXug5GdpegqpLCbsTaS7osT44iBExUB6YloS4fyXw X-Received: by 2002:a62:e917:: with SMTP id j23mr46908389pfh.55.1559813057956; Thu, 06 Jun 2019 02:24:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559813057; cv=none; d=google.com; s=arc-20160816; b=ekjtRaLdE2jtjcNyAZsBvkvGFhg5dU3WBElEHB5XXaJKcgoF+TL9WvJwXRnGQt1GRo 9q9F/M7dFMu46BcoR88EkfOR5n9YgVu9nZLqOR9YrjCdJOF0yePkVWx9jmHFZcCEecE2 xe1OGZx27+L01eTuhpvqjlwvka8FTcvHEmlHXPcXJtO7z1iK/CeZQfuWAaZLsOrJ9ojt EUhyODyOvrPzw/JxxggaI8wxhSkVmJuGAuYAFVah9d2t2RdNvhNU1U4Am6iQd6TIvkmI mL2d1o5K/UhDGJZaLgn0UGbMRO9oZYyeQCH4JvjQ7nlCf4xe33d0XS7OR071aS04O0Sm HbGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:message-id :date:subject:cc:to:from; bh=tbKkyt/K+Dnc3K8ZzvLUciqyYeSlK6VCzexvmG6DFYI=; b=EV6mfzh69dSAY8bd0OIqY3rBzp8oy1tk0O4PiOt2KuRApPuXdPl8llqMDdkuGyZMND nEJEQFE9TH3zNJ1gjg79/lcioCN+LWG9Lme/ot4leNPGuJg3FmSHPSJucG1piDaFP7sa vDbiPfnDPE2kVPGbGZ770kjG7rCkkxlYKAxFVPNq3LFuCX/xkU33HbpuWIWNu18AsUtP 1+G7r3cn9qjDBaDHjD1F8boU8NiRVgd1Gk+ZQ7NdUD000p8ZKyrpmwKQT7jIxPIxxucJ ywHDQKcJpnOx//6DniXizO9NEpRjhQQhs6TKC9mtCAw7Tj2qja4INLYaqv426Jwwbpvs hVsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=FDFex7CL; 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=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 123si1544407pfz.150.2019.06.06.02.24.01; Thu, 06 Jun 2019 02:24:17 -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=@nvidia.com header.s=n1 header.b=FDFex7CL; 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=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727820AbfFFJWz (ORCPT + 99 others); Thu, 6 Jun 2019 05:22:55 -0400 Received: from hqemgate16.nvidia.com ([216.228.121.65]:9725 "EHLO hqemgate16.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727540AbfFFJWy (ORCPT ); Thu, 6 Jun 2019 05:22:54 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate16.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Thu, 06 Jun 2019 02:22:53 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Thu, 06 Jun 2019 02:22:53 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Thu, 06 Jun 2019 02:22:53 -0700 Received: from localhost.nvidia.com (10.124.1.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 6 Jun 2019 09:22:51 +0000 From: Abhishek Sahu To: Bjorn Helgaas CC: , , , Abhishek Sahu Subject: [PATCH v2 0/2] PCI: device link quirk for NVIDIA GPU Date: Thu, 6 Jun 2019 14:52:23 +0530 Message-ID: <20190606092225.17960-1-abhsahu@nvidia.com> X-Mailer: git-send-email 2.17.1 X-NVConfidentiality: public MIME-Version: 1.0 X-Originating-IP: [10.124.1.5] X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To HQMAIL107.nvidia.com (172.20.187.13) Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1559812973; bh=tbKkyt/K+Dnc3K8ZzvLUciqyYeSlK6VCzexvmG6DFYI=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: X-NVConfidentiality:MIME-Version:X-Originating-IP: X-ClientProxiedBy:Content-Type; b=FDFex7CLIRxqr57Z/OXaVJqWJjyJ56OrvQ/EqAw6golwcjsu47mZWVwx86CVBWZOA hLnYwQgSRN4IWC0GHkiuYZrJXioH0OmQLQddzXDaXB9kmCX32NYzh3hET33bzOX6Kj BUEFTTpFfYK3avCaEAcVy2edJrItBzjSZVIWDrAuptu/kz2cKBWu01difNn1qFWRw5 geHIKZedkSS+ieV1nQWvQBLNBUtkTW5g+BPl4gqCoHagf1Z3fDdkvQEtubepEOBTIE ZqUq7MTR8YiYoJEOLYWqCztXmREMhg45+URLvDutFi98zLshe6Ap0uOBN4Xb9IEbro FVzQTzDbReJjA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * v2: 1. Make the pci device link helper function generic which can be used for other multi-function PCI devices also. 2. Minor changes in comments and commit logs. * v1: NVIDIA Turing GPU [1] has hardware support for USB Type-C and VirtualLink [2]. The Turing GPU is a multi-function PCI device which has the following four functions: - VGA display controller (Function 0) - Audio controller (Function 1) - USB xHCI Host controller (Function 2) - USB Type-C USCI controller (Function 3) Currently NVIDIA and Nouveau GPU drivers only manage function 0. Rest of the functions are managed by other drivers. These functions internally in the hardware are tightly coupled. When function 0 goes in runtime suspended state, then it will do power gating for most of the hardware blocks. Some of these hardware blocks are used by the other PCI functions, which leads to functional failure. In the mainline kernel, the device link is present between function 0 and function 1. This patch series deals with creating a similar kind of device link between function 0 and functions 2 and 3. [1] https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf [2] https://en.wikipedia.org/wiki/VirtualLink Abhishek Sahu (2): PCI: Code reorganization for creating device link PCI: Create device link for NVIDIA GPU drivers/pci/quirks.c | 79 +++++++++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 20 deletions(-) -- 2.17.1