From patchwork Thu Jun 8 11:43:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng <15330273260@189.cn> X-Patchwork-Id: 104947 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp231758vqr; Thu, 8 Jun 2023 05:09:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5AXDLiUUYmAAWRY7xpKxlncnDg3weA+8/Fb9XSZrsp0PUsGGhmQqTEw07J+7rs48zhy47P X-Received: by 2002:a17:902:8546:b0:1ad:bb89:16f6 with SMTP id d6-20020a170902854600b001adbb8916f6mr3402077plo.50.1686226168951; Thu, 08 Jun 2023 05:09:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686226168; cv=none; d=google.com; s=arc-20160816; b=oVUmyII52ogcuq+JT/ErPV1O0QjznY5Tu7o6e8YFx/9t24FmQWZ/MvmOq7VRD3mZQL X9x4HXulkdhA66WK0ZiqaIWCH2BZYUa+9aMIvkRQZ9v3Q6Rx81m35MURj9qM2r6BfZzR E91pZ9ddxCilKwUFzvkBnSf5a3cyKLlaQwpYdkoYYNuKMspoRT36ygDPQHUKk0ztGO6X tbJJEFKPCYeNeqLjLLrQtY6MydyJV1MZIphLWfi/r9GJW2IrXg5h0OfGLg1ShYvfVfhA lBVPEdW43sYUEupeFw/LpldQNE1K0Y26QBG4DtbmtWnbzJ5+JufHccFj95OCqALQ3kVv FSbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :hmm_source_type:hmm_attache_num:hmm_source_ip; bh=PXo1VlFluWAD6JpcJLIKhcvHvgOZV4Bblo+xfcQ84H4=; b=kikIKJZWa7vB/LT9cX7MJuNz0mV8bViKcjtaDB6c2eyaJ44bA/C77xIb+zM+auNAMZ ADTCnbP7dY2S7mG+aXaZBQ+e8wREixeuxLp94SBzodB3L8ujdtLU52j+QAd4c3DyO8lt 0Tkx9l69nVoFvKS55icXc9m3fZ9E7kI3rYhfcyOs7NHsgeEHnGKCtHy0XEekh/H9jGpq GkbuQiuah68zodzDLSBuYWWNJ8HgaYVSSVG9al0NfqoOoGXQMpTDEQKgNStbbsDkxfzz zjAQLEb8YYMR7Kla9PAB+g3temPu7sgbGqqkexUGAx3L230mt0ek0ZAEu82P5IdjwmPS ppzg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q14-20020a17090311ce00b001a974fc86casi981981plh.592.2023.06.08.05.09.16; Thu, 08 Jun 2023 05:09:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236364AbjFHLni (ORCPT + 99 others); Thu, 8 Jun 2023 07:43:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233969AbjFHLng (ORCPT ); Thu, 8 Jun 2023 07:43:36 -0400 Received: from 189.cn (ptr.189.cn [183.61.185.103]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 57053210C; Thu, 8 Jun 2023 04:43:32 -0700 (PDT) HMM_SOURCE_IP: 10.64.8.41:48916.660287130 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-114.242.206.180 (unknown [10.64.8.41]) by 189.cn (HERMES) with SMTP id 615DE10029E; Thu, 8 Jun 2023 19:43:27 +0800 (CST) Received: from ([114.242.206.180]) by gateway-151646-dep-75648544bd-xwndj with ESMTP id e4cdf3a7b06f4b5690ebec352dc8a3cb for alexander.deucher@amd.com; Thu, 08 Jun 2023 19:43:31 CST X-Transaction-ID: e4cdf3a7b06f4b5690ebec352dc8a3cb X-Real-From: 15330273260@189.cn X-Receive-IP: 114.242.206.180 X-MEDUSA-Status: 0 Sender: 15330273260@189.cn From: Sui Jingfeng <15330273260@189.cn> To: Alex Deucher , Christian Konig , Pan Xinhui , David Airlie , Daniel Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Ben Skeggs , Karol Herbst , Lyude Paul , Bjorn Helgaas , Alex Williamson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Hawking Zhang , Mario Limonciello , Lijo Lazar , YiPeng Chai , Andrey Grodzovsky , Somalapuram Amaranath , Bokun Zhang , Ville Syrjala , Li Yi , Sui Jingfeng , Jason Gunthorpe , Kevin Tian , Cornelia Huck , Yishai Hadas , Abhishek Sahu , Yi Liu Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, loongson-kernel@lists.loongnix.cn Subject: [PATCH v3 1/4] PCI/VGA: tidy up the code and comment format Date: Thu, 8 Jun 2023 19:43:19 +0800 Message-Id: <20230608114322.604887-2-15330273260@189.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230608114322.604887-1-15330273260@189.cn> References: <20230608114322.604887-1-15330273260@189.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768136291502894029?= X-GMAIL-MSGID: =?utf-8?q?1768136291502894029?= From: Sui Jingfeng This patch replaces the leading space with a tab and removes the double blank line, no functional change. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 26 +++++++++++++------------- include/linux/vgaarb.h | 8 +++----- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 5a696078b382..bf2921e3cb06 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -61,7 +61,6 @@ static bool vga_arbiter_used; static DEFINE_SPINLOCK(vga_lock); static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); - static const char *vga_iostate_to_str(unsigned int iostate) { /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ @@ -80,7 +79,8 @@ static const char *vga_iostate_to_str(unsigned int iostate) static int vga_str_to_iostate(char *buf, int str_size, int *io_state) { /* we could in theory hand out locks on IO and mem - * separately to userspace but it can cause deadlocks */ + * separately to userspace but it can cause deadlocks + */ if (strncmp(buf, "none", 4) == 0) { *io_state = VGA_RSRC_NONE; return 1; @@ -99,7 +99,7 @@ static int vga_str_to_iostate(char *buf, int str_size, int *io_state) return 1; } -/* this is only used a cookie - it should not be dereferenced */ +/* This is only used as cookie, it should not be dereferenced */ static struct pci_dev *vga_default; /* Find somebody in our list */ @@ -194,13 +194,15 @@ int vga_remove_vgacon(struct pci_dev *pdev) EXPORT_SYMBOL(vga_remove_vgacon); /* If we don't ever use VGA arb we should avoid - turning off anything anywhere due to old X servers getting - confused about the boot device not being VGA */ + * turning off anything anywhere due to old X servers getting + * confused about the boot device not being VGA + */ static void vga_check_first_use(void) { /* we should inform all GPUs in the system that * VGA arb has occurred and to try and disable resources - * if they can */ + * if they can + */ if (!vga_arbiter_used) { vga_arbiter_used = true; vga_arbiter_notify_clients(); @@ -956,9 +958,9 @@ EXPORT_SYMBOL(vga_set_legacy_decoding); * @set_decode callback: If a client can disable its GPU VGA resource, it * will get a callback from this to set the encode/decode state. * - * Rationale: we cannot disable VGA decode resources unconditionally some single - * GPU laptops seem to require ACPI or BIOS access to the VGA registers to - * control things like backlights etc. Hopefully newer multi-GPU laptops do + * Rationale: we cannot disable VGA decode resources unconditionally, some + * single GPU laptops seem to require ACPI or BIOS access to the VGA registers + * to control things like backlights etc. Hopefully newer multi-GPU laptops do * something saner, and desktops won't have any special ACPI for this. The * driver will get a callback when VGA arbitration is first used by userspace * since some older X servers have issues. @@ -988,7 +990,6 @@ int vga_client_register(struct pci_dev *pdev, bail: spin_unlock_irqrestore(&vga_lock, flags); return ret; - } EXPORT_SYMBOL(vga_client_register); @@ -1079,7 +1080,6 @@ static int vga_pci_str_to_vars(char *buf, int count, unsigned int *domain, int n; unsigned int slot, func; - n = sscanf(buf, "PCI:%x:%x:%x.%x", domain, bus, &slot, &func); if (n != 4) return 0; @@ -1431,7 +1431,6 @@ static int vga_arb_open(struct inode *inode, struct file *file) priv->cards[0].io_cnt = 0; priv->cards[0].mem_cnt = 0; - return 0; } @@ -1544,7 +1543,8 @@ static int __init vga_arb_device_init(void) bus_register_notifier(&pci_bus_type, &pci_notifier); /* We add all PCI devices satisfying VGA class in the arbiter by - * default */ + * default + */ pdev = NULL; while ((pdev = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index b4b9137f9792..d36225c582ee 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -23,9 +23,7 @@ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS - * IN THE SOFTWARE. - * + * DEALINGS IN THE SOFTWARE. */ #ifndef LINUX_VGA_H @@ -96,7 +94,7 @@ static inline int vga_client_register(struct pci_dev *pdev, static inline int vga_get_interruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 1); + return vga_get(pdev, rsrc, 1); } /** @@ -111,7 +109,7 @@ static inline int vga_get_interruptible(struct pci_dev *pdev, static inline int vga_get_uninterruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 0); + return vga_get(pdev, rsrc, 0); } static inline void vga_client_unregister(struct pci_dev *pdev) From patchwork Thu Jun 8 11:43:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng <15330273260@189.cn> X-Patchwork-Id: 104950 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp241284vqr; Thu, 8 Jun 2023 05:23:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6W1cfN4wXTmC6x4Sz1F1jheCsc7XlQsjKey84nkO28JJ2pW32TNn58FXUJ/FVQ0gpWlwsQ X-Received: by 2002:a17:90a:cc3:b0:255:fe76:d13c with SMTP id 3-20020a17090a0cc300b00255fe76d13cmr2285331pjt.15.1686227025391; Thu, 08 Jun 2023 05:23:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686227025; cv=none; d=google.com; s=arc-20160816; b=vM6VP+LKIePXAWlkgvCTYZq97yjgmScI7sR6HKnkxBneYDkE4ibC2ZgJgW6tRWq+C6 qeCgDN0GFG5puiEvXpXK2duHHd90PMQi8s11gdQo66ikwgmv03lz5cZ3vn6XF/E2pe42 I+0mDqB9SKJYzW0YR8JbsaZgL6nHrGEQvKEKeT001B69nKJBkDUa7WcVQiyh4PcV/PZw stP+WSG8Ex0wuzdsQGbD52Kc5HVd9RQEZxfgnbohkFBSUXTGvukL6+dXVnSyvNdu7Ksn Zll2+pNnKGQ45ocTrkwlwrjAFWjQwVnA5NsTqlYYGismwfkV1GbxleJUMJ+uSgn2BEGF Ie8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :hmm_source_type:hmm_attache_num:hmm_source_ip; bh=vLGHWg9dzpC3BbwFC8G0tsb5xLtGsnU/QKBjwOhHuqU=; b=v/lOFXrylLnxdWXHgIjM27NB0jYaiAOdJWHD7GgINZT7rEVA5AbUF+ji17yrCvelvA ivDc0Jn1UwFfDpndbukmueG8/BTSIAF0HYdIZYgb4gEYdbHYr/NeG8/UiQw/GO1bVbDU I/VdG49C97pLaebTqMZMCEi9068u3suDD7Cvu0P2/YnaFOymEwqY93gyq04qJ1uAn5Vg ynadxFUT8X9uc42/AR57NVZoNP0+TdEDP+9KAc0dNVUTsgmZEJz8LwNJK8xRaAYye/3U CnMu+e8GKMH221x8kxgZYba8Zxw6p1qa2Kbo9hH+NjfWOCeORo9rtoRD7FYp7Z0aQKL5 LdLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d6-20020a17090a564600b00250c9a70af9si975749pji.63.2023.06.08.05.23.30; Thu, 08 Jun 2023 05:23:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236423AbjFHLno (ORCPT + 99 others); Thu, 8 Jun 2023 07:43:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236356AbjFHLnj (ORCPT ); Thu, 8 Jun 2023 07:43:39 -0400 Received: from 189.cn (ptr.189.cn [183.61.185.103]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E181B1FF7; Thu, 8 Jun 2023 04:43:35 -0700 (PDT) HMM_SOURCE_IP: 10.64.8.41:48916.660287130 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-114.242.206.180 (unknown [10.64.8.41]) by 189.cn (HERMES) with SMTP id 02CCC1002A1; Thu, 8 Jun 2023 19:43:31 +0800 (CST) Received: from ([114.242.206.180]) by gateway-151646-dep-75648544bd-xwndj with ESMTP id 9c387853f0974dd996c75b62ed780623 for alexander.deucher@amd.com; Thu, 08 Jun 2023 19:43:35 CST X-Transaction-ID: 9c387853f0974dd996c75b62ed780623 X-Real-From: 15330273260@189.cn X-Receive-IP: 114.242.206.180 X-MEDUSA-Status: 0 Sender: 15330273260@189.cn From: Sui Jingfeng <15330273260@189.cn> To: Alex Deucher , Christian Konig , Pan Xinhui , David Airlie , Daniel Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Ben Skeggs , Karol Herbst , Lyude Paul , Bjorn Helgaas , Alex Williamson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Hawking Zhang , Mario Limonciello , Lijo Lazar , YiPeng Chai , Andrey Grodzovsky , Somalapuram Amaranath , Bokun Zhang , Ville Syrjala , Li Yi , Sui Jingfeng , Jason Gunthorpe , Kevin Tian , Cornelia Huck , Yishai Hadas , Abhishek Sahu , Yi Liu Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, loongson-kernel@lists.loongnix.cn Subject: [PATCH v3 2/4] PCI/VGA: Use unsigned type for the io_state variable Date: Thu, 8 Jun 2023 19:43:20 +0800 Message-Id: <20230608114322.604887-3-15330273260@189.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230608114322.604887-1-15330273260@189.cn> References: <20230608114322.604887-1-15330273260@189.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768137189316439334?= X-GMAIL-MSGID: =?utf-8?q?1768137189316439334?= From: Sui Jingfeng The io_state variable in the vga_arb_write() function is declared with unsigned int type, while the vga_str_to_iostate() function takes int * type. To keep them consistent, replace the third argument of vga_str_to_iostate() function with the unsigned int * type. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index bf2921e3cb06..7f0347f4f6fd 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -76,7 +76,7 @@ static const char *vga_iostate_to_str(unsigned int iostate) return "none"; } -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) +static int vga_str_to_iostate(char *buf, int str_size, unsigned int *io_state) { /* we could in theory hand out locks on IO and mem * separately to userspace but it can cause deadlocks From patchwork Thu Jun 8 11:43:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng <15330273260@189.cn> X-Patchwork-Id: 104945 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp228999vqr; Thu, 8 Jun 2023 05:05:37 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6URBdP1m9mCinq3u2qd/u9+VRtaRzjER+jTEcLko4o52g68GbbJLc2FUG+SJG9LyvGfBlV X-Received: by 2002:a17:90b:23d1:b0:253:74f8:1e31 with SMTP id md17-20020a17090b23d100b0025374f81e31mr7078311pjb.39.1686225936800; Thu, 08 Jun 2023 05:05:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686225936; cv=none; d=google.com; s=arc-20160816; b=kFn8URG+8ZyjC/OJP4GpTwdmK11pll1ADQNpLuCwWyv11Jc0V1nkoMTCvr1GQgsNjg 4ua1sAglmCK1Atf4ObaArc4mdc7UbQJmcsKonAvG5SOuCTaKUwKxXJNL/7IQEXFMpSOR w9fwQ1WsHHBVOlT+WcuHB6OKj/LtHU1hdYnKLb9qJopseWucFOOtIgD3FsKV6j8z2AUu TrEAEMJZWAvaBqIYmp+ch76vpOLNi5c1CG6XulxJsFFxiLTfWTeFDtaPb56AcRP/WgyU F5HVq1oh2eA/eOmi/NBPU9BpKfXzQ2Q6aHSIbc77OASjgVMo3j/rV0PWnH4fV5qY+nyr 3PIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :hmm_source_type:hmm_attache_num:hmm_source_ip; bh=4R3N8k9NeCzZGoVzdhd0fwtNFcJ7xwElurykvOQ12e8=; b=OyXPb7LM+4nhz4wg6aN38ov0s7r0u5bQTaoILSu6Zbx/iVVJs1XEdQuOPA1ww7YsK1 +jsvVKTZMJmEuu98QWNl0gDhs2yKmU4ykW94cVdMWvjj+gRymy69mQ/+2HHHkzauVnCF wF7d4BGIBwTM3lrsfNmlz3vf4WCyo/grLBPfol9f5e4BE27+iymzL3ndER4dbL09P/i/ dee/Uu+pJscZTXQwadWwFCbeVY6T4rdZ/MhJ0GFcV7Br2OGW1FblEDm/FxnksFFhk6yn Y74tLyUVjlwvzkkGu3aGzCRpEdCsFnOM3hIBBOHXBFzs1CbTTdK01NfS+w4AlJ+/Byta RUeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p14-20020a17090a348e00b002472cd8ded6si2674355pjb.103.2023.06.08.05.05.04; Thu, 08 Jun 2023 05:05:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236476AbjFHLnu (ORCPT + 99 others); Thu, 8 Jun 2023 07:43:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236406AbjFHLnl (ORCPT ); Thu, 8 Jun 2023 07:43:41 -0400 Received: from 189.cn (ptr.189.cn [183.61.185.103]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7CB692700; Thu, 8 Jun 2023 04:43:39 -0700 (PDT) HMM_SOURCE_IP: 10.64.8.41:48916.660287130 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-114.242.206.180 (unknown [10.64.8.41]) by 189.cn (HERMES) with SMTP id CC14D1002A6; Thu, 8 Jun 2023 19:43:35 +0800 (CST) Received: from ([114.242.206.180]) by gateway-151646-dep-75648544bd-xwndj with ESMTP id 2966c463e9d240d7a1935434913645a0 for alexander.deucher@amd.com; Thu, 08 Jun 2023 19:43:38 CST X-Transaction-ID: 2966c463e9d240d7a1935434913645a0 X-Real-From: 15330273260@189.cn X-Receive-IP: 114.242.206.180 X-MEDUSA-Status: 0 Sender: 15330273260@189.cn From: Sui Jingfeng <15330273260@189.cn> To: Alex Deucher , Christian Konig , Pan Xinhui , David Airlie , Daniel Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Ben Skeggs , Karol Herbst , Lyude Paul , Bjorn Helgaas , Alex Williamson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Hawking Zhang , Mario Limonciello , Lijo Lazar , YiPeng Chai , Andrey Grodzovsky , Somalapuram Amaranath , Bokun Zhang , Ville Syrjala , Li Yi , Sui Jingfeng , Jason Gunthorpe , Kevin Tian , Cornelia Huck , Yishai Hadas , Abhishek Sahu , Yi Liu Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, loongson-kernel@lists.loongnix.cn Subject: [PATCH v3 3/4] PCI/VGA: only deal with VGA class devices Date: Thu, 8 Jun 2023 19:43:21 +0800 Message-Id: <20230608114322.604887-4-15330273260@189.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230608114322.604887-1-15330273260@189.cn> References: <20230608114322.604887-1-15330273260@189.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768136047922070947?= X-GMAIL-MSGID: =?utf-8?q?1768136047922070947?= From: Sui Jingfeng vgaarb only deal with the VGA devcie(pdev->class == 0x0300), so replace the pci_get_subsys() function with pci_get_class(). Filter the non pci display device out. There no need to process the non display PCI device. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 7f0347f4f6fd..b0bf4952a95d 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -756,10 +756,6 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev) struct pci_dev *bridge; u16 cmd; - /* Only deal with VGA class devices */ - if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA) - return false; - /* Allocate structure */ vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL); if (vgadev == NULL) { @@ -1499,7 +1495,9 @@ static int pci_notify(struct notifier_block *nb, unsigned long action, struct pci_dev *pdev = to_pci_dev(dev); bool notify = false; - vgaarb_dbg(dev, "%s\n", __func__); + /* Only deal with VGA class devices */ + if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA) + return 0; /* For now we're only intereted in devices added and removed. I didn't * test this thing here, so someone needs to double check for the @@ -1509,6 +1507,8 @@ static int pci_notify(struct notifier_block *nb, unsigned long action, else if (action == BUS_NOTIFY_DEL_DEVICE) notify = vga_arbiter_del_pci_device(pdev); + vgaarb_dbg(dev, "%s: action = %lu\n", __func__, action); + if (notify) vga_arbiter_notify_clients(); return 0; @@ -1533,8 +1533,8 @@ static struct miscdevice vga_arb_device = { static int __init vga_arb_device_init(void) { + struct pci_dev *pdev = NULL; int rc; - struct pci_dev *pdev; rc = misc_register(&vga_arb_device); if (rc < 0) @@ -1545,11 +1545,13 @@ static int __init vga_arb_device_init(void) /* We add all PCI devices satisfying VGA class in the arbiter by * default */ - pdev = NULL; - while ((pdev = - pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_ANY_ID, pdev)) != NULL) + while (1) { + pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev); + if (!pdev) + break; + vga_arbiter_add_pci_device(pdev); + }; pr_info("loaded\n"); return rc; From patchwork Thu Jun 8 11:43:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng <15330273260@189.cn> X-Patchwork-Id: 104952 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp241422vqr; Thu, 8 Jun 2023 05:24:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4YCUtq9cKzy8cHCVn1GOn0ON/FhpT5HpKmM/0ubBsGpWUPDuW4r7kWMvuVGucIj12hmjMj X-Received: by 2002:a17:90a:ac8:b0:259:9b63:b234 with SMTP id r8-20020a17090a0ac800b002599b63b234mr3496835pje.15.1686227041958; Thu, 08 Jun 2023 05:24:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686227041; cv=none; d=google.com; s=arc-20160816; b=eznZdW1TzCrMeEG9vEt8Env/3RUO9P96Tnvg0wvdEcCyIVCI1dl1AZkK0TAxaZqIqN T9vsLYq8tXvj6aHQ0Z0wAK+9bA8sNrdgK3/0wSmqIRbKUCXXQ1UEvEmJSYhA/jWNxFER 7efT3JBt4hbOihD7W+Ma3dA0HAp9o3oD5vh2bAmRshglaGFet7WpFDV9J3tZQzqbGKAC Xpmppj0bx7tkTZG6ONB3YqjoaqIVRavmFKjRR2IHGczRL0uVhhN/LYyuK5yVsF/4qxSB jwD852haAhfi5ymiAdUuWh9XIsKfWrkQwmudjkRM8BncvpYtQQ8h8do0ItQj2EueP/sl 3OcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :hmm_source_type:hmm_attache_num:hmm_source_ip; bh=YT7MpuXTiNB5jCQHRCklXohLV0YF5UKex0xJnDJY1uk=; b=Sdv2vegiqUJKvaLlTdNRwtb8rO8Ovgn8YFjJN+R8mG85QJcvorYGcKj5L2vgb60+j+ S5gOJoaplakPBUMloI5+qAFO44g7tuF3QV4b9gANRiseB5jWX2DCYfqF3vdSrQiuTUFQ W2yfMGtgGQ63KiNGtjLFSNAPL09+mLt1kK1lhF3FlkEGK2p5hTaC9huVdWAgDx/fMw2f yeeKfnGXIByXtjY0M+31Sq5jL/sQ6XKrtO+dkMgCIZVY+npFKZEO9mTHrUISNazQKXDG iRJ6ppZSdfDS+velRTNkwIYZ+Cdk6Fh0M0oCEyF5j20IOLJ7amh1QAY/CbqANp+ZUZIx T+TQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r11-20020a17090a454b00b002563fbb8a85si994406pjm.111.2023.06.08.05.23.47; Thu, 08 Jun 2023 05:24:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236491AbjFHLoA (ORCPT + 99 others); Thu, 8 Jun 2023 07:44:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58420 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236445AbjFHLns (ORCPT ); Thu, 8 Jun 2023 07:43:48 -0400 Received: from 189.cn (ptr.189.cn [183.61.185.103]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1DF75E6C; Thu, 8 Jun 2023 04:43:43 -0700 (PDT) HMM_SOURCE_IP: 10.64.8.41:48916.660287130 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-114.242.206.180 (unknown [10.64.8.41]) by 189.cn (HERMES) with SMTP id 7246D1002AF; Thu, 8 Jun 2023 19:43:38 +0800 (CST) Received: from ([114.242.206.180]) by gateway-151646-dep-75648544bd-xwndj with ESMTP id be5be8aede204d31a3c846f914d94a56 for alexander.deucher@amd.com; Thu, 08 Jun 2023 19:43:42 CST X-Transaction-ID: be5be8aede204d31a3c846f914d94a56 X-Real-From: 15330273260@189.cn X-Receive-IP: 114.242.206.180 X-MEDUSA-Status: 0 Sender: 15330273260@189.cn From: Sui Jingfeng <15330273260@189.cn> To: Alex Deucher , Christian Konig , Pan Xinhui , David Airlie , Daniel Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Ben Skeggs , Karol Herbst , Lyude Paul , Bjorn Helgaas , Alex Williamson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Hawking Zhang , Mario Limonciello , Lijo Lazar , YiPeng Chai , Andrey Grodzovsky , Somalapuram Amaranath , Bokun Zhang , Ville Syrjala , Li Yi , Sui Jingfeng , Jason Gunthorpe , Kevin Tian , Cornelia Huck , Yishai Hadas , Abhishek Sahu , Yi Liu Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, loongson-kernel@lists.loongnix.cn Subject: [PATCH v3 4/4] PCI/VGA: introduce is_boot_device function callback to vga_client_register Date: Thu, 8 Jun 2023 19:43:22 +0800 Message-Id: <20230608114322.604887-5-15330273260@189.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230608114322.604887-1-15330273260@189.cn> References: <20230608114322.604887-1-15330273260@189.cn> MIME-Version: 1.0 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768135045281111929?= X-GMAIL-MSGID: =?utf-8?q?1768137207081211715?= From: Sui Jingfeng The vga_is_firmware_default() function is arch-dependent, which doesn't sound right. At least, it also works on the Mips and LoongArch platforms. Tested with the drm/amdgpu and drm/radeon drivers. However, it's difficult to enumerate all arch-driver combinations. I'm wrong if there is only one exception. With the observation that device drivers typically have better knowledge about which PCI bar contains the firmware framebuffer, which could avoid the need to iterate all of the PCI BARs. But as a PCI function at pci/vgaarb.c, vga_is_firmware_default() is probably not suitable to make such an optimization for a specific device. There are PCI display controllers that don't have a dedicated VRAM bar, this function will lose its effectiveness in such a case. Luckily, the device driver can provide an accurate workaround. Therefore, this patch introduces a callback that allows the device driver to tell the VGAARB if the device is the default boot device. This patch only intends to introduce the mechanism, while the implementation is left to the device driver authors. Also honor the comment: "Clients have two callback mechanisms they can use" Signed-off-by: Sui Jingfeng --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +- drivers/gpu/drm/i915/display/intel_vga.c | 3 +-- drivers/gpu/drm/nouveau/nouveau_vga.c | 2 +- drivers/gpu/drm/radeon/radeon_device.c | 2 +- drivers/pci/vgaarb.c | 22 ++++++++++++++++++---- drivers/vfio/pci/vfio_pci_core.c | 2 +- include/linux/vgaarb.h | 8 +++++--- 7 files changed, 28 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 5c7d40873ee2..7a096f2d5c16 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -3960,7 +3960,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, /* this will fail for cards that aren't VGA class devices, just * ignore it */ if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA) - vga_client_register(adev->pdev, amdgpu_device_vga_set_decode); + vga_client_register(adev->pdev, amdgpu_device_vga_set_decode, NULL); px = amdgpu_device_supports_px(ddev); diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c index 286a0bdd28c6..98d7d4dffe9f 100644 --- a/drivers/gpu/drm/i915/display/intel_vga.c +++ b/drivers/gpu/drm/i915/display/intel_vga.c @@ -115,7 +115,6 @@ intel_vga_set_decode(struct pci_dev *pdev, bool enable_decode) int intel_vga_register(struct drm_i915_private *i915) { - struct pci_dev *pdev = to_pci_dev(i915->drm.dev); int ret; @@ -127,7 +126,7 @@ int intel_vga_register(struct drm_i915_private *i915) * then we do not take part in VGA arbitration and the * vga_client_register() fails with -ENODEV. */ - ret = vga_client_register(pdev, intel_vga_set_decode); + ret = vga_client_register(pdev, intel_vga_set_decode, NULL); if (ret && ret != -ENODEV) return ret; diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c index f8bf0ec26844..162b4f4676c7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c @@ -92,7 +92,7 @@ nouveau_vga_init(struct nouveau_drm *drm) return; pdev = to_pci_dev(dev->dev); - vga_client_register(pdev, nouveau_vga_set_decode); + vga_client_register(pdev, nouveau_vga_set_decode, NULL); /* don't register Thunderbolt eGPU with vga_switcheroo */ if (pci_is_thunderbolt_attached(pdev)) diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index afbb3a80c0c6..71f2ff39d6a1 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c @@ -1425,7 +1425,7 @@ int radeon_device_init(struct radeon_device *rdev, /* if we have > 1 VGA cards, then disable the radeon VGA resources */ /* this will fail for cards that aren't VGA class devices, just * ignore it */ - vga_client_register(rdev->pdev, radeon_vga_set_decode); + vga_client_register(rdev->pdev, radeon_vga_set_decode, NULL); if (rdev->flags & RADEON_IS_PX) runtime = true; diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index b0bf4952a95d..d3dab61e0ef2 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -53,6 +53,7 @@ struct vga_device { bool bridge_has_one_vga; bool is_firmware_default; /* device selected by firmware */ unsigned int (*set_decode)(struct pci_dev *pdev, bool decode); + bool (*is_boot_device)(struct pci_dev *pdev); }; static LIST_HEAD(vga_list); @@ -614,10 +615,17 @@ static bool vga_is_boot_device(struct vga_device *vgadev) if (boot_vga && boot_vga->is_firmware_default) return false; - if (vga_is_firmware_default(pdev)) { - vgadev->is_firmware_default = true; + /* + * Ask the device driver first, if registered. Fallback to the + * default implement if the callback is non-exist. + */ + if (vgadev->is_boot_device) + vgadev->is_firmware_default = vgadev->is_boot_device(pdev); + else + vgadev->is_firmware_default = vga_is_firmware_default(pdev); + + if (vgadev->is_firmware_default) return true; - } /* * A legacy VGA device has MEM and IO enabled and any bridges @@ -954,6 +962,10 @@ EXPORT_SYMBOL(vga_set_legacy_decoding); * @set_decode callback: If a client can disable its GPU VGA resource, it * will get a callback from this to set the encode/decode state. * + * @is_boot_device: callback to the device driver, query if a client is the + * default boot device, as the device driver typically has better knowledge + * if specific device is the boot device. But this callback is optional. + * * Rationale: we cannot disable VGA decode resources unconditionally, some * single GPU laptops seem to require ACPI or BIOS access to the VGA registers * to control things like backlights etc. Hopefully newer multi-GPU laptops do @@ -969,7 +981,8 @@ EXPORT_SYMBOL(vga_set_legacy_decoding); * Returns: 0 on success, -1 on failure */ int vga_client_register(struct pci_dev *pdev, - unsigned int (*set_decode)(struct pci_dev *pdev, bool decode)) + unsigned int (*set_decode)(struct pci_dev *pdev, bool decode), + bool (*is_boot_device)(struct pci_dev *pdev)) { int ret = -ENODEV; struct vga_device *vgadev; @@ -981,6 +994,7 @@ int vga_client_register(struct pci_dev *pdev, goto bail; vgadev->set_decode = set_decode; + vgadev->is_boot_device = is_boot_device; ret = 0; bail: diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index a5ab416cf476..2a8873a330ba 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -2067,7 +2067,7 @@ static int vfio_pci_vga_init(struct vfio_pci_core_device *vdev) if (ret) return ret; - ret = vga_client_register(pdev, vfio_pci_set_decode); + ret = vga_client_register(pdev, vfio_pci_set_decode, NULL); if (ret) return ret; vga_set_legacy_decoding(pdev, vfio_pci_set_decode(pdev, false)); diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index d36225c582ee..66fe80ffad76 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -50,7 +50,8 @@ struct pci_dev *vga_default_device(void); void vga_set_default_device(struct pci_dev *pdev); int vga_remove_vgacon(struct pci_dev *pdev); int vga_client_register(struct pci_dev *pdev, - unsigned int (*set_decode)(struct pci_dev *pdev, bool state)); + unsigned int (*set_decode)(struct pci_dev *pdev, bool state), + bool (*is_boot_device)(struct pci_dev *pdev)); #else /* CONFIG_VGA_ARB */ static inline void vga_set_legacy_decoding(struct pci_dev *pdev, unsigned int decodes) @@ -76,7 +77,8 @@ static inline int vga_remove_vgacon(struct pci_dev *pdev) return 0; } static inline int vga_client_register(struct pci_dev *pdev, - unsigned int (*set_decode)(struct pci_dev *pdev, bool state)) + unsigned int (*set_decode)(struct pci_dev *pdev, bool state), + bool (*is_boot_device)(struct pci_dev *pdev)) { return 0; } @@ -114,7 +116,7 @@ static inline int vga_get_uninterruptible(struct pci_dev *pdev, static inline void vga_client_unregister(struct pci_dev *pdev) { - vga_client_register(pdev, NULL); + vga_client_register(pdev, NULL, NULL); } #endif /* LINUX_VGA_H */