From patchwork Tue Jul 11 13:43:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118552 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp514321vqm; Tue, 11 Jul 2023 07:18:15 -0700 (PDT) X-Google-Smtp-Source: APBJJlEqygKUb//zTXJ7AWh5w6O7tRLwM6Ofq/FZMHen3UBGWTiKqU65EL4xWAP19rnmyxbmAXOC X-Received: by 2002:a17:906:190:b0:993:f276:9696 with SMTP id 16-20020a170906019000b00993f2769696mr12921637ejb.35.1689085094726; Tue, 11 Jul 2023 07:18:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689085094; cv=none; d=google.com; s=arc-20160816; b=FUmBoMJA9gkzisnezZL3x/o2lvHySJkgpGlt29fwecDnh5/a94sskfqB/G3/NM4koR K36xAHgvtoG1CiHp9KBDXUPzQCzfzkBkb2Qr/XZH+NHPmQLUm6M927Y7tadi0z1EOYVe TauuYgLayTHZiNvt81Ddb1ABw5Jw/959ne4UIdks6wESnf9ZdUAzdWjofUVaciehlF1C Qjx2YOsDLdtq4U6H8ioMO7k6ztaE3b1KpV9wdGt3DksXpOu3rBDdjeMtrBtpM2ybUit2 ggmPN/Bgw8qZXzVkgKxhtzBRnMNhvnLUXzcpLWxn+0TGoGd/HgUMhZh3MYCBB1p9kTT6 gIQA== 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 :dkim-signature; bh=L3CqUWHTXt9YKLludIAE9Vu171FOQTMffySfHpYiVKE=; fh=mPLudXazWHXuRn33OJZws77TcHNozXxFZkkMA7UPdMc=; b=YNzC+wceTCHQIHimdV0gQCpjorTpz1dS+AZCVmSBRbn0kykSLQCWXUgq/AkreI2OrG jLBywYtDeRKVZdUnIQyqH/X/GZrUFCNh20Av78dQ1Ddj5VN5bEAtb/nmvPniBfGmLOg9 YATwbXqkCbZWfP+B/tHtfXf1hO4FH06ZsgEfrM+kXLHQYk7mzkjfvfRVVTwEtTGH+OrS U1lJNTt9UN46HspY0rn59oEGiMxvTjPGx+4L0hNdcDGNskLo1i+wt00EbeFJ+Gxbo1eB D4oVTq9Dt3xYHWDEKaUrr9BuJA9duyPdwm1su3tweXC+jxjQdxB7eoTopi5qZEgDXrMn ye7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b=fcBxJpIJ; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mb8-20020a170906eb0800b0099315b29a1bsi2460004ejb.1036.2023.07.11.07.17.51; Tue, 11 Jul 2023 07:18:14 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b=fcBxJpIJ; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232199AbjGKNoV (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232148AbjGKNoQ (ORCPT ); Tue, 11 Jul 2023 09:44:16 -0400 Received: from out-53.mta0.migadu.com (out-53.mta0.migadu.com [IPv6:2001:41d0:1004:224b::35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F97EB4 for ; Tue, 11 Jul 2023 06:44:14 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=L3CqUWHTXt9YKLludIAE9Vu171FOQTMffySfHpYiVKE=; b=fcBxJpIJRhiscx1vIK5FMhSholu/3p1hXgZdlU86GIbegLlF9G850UJbnAlh8vANzd4fqV 5jprtVv2MLw91RL8jmD71CiyJc3VlyD5cbrlfluy8NLW29BHMoptpNXsO4kUBtoZzM0t+L Y2z1WOMp0CDuW52i3c0+kTnp1Y2VXaU= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng , Andi Shyti Subject: [PATCH 1/6] PCI/VGA: Use unsigned type for the io_state variable Date: Tue, 11 Jul 2023 21:43:49 +0800 Message-Id: <20230711134354.755966-2-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable 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: INBOX X-GMAIL-THRID: 1771134092350913830 X-GMAIL-MSGID: 1771134092350913830 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 Reviewed-by: Andi Shyti --- 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 5a696078b382..c1bc6c983932 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -77,7 +77,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 Tue Jul 11 13:43:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118547 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp513382vqm; Tue, 11 Jul 2023 07:16:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlHZUmgkjNQWm7btM8N7o125g2TjSZUbCt+ES1batBLGsUX4ZSWWDvhGpyT9BjYhLY8lcfa3 X-Received: by 2002:a2e:9b4f:0:b0:2b7:2ea:2e27 with SMTP id o15-20020a2e9b4f000000b002b702ea2e27mr12467063ljj.19.1689085017369; Tue, 11 Jul 2023 07:16:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689085017; cv=none; d=google.com; s=arc-20160816; b=NvsML1Yeylw9dLBHk0lcmEA6+16mHNlIDXV6UnBRoFBEiBBrF4nCzCfaGJ3PsPLbI9 U8vjg9nQDRLDr2hA80eHFPUogT1Xd0W0aiJ23rooIl/68wLiv6uEfw0lrvZoQptOgUHy TfeyCVCQq3DH64mx0dhZrI2jUpvnzGd9JZhrZFoDm0ZDmr0eVNG30UiIxNtja4LVNHTt BWYud15dthZoYLY0iPV9Xy+vo2UA41K/DghJNDqbJMEPB1cCCj7lSGqGZqYJxiR2vSgg AJULkwfDz2u+w0kLlqDaY8qroEY3IShbTID9i/f6z+wqgscli8a/F+jnUdUKGqNQ4zCG lRfg== 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 :dkim-signature; bh=EDDNh+sBHMY69JnXGN2eCCl56IIKvpnc8EX4QusViis=; fh=HPOCflBxkeIkREouPoqvOiAgA7SPpLpP20zyZ5199dE=; b=06cuHlo1nlNtgYup83nUOIguzuWM74Ey+fVu3CcP5O/LyyDsW9pyTpWalyV2xBMPZi sNH+9cVL93R/UA56TqqIGo4KZEmJPP8V/2sYCyQVSnT55tA7wurOU1I8AU0cAXGf0Tts n66fbiYfCWj7bXM/d+fDuyYm21Kgj0YRArEgrgIMpEkPsTDxDvTq+OYFFtHcbNG+X5Wk PnWuduc/x+jN5lTzoVyPwQuACp3J1U43b23/EwJPwYnF9pYq11gcPca5DZhMdejD068B fGmimUVI/B92uQwwi/Nu6vvM5OUUddy+izrd/p1eYyMM/lyt+S1kBmZX6VjoxQlO9TPv 80IQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b=WUckSHg0; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w11-20020a1709064a0b00b00992e14a0107si2144276eju.246.2023.07.11.07.16.32; Tue, 11 Jul 2023 07:16:57 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b=WUckSHg0; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232450AbjGKNoX (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232224AbjGKNoT (ORCPT ); Tue, 11 Jul 2023 09:44:19 -0400 Received: from out-2.mta0.migadu.com (out-2.mta0.migadu.com [91.218.175.2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E30510D4 for ; Tue, 11 Jul 2023 06:44:18 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EDDNh+sBHMY69JnXGN2eCCl56IIKvpnc8EX4QusViis=; b=WUckSHg09hEzPNeV04y0qZK1g3Jy9t7p1rUsytc1VIEpkXvlHG61+vjN0q3AnCCGgpqhSs Ev+jicQte07i3NBYujTu9tcXWwIGZPveSSOVVHCEoNbZomNXUMlxpmz14wyegvfITmsQed 7l+nv0PlzbWeGIJCvkQ9zw0SS77e7K0= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng , Mario Limonciello Subject: [PATCH 2/6] PCI/VGA: Deal with PCI VGA compatible devices only Date: Tue, 11 Jul 2023 21:43:50 +0800 Message-Id: <20230711134354.755966-3-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1771134011311495757 X-GMAIL-MSGID: 1771134011311495757 From: Sui Jingfeng Currently, vgaarb only cares about PCI VGA-compatible class devices. While vga_arbiter_del_pci_device() gets called unbalanced when some PCI device is about to be removed. This happens even during the boot process. Another reason is that the vga_arb_device_init() function is not efficient. Since we only care about VGA-compatible devices (pdev->class == 0x030000), We could filter the unqualified devices out in the vga_arb_device_init() function. While the current implementation is to search all PCI devices in a system, this is not necessary. Reviewed-by: Mario Limonciello Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index c1bc6c983932..021116ed61cb 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -754,10 +754,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) { @@ -1502,6 +1498,10 @@ static int pci_notify(struct notifier_block *nb, unsigned long action, vgaarb_dbg(dev, "%s\n", __func__); + /* Deal with VGA compatible devices only */ + 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 * cases of hotplugable vga cards. */ @@ -1534,8 +1534,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) @@ -1543,13 +1543,14 @@ 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 */ - pdev = NULL; - while ((pdev = - pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_ANY_ID, pdev)) != NULL) - vga_arbiter_add_pci_device(pdev); + /* + * We add all PCI VGA compatible devices in the arbiter by default + */ + do { + pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev); + if (pdev) + vga_arbiter_add_pci_device(pdev); + } while (pdev); pr_info("loaded\n"); return rc; From patchwork Tue Jul 11 13:43:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118545 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp512847vqm; Tue, 11 Jul 2023 07:16:18 -0700 (PDT) X-Google-Smtp-Source: APBJJlHxvJ4brzGc+nHEDRDiNuYfknBxYZVWgF/UI0w2YcxBmqmR6mdRgrafz+aB4A4PtHTo/+4l X-Received: by 2002:a17:906:7492:b0:994:1fb7:b8ed with SMTP id e18-20020a170906749200b009941fb7b8edmr1038050ejl.1.1689084978620; Tue, 11 Jul 2023 07:16:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689084978; cv=none; d=google.com; s=arc-20160816; b=UWJI5FVZAmwooOoMLxvAGD94aHx8i+Qq32e8kwZ+Y9hlv9L5uwkEBFFv3P1MLIVRWQ +BcmYyKjv1psf/yE0P1WYyj/g1/BCUmoFo8L6ibUoBwsHaQBhXGA6cVppO9DegbhlzDK Chck9x4oM08zIDtT0mMRhjbrviIP3+AkoloGJJ/y6B0KWTwkQPbJZjdn5Fyfac0sB5Bq eizXCMNMlDPiFE1KKfzFYN7Y3rgjmNcivpdnmNv8HlzSrUrLH/XkUpD6lHanJzGTzJAF yzV3oZHKuRC/4RyD8yyxka5wcZX6+Hnsq6MVnWxCfj9ZR43GT/HQYsl1JE/H590Coyt4 VplQ== 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 :dkim-signature; bh=nSELRnxi3WNW936UlC8GM9d7GKkUecfY1U1Y7wjl+uY=; fh=m90o3XbD+v5PtjaouMLofHD7GJu3dEeCXnfOfzea/Og=; b=X0Xf9wh5vuLGU4hetp1f7CxHczWeVBDTYnKpx/Z8/SPTHscMuwc/VnQU2AR9azpmz7 SkmHnp1OFl7W7Ygloz3fzQ9pW7p6BZK5hww5PQQGgnZfcwrIwjdYiTl3VF85MQVWjJ0v hREJguLW7Ntr7S08SDm0nhiC3SrVHWGOYoA8cWhDynfIHHuhiE2jnB2GSAHS3QNoqJuS EFnl2NuAmqu3/kV1RHAGZeiOq9vp2aqBycHofhVI6pixZHrOPcY63bn60HH46z2rEvPn BFodCpZAcM2ZU95gRGRU9MRireUMMIeBV6WR0pENtmJE1kduB15HqgREFPqK7klXgMEO JegA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b=xJyYazfc; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v15-20020a1709060b4f00b00991d97d8eb5si2192901ejg.145.2023.07.11.07.15.54; Tue, 11 Jul 2023 07:16:18 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b=xJyYazfc; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232714AbjGKNo0 (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232326AbjGKNoX (ORCPT ); Tue, 11 Jul 2023 09:44:23 -0400 Received: from out-26.mta0.migadu.com (out-26.mta0.migadu.com [IPv6:2001:41d0:1004:224b::1a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B05FAE6A for ; Tue, 11 Jul 2023 06:44:21 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nSELRnxi3WNW936UlC8GM9d7GKkUecfY1U1Y7wjl+uY=; b=xJyYazfcQNg5BkenFjHDBatlKKm0dhriClEVMtpSJ0VFseaNKgOJNiTxOUYiKr2cnh7/um z5uVCpJIXf9DPBH/tnLaP7PP4CYkNlRcgiB8Sgp3cf9dk1Aovox2BT0Ky6waQnsC7ENo6V Tlv9Vq/fuRA085J2lVe38D/l0AOB6/M= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng Subject: [PATCH 3/6] PCI/VGA: drop the inline of vga_update_device_decodes() function Date: Tue, 11 Jul 2023 21:43:51 +0800 Message-Id: <20230711134354.755966-4-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1771133970548559977 X-GMAIL-MSGID: 1771133970548559977 From: Sui Jingfeng The vga_update_device_decodes() function is NOT a trivial function, It is not performance critical either. So, drop the inline. This patch also make the parameter and argument consistent, use unsigned int type instead of the signed type to store the decode. Change the second argument of vga_update_device_decodes() function as 'unsigned int' type. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 021116ed61cb..668139f7c247 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -860,24 +860,24 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) return ret; } -/* this is called with the lock */ -static inline void vga_update_device_decodes(struct vga_device *vgadev, - int new_decodes) +/* This is called with the lock */ +static void vga_update_device_decodes(struct vga_device *vgadev, + unsigned int new_decodes) { struct device *dev = &vgadev->pdev->dev; - int old_decodes, decodes_removed, decodes_unlocked; + unsigned int old_decodes = vgadev->decodes; + unsigned int decodes_removed = ~new_decodes & old_decodes; + unsigned int decodes_unlocked = vgadev->locks & decodes_removed; - old_decodes = vgadev->decodes; - decodes_removed = ~new_decodes & old_decodes; - decodes_unlocked = vgadev->locks & decodes_removed; vgadev->decodes = new_decodes; - vgaarb_info(dev, "changed VGA decodes: olddecodes=%s,decodes=%s:owns=%s\n", - vga_iostate_to_str(old_decodes), - vga_iostate_to_str(vgadev->decodes), - vga_iostate_to_str(vgadev->owns)); + vgaarb_info(dev, + "VGA decodes changed: olddecodes=%s,decodes=%s:owns=%s\n", + vga_iostate_to_str(old_decodes), + vga_iostate_to_str(vgadev->decodes), + vga_iostate_to_str(vgadev->owns)); - /* if we removed locked decodes, lock count goes to zero, and release */ + /* If we removed locked decodes, lock count goes to zero, and release */ if (decodes_unlocked) { if (decodes_unlocked & VGA_RSRC_LEGACY_IO) vgadev->io_lock_cnt = 0; From patchwork Tue Jul 11 13:43:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118541 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp510887vqm; Tue, 11 Jul 2023 07:13:52 -0700 (PDT) X-Google-Smtp-Source: APBJJlFiBFekVwK9fpCluDu2CHGR8N5qaoYdyca56BZVX8nPh0kghWQJgcNd11DzkcTPBjZ3hxC7 X-Received: by 2002:a05:6512:3d0f:b0:4f8:7503:203f with SMTP id d15-20020a0565123d0f00b004f87503203fmr15443054lfv.48.1689084831762; Tue, 11 Jul 2023 07:13:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689084831; cv=none; d=google.com; s=arc-20160816; b=YYyb+gzTtX55ixupkIADX9EGyro31qfbVSLaE4voJF2y6GUISqb07UZSvybEz8U6Di +gG6hz+9Drb3o4XnfzfQAYVQK+1s2H8CFnshSQmu/Nlu/qEwaFAWf6LyjGCHC1zo64d+ 8xXIZLqFz84tSYxCElHjgAcVVWF9BG2xLim4F+E13W+5btZXq4toQ0hItmnpjgN2Y1md LFqX4C+PJ8wRvakHHlQSEQPt+cp08yuwCQyFuleJ/8n/5ScktKsiHSJxOBbZqIdeqlXR po9bsbDU+I1h7frHubPhvnwDiR71Rk3XQH21FhitdS7K2YfLXU8d5+PxJLHR2PD1gBMC brdA== 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 :dkim-signature; bh=NIy4iyC9nuH2OGqIfvEGjD1H7yPmKE3hN2OnCkSSwos=; fh=m90o3XbD+v5PtjaouMLofHD7GJu3dEeCXnfOfzea/Og=; b=kktT4I+IZrWPZsQESveyTHrxBwbt5NJg2sfX+Tke3jl4SZ1gSh6BkFLgmtjm1doyEh WUW556t8OvDdRcVCofzBPF1iofz/RLLZC3LVyiKSz7sgJ+MFTICwNEk+UvcwESaabZ5T h6PaaI60qGKfXQOYkDeK4h6zpii3pJ1zdnYMwPOqxSwClKhbnd1nZ2Crf8TRpXdcP/N/ rk+GttXrvieXUK6eB80CaSQJOLfD6gulDxnrV5YmOiB0+fC2LMKY835jXGV+BbhDrmEy swzwmVBkuB94ysIfrYVD+LClOirtDF5F0yeLVThGxn71r3igkHZq/96UOxQoy3gAxvlH uA9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b=M5PbJsEa; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f3-20020a05640214c300b0051e23edcddcsi2015563edx.122.2023.07.11.07.13.26; Tue, 11 Jul 2023 07:13:51 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b=M5PbJsEa; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233046AbjGKNoi (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232223AbjGKNod (ORCPT ); Tue, 11 Jul 2023 09:44:33 -0400 Received: from out-5.mta0.migadu.com (out-5.mta0.migadu.com [91.218.175.5]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D6D11702; Tue, 11 Jul 2023 06:44:25 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NIy4iyC9nuH2OGqIfvEGjD1H7yPmKE3hN2OnCkSSwos=; b=M5PbJsEas/pXLhY4bwrSzQ/fEGUVORpMVmQVcHLy3OjgNETQPgCHeJLRfbT1A5TZr4ofaV dciq2+E7wwBjI1+3/pnGDRSITsSwsg8a3lf3w7+pXO+C1xXKSp248NOmqPKXo1bWwUIb/l Vf2D+/G31gJ7u+EAJbM2VTSEsHDQm6s= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng Subject: [PATCH 4/6] PCI/VGA: Move the new_state assignment out the loop Date: Tue, 11 Jul 2023 21:43:52 +0800 Message-Id: <20230711134354.755966-5-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1771133816239444354 X-GMAIL-MSGID: 1771133816239444354 From: Sui Jingfeng In the vga_arbiter_notify_clients() function, the value of the 'new_state' variable will be 'false' on systems that have more than one PCI VGA card. Its value will be 'true' on systems that have one or no PCI VGA compatible card. In other words, its value is not relevant to the iteration, so move the assignment () out of the loop. For a system with multiple video cards, this patch saves the redundant assignment. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 668139f7c247..4c448c758bab 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -1468,22 +1468,20 @@ static void vga_arbiter_notify_clients(void) { struct vga_device *vgadev; unsigned long flags; - uint32_t new_decodes; - bool new_state; + bool state; if (!vga_arbiter_used) return; + state = (vga_count > 1) ? false : true; + spin_lock_irqsave(&vga_lock, flags); list_for_each_entry(vgadev, &vga_list, list) { - if (vga_count > 1) - new_state = false; - else - new_state = true; if (vgadev->set_decode) { - new_decodes = vgadev->set_decode(vgadev->pdev, - new_state); - vga_update_device_decodes(vgadev, new_decodes); + unsigned int decodes; + + decodes = vgadev->set_decode(vgadev->pdev, state); + vga_update_device_decodes(vgadev, decodes); } } spin_unlock_irqrestore(&vga_lock, flags); From patchwork Tue Jul 11 13:43:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118539 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp496211vqm; Tue, 11 Jul 2023 06:56:03 -0700 (PDT) X-Google-Smtp-Source: APBJJlFopgEvFx7MRyaPxHvPrZQ0EPCLnTxUDFLJAWkgkLSoWtRsxKTDJAxEiCQIqluOP31vVmLa X-Received: by 2002:a2e:80c4:0:b0:2b6:9b2e:e352 with SMTP id r4-20020a2e80c4000000b002b69b2ee352mr13793577ljg.9.1689083762800; Tue, 11 Jul 2023 06:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689083762; cv=none; d=google.com; s=arc-20160816; b=JUSFDji8T3ctO4OLE0fGaFbhYi2iTP+fIMBra9qLtFq2ctNJ2isDC9VuEmYWurOhge nm9inxV6NR4YCR6wB+hn/VwxyMvu61DO844u+x00ccXwedUOkUqYfLMjY+6P43XTpnPi fhV02UGpqRUINWQVxI5/hzL48vII8zp94UaOB2ok9MPcL0WoX5Sxj6iDEDz2Q/UsSOiH Pq1PvKnRoW5+yrUlAO9+y/1l10PYXIqADCeNrg6K9sQCiENmnOVVjPeYnevGhrv4SaKa BIWhkJbNfF5ucVHCGTFTqyoucTkIFJespm2AKHG1Pc9Fz5urO5PWGvmgo42p2QpLwHzl z9MA== 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 :dkim-signature; bh=mioxRfgCnMktqf+NQsUyfBt/j0+e6Die7hiL78vySM4=; fh=mPLudXazWHXuRn33OJZws77TcHNozXxFZkkMA7UPdMc=; b=RodFrR9a0Pn+eKenIggU8Ntu72nzLZHRtO7iJPIxoLz6E9PZKefx/2BHY88vM1tLj2 IFH0RDcDIeGYE6WzLguT+VTxsDj3QVdzaz3sHIlP031lqq3B0NKqbE3f9k5JwvvmrPCa I1bW80UXFhRl9mR2ZSefpU9GQC0mlc42E8zMeplwUsHrMnu/WdAwykkA+d41iMHxVAfw gqeSwE5uh62QAgKeR6TQn9m6cAGERv15Q233vHE8MbJaXikBGKEkkynhqCX0DsP07Hlk gGhig7NY3j5VbR1DYp7+HWNZ94WMfrPoS2OTbryitZXIUhKj5CTW+hNYH0UgR3ImZDoK eiKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b="o50Rhqn/"; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oz9-20020a170906cd0900b009930371a03csi1872284ejb.1001.2023.07.11.06.55.37; Tue, 11 Jul 2023 06:56:02 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b="o50Rhqn/"; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232894AbjGKNon (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233070AbjGKNof (ORCPT ); Tue, 11 Jul 2023 09:44:35 -0400 Received: from out-60.mta0.migadu.com (out-60.mta0.migadu.com [IPv6:2001:41d0:1004:224b::3c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4632C10C7 for ; Tue, 11 Jul 2023 06:44:29 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083067; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mioxRfgCnMktqf+NQsUyfBt/j0+e6Die7hiL78vySM4=; b=o50Rhqn/rI6mD29wSKbzPZJYmt9e6fp/hpIvp/HD4IVCvtN3fDmCkP2BEa/TaEKZSqKiLH Ns1uoYMqYX+YwdgBtMJaUCNA/lUnk3WpAkQSycCOcVW30Ck/VGjsC+FlQbTcWdU7w1Rnjc wbexMQwyMoKXcI49fEi/HGLnzEuzIP0= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng , Andi Shyti Subject: [PATCH 5/6] PCI/VGA: Tidy up the code and comment format Date: Tue, 11 Jul 2023 21:43:53 +0800 Message-Id: <20230711134354.755966-6-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1771132695615101429 X-GMAIL-MSGID: 1771132695615101429 From: Sui Jingfeng This patch replaces the leading space with a tab and removes the double blank line and fix various typos, no functional change. Reviewed-by: Andi Shyti Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 101 ++++++++++++++++++++++++----------------- include/linux/vgaarb.h | 4 +- 2 files changed, 61 insertions(+), 44 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 4c448c758bab..bf96e085751d 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -32,10 +32,10 @@ #include #include - #include static void vga_arbiter_notify_clients(void); + /* * We keep a list of all vga devices in the system to speed * up the various operations of the arbiter @@ -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 */ @@ -79,8 +78,10 @@ static const char *vga_iostate_to_str(unsigned int iostate) 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 */ + /* + * We could in theory hand out locks on IO and mem + * separately to userspace but it can cause deadlocks + */ if (strncmp(buf, "none", 4) == 0) { *io_state = VGA_RSRC_NONE; return 1; @@ -99,7 +100,7 @@ static int vga_str_to_iostate(char *buf, int str_size, unsigned 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 */ @@ -193,14 +194,17 @@ int vga_remove_vgacon(struct pci_dev *pdev) #endif 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 */ +/* + * 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 + */ 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 */ + /* + * We should inform all GPUs in the system that + * vgaarb has occurred and to try and disable resources if they can + */ if (!vga_arbiter_used) { vga_arbiter_used = true; vga_arbiter_notify_clients(); @@ -216,7 +220,8 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, unsigned int pci_bits; u32 flags = 0; - /* Account for "normal" resources to lock. If we decode the legacy, + /* + * Account for "normal" resources to lock. If we decode the legacy, * counterpart, we need to request it as well */ if ((rsrc & VGA_RSRC_NORMAL_IO) && @@ -236,7 +241,8 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, if (wants == 0) goto lock_them; - /* We don't need to request a legacy resource, we just enable + /* + * We don't need to request a legacy resource, we just enable * appropriate decoding and go */ legacy_wants = wants & VGA_RSRC_LEGACY_MASK; @@ -252,7 +258,8 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, if (vgadev == conflict) continue; - /* We have a possible conflict. before we go further, we must + /* + * We have a possible conflict. before we go further, we must * check if we sit on the same bus as the conflicting device. * if we don't, then we must tie both IO and MEM resources * together since there is only a single bit controlling @@ -263,13 +270,15 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, lwants = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM; } - /* Check if the guy has a lock on the resource. If he does, + /* + * Check if the guy has a lock on the resource. If he does, * return the conflicting entry */ if (conflict->locks & lwants) return conflict; - /* Ok, now check if it owns the resource we want. We can + /* + * Ok, now check if it owns the resource we want. We can * lock resources that are not decoded, therefore a device * can own resources it doesn't decode. */ @@ -277,14 +286,16 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, if (!match) continue; - /* looks like he doesn't have a lock, we can steal + /* + * Looks like he doesn't have a lock, we can steal * them from him */ flags = 0; pci_bits = 0; - /* If we can't control legacy resources via the bridge, we + /* + * If we can't control legacy resources via the bridge, we * also need to disable normal decoding. */ if (!conflict->bridge_has_one_vga) { @@ -311,7 +322,8 @@ static struct vga_device *__vga_tryget(struct vga_device *vgadev, } enable_them: - /* ok dude, we got it, everybody conflicting has been disabled, let's + /* + * Ok dude, we got it, everybody conflicting has been disabled, let's * enable us. Mark any bits in "owns" regardless of whether we * decoded them. We can lock resources we don't decode, therefore * we must track them via "owns". @@ -353,7 +365,8 @@ static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) vgaarb_dbg(dev, "%s\n", __func__); - /* Update our counters, and account for equivalent legacy resources + /* + * Update our counters, and account for equivalent legacy resources * if we decode them */ if ((rsrc & VGA_RSRC_NORMAL_IO) && vgadev->io_norm_cnt > 0) { @@ -371,7 +384,8 @@ static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) if ((rsrc & VGA_RSRC_LEGACY_MEM) && vgadev->mem_lock_cnt > 0) vgadev->mem_lock_cnt--; - /* Just clear lock bits, we do lazy operations so we don't really + /* + * Just clear lock bits, we do lazy operations so we don't really * have to bother about anything else at this point */ if (vgadev->io_lock_cnt == 0) @@ -379,7 +393,8 @@ static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) if (vgadev->mem_lock_cnt == 0) vgadev->locks &= ~VGA_RSRC_LEGACY_MEM; - /* Kick the wait queue in case somebody was waiting if we actually + /* + * Kick the wait queue in case somebody was waiting if we actually * released something */ if (old_locks != vgadev->locks) @@ -447,8 +462,8 @@ int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible) if (conflict == NULL) break; - - /* We have a conflict, we wait until somebody kicks the + /* + * We have a conflict, we wait until somebody kicks the * work queue. Currently we have one work queue that we * kick each time some resources are released, but it would * be fairly easy to have a per device one so that we only @@ -665,7 +680,7 @@ static bool vga_is_boot_device(struct vga_device *vgadev) } /* - * vgadev has neither IO nor MEM enabled. If we haven't found any + * Vgadev has neither IO nor MEM enabled. If we haven't found any * other VGA devices, it is the best candidate so far. */ if (!boot_vga) @@ -706,7 +721,7 @@ static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) bus = same_bridge_vgadev->pdev->bus; bridge = bus->self; - /* see if the share a bridge with this device */ + /* See if the share a bridge with this device */ if (new_bridge == bridge) { /* * If their direct parent bridge is the same @@ -777,9 +792,10 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev) vgadev->decodes = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; - /* by default mark it as decoding */ + /* By default, mark it as decoding */ vga_decode_count++; - /* Mark that we "own" resources based on our enables, we will + /* + * Mark that we "own" resources based on our enables, we will * clear that below if the bridge isn't forwarding */ pci_read_config_word(pdev, PCI_COMMAND, &cmd); @@ -886,7 +902,7 @@ static void vga_update_device_decodes(struct vga_device *vgadev, __vga_put(vgadev, decodes_unlocked); } - /* change decodes counter */ + /* Change decodes counter */ if (old_decodes & VGA_RSRC_LEGACY_MASK && !(new_decodes & VGA_RSRC_LEGACY_MASK)) vga_decode_count--; @@ -910,14 +926,15 @@ static void __vga_set_legacy_decoding(struct pci_dev *pdev, if (vgadev == NULL) goto bail; - /* don't let userspace futz with kernel driver decodes */ + /* Don't let userspace futz with kernel driver decodes */ if (userspace && vgadev->set_decode) goto bail; - /* update the device decodes + counter */ + /* Update the device decodes + counter */ vga_update_device_decodes(vgadev, decodes); - /* XXX if somebody is going from "doesn't decode" to "decodes" state + /* + * XXX if somebody is going from "doesn't decode" to "decodes" state * here, additional care must be taken as we may have pending owner * ship of non-legacy region ... */ @@ -952,9 +969,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. @@ -984,7 +1001,6 @@ int vga_client_register(struct pci_dev *pdev, bail: spin_unlock_irqrestore(&vga_lock, flags); return ret; - } EXPORT_SYMBOL(vga_client_register); @@ -1075,7 +1091,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; @@ -1310,7 +1325,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user *buf, curr_pos += 7; remaining -= 7; pr_debug("client 0x%p called 'target'\n", priv); - /* if target is default */ + /* If target is default */ if (!strncmp(curr_pos, "default", 7)) pdev = pci_dev_get(vga_default_device()); else { @@ -1427,7 +1442,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; } @@ -1461,7 +1475,7 @@ static int vga_arb_release(struct inode *inode, struct file *file) } /* - * callback any registered clients to let them know we have a + * Callback any registered clients to let them know we have a * change in VGA cards */ static void vga_arbiter_notify_clients(void) @@ -1500,9 +1514,12 @@ static int pci_notify(struct notifier_block *nb, unsigned long action, if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA) return 0; - /* For now we're only intereted in devices added and removed. I didn't + /* + * For now we're only interested in devices added and removed. I didn't * test this thing here, so someone needs to double check for the - * cases of hotplugable vga cards. */ + * cases of hotplugable vga cards. + */ + if (action == BUS_NOTIFY_ADD_DEVICE) notify = vga_arbiter_add_pci_device(pdev); else if (action == BUS_NOTIFY_DEL_DEVICE) diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index b4b9137f9792..6d5465f8c3f2 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -96,7 +96,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 +111,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 Tue Jul 11 13:43:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 118551 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp514217vqm; Tue, 11 Jul 2023 07:18:04 -0700 (PDT) X-Google-Smtp-Source: APBJJlFuKbTpl1L4qU46KeKg1WdOKQLD9G1JYTwzk/lbZFSzl443ER35jf5Cav4PtKHZZqeJwQC0 X-Received: by 2002:a05:6402:68c:b0:51e:720:3ae7 with SMTP id f12-20020a056402068c00b0051e07203ae7mr16008816edy.3.1689085084215; Tue, 11 Jul 2023 07:18:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689085084; cv=none; d=google.com; s=arc-20160816; b=WGINnyD9nceHG64TDasFxI2OhedWQm1YdQpBIpMMCZE/Nalg2Maa9/vkvLfMiQegea KSyGKhKRE83UMCt9Z7s4JRti4qYwvM01OwEqqq+sVIFrTc/0UgJkTBPxFeEC2MLrdhS+ KkwkP7yYrCcfZubQDk5LTCy9uhK2PbVwpq6U2c4xc04MqXHPckdy9EcUsTPylh2RLwY+ YjAnMrUj1HLf2BoLfWh1S/LsqTct2Txg3ECZmzEabycPDFbxBqCNJpkIiUDemn8lIUhZ t4an4csJu+UbUvne0QjjrtCu9+DLrC79X8s+Gryw3HC+7zOu4yad/yuVWj512d40oEn8 uGPw== 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 :dkim-signature; bh=DWoBZLJp+WRsNPKYFTkwd45CHiaHZQHz4IBv9pNm0BI=; fh=mPLudXazWHXuRn33OJZws77TcHNozXxFZkkMA7UPdMc=; b=D4YYc39dBNtWDfueNU6NYzp9L3rg8iLY5bP8Z9uBVMxcKqMqW+ogC5+R2RjNCeI8wP bgxqAQIBzKVtRdaUSGVMq164VpTVtyDiLgAu3pQn+loeHBQzc860UtfkWNZKJZd2J5do Zw5CB9xHdYKaQudpyO/ZH8mkTX1BW8pZQtSc/QoUZBq108o5CkyorZobq+zRyqjYrX9P ivdUZ7edufJVwF8kO0PHcoqn68L+1HLXxYJntjO1kcutJ1MCwWJG2pBKFUqqvv3VY5GJ EgbW3XRDx3ePuI78tMf3a5V/+h3QRbxkWlqhdib4yJMLfvwiQ0JDv0LLEND5dEuHXYhW JloA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linux.dev header.s=key1 header.b=wsRa4v6j; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f3-20020a05640214c300b0051e23edcddcsi2015563edx.122.2023.07.11.07.17.40; Tue, 11 Jul 2023 07:18:04 -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; dkim=fail header.i=@linux.dev header.s=key1 header.b=wsRa4v6j; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233098AbjGKNow (ORCPT + 99 others); Tue, 11 Jul 2023 09:44:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230305AbjGKNon (ORCPT ); Tue, 11 Jul 2023 09:44:43 -0400 Received: from out-41.mta0.migadu.com (out-41.mta0.migadu.com [91.218.175.41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A30510EA for ; Tue, 11 Jul 2023 06:44:33 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689083071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DWoBZLJp+WRsNPKYFTkwd45CHiaHZQHz4IBv9pNm0BI=; b=wsRa4v6j1gxN6ltbHwxF6ug4vCi8/vZRSUTYS2O3eSkMAp3YdhrIHUidj6oGzXjR50H5Kx VAVmA965imEnh7Xy8fedRyKwSbeZ9qgs2vd7RmourgSM7ACCITBnBcX41lpiVFjMy3DiYi FnfMggWk3PCp1pf6LfzlCFt3/quhGBM= From: Sui Jingfeng To: Bjorn Helgaas , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Sui@vger.kernel.org, Jingfeng@loongson.cn Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, loongson-kernel@lists.loongnix.cn, Sui Jingfeng , Andi Shyti Subject: [PATCH 6/6] PCI/VGA: Replace full MIT license text with SPDX identifier Date: Tue, 11 Jul 2023 21:43:54 +0800 Message-Id: <20230711134354.755966-7-sui.jingfeng@linux.dev> In-Reply-To: <20230711134354.755966-1-sui.jingfeng@linux.dev> References: <20230711134354.755966-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1771134081672277917 X-GMAIL-MSGID: 1771134081672277917 From: Sui Jingfeng Per Documentation/process/license-rules.rst, the SPDX MIT identifier is equivalent to including the entire MIT license text from LICENSES/preferred/MIT. Replace the MIT license text with the equivalent SPDX identifier. Signed-off-by: Sui Jingfeng Reviewed-by: Andi Shyti --- include/linux/vgaarb.h | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 6d5465f8c3f2..97129a1bbb7d 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -1,3 +1,5 @@ +/* SPDX-License-Identifier: MIT */ + /* * The VGA aribiter manages VGA space routing and VGA resource decode to * allow multiple VGA devices to be used in a system in a safe way. @@ -5,27 +7,6 @@ * (C) Copyright 2005 Benjamin Herrenschmidt * (C) Copyright 2007 Paulo R. Zanoni * (C) Copyright 2007, 2009 Tiago Vignatti - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * 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. - * */ #ifndef LINUX_VGA_H