From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDBFB1B5EB5; Fri, 20 Jun 2025 02:50:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387802; cv=none; b=Wqk4px1bY3E26qzLHZKSNvjzAitX9N08GZPQbrDvqfhm6+uEV8IaihM2nRjmdr3/pZizqfibY2x03YyT+C5M0K5i1qNskg5waOHngZOzL5tW2AOJDKvzmlgu/3YpAjrcitfgcS3imyfPqk2cNIRsSTR1irgxHlB8fnbpzWr/f5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387802; c=relaxed/simple; bh=dwUS0NNQBo6ioFvBv9MvL8ShjmESObZeByXZvWYMJKk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MKdDK3tdSMb46GtuYsD8h8eE9dk8Je5XD216ovp9Go0lAkGs0m605npjrCJjBnkojca/x/XegwUj6CMhNVR7cmBFGjhqXBihI42vrMzxkSlq5Is+x6El1Ltk2qk96cu4LL5x9C9ijqD4p9w1sLLOcqzscLcuWrhY07XkXx2ZOLc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=S5eMEaVx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="S5eMEaVx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 171DFC4CEF0; Fri, 20 Jun 2025 02:50:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387802; bh=dwUS0NNQBo6ioFvBv9MvL8ShjmESObZeByXZvWYMJKk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S5eMEaVxgF6txdm4vtGRsHjfa187clMuzbb7RyDkJvhG9ytlzIHxdMPQMDvaCRMyF k3kbmtGJIx/Dw3x6wNYXGQtjOVfa0MJEfjJfKGYLMXpO9sevsDhCzLmWcN5VR09BO7 Hw5Bq/N+1TUPCaohwxvPbT+cB7D7YvWHCgOnQ1IawQt4WkoqfyLbOnKG2gtRMtr4O1 1xSDfo4Zqyges6lQDtyHHvqhVJI3mDnZbOmZ+KNMWWjvHmagR3l2sggLK7VOD9RJVZ wlA+Ed4ApaqraFxNxpt7ldfKtefWB02TbNb5lh1ldFHWlsoJpZzQm4WYzVXuALKKwp VmaGadYzYXC1g== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello , Simona Vetter Subject: [PATCH v3 1/7] PCI: Add helper for checking if a PCI device is a display controller Date: Thu, 19 Jun 2025 21:49:37 -0500 Message-ID: <20250620024943.3415685-2-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello Several places in the kernel do class shifting to match whether a PCI device is display class. Introduce a helper for those places to use. Reviewed-by: Daniel Dadap Reviewed-by: Simona Vetter Signed-off-by: Mario Limonciello --- include/linux/pci.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/linux/pci.h b/include/linux/pci.h index 05e68f35f3923..e77754e43c629 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -744,6 +744,21 @@ static inline bool pci_is_vga(struct pci_dev *pdev) return false; } =20 +/** + * pci_is_display - Check if a PCI device is a display controller + * @pdev: Pointer to the PCI device structure + * + * This function determines whether the given PCI device corresponds + * to a display controller. Display controllers are typically used + * for graphical output and are identified based on their class code. + * + * Return: true if the PCI device is a display controller, false otherwise. + */ +static inline bool pci_is_display(struct pci_dev *pdev) +{ + return (pdev->class >> 16) =3D=3D PCI_BASE_CLASS_DISPLAY; +} + #define for_each_pci_bridge(dev, bus) \ list_for_each_entry(dev, &bus->devices, bus_list) \ if (!pci_is_bridge(dev)) {} else --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98BFA137923; Fri, 20 Jun 2025 02:50:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387807; cv=none; b=a6yl2rwpQfB68WoyGB3dF8P1gFBLjbxNd3/H5TlVgutmPkjla/WHYAEcp6UGZZG6bvTFRUj7La7+ASRJuv+Wn3uzycIEqYEYG6xqstAaS7LmBmgFgKoO8y6slDZzOY2qjA/oNf4a5/ZaeUM4Pi32ThX/mCvsg79IhakaBQk8VA0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387807; c=relaxed/simple; bh=ZUEaBNdA8Lm5/HmaCro4bOIyTqXr2dVXogleY25ibLU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kb1icdg+b2xk2YkQtBxscZu+AfVZSniGyyox2O/j1bBp15aTdZCtf1KUgxoP1j3yGEO0c9zp0KG6EoTYupwp29/lQtSjsqhRep8E/TfRGuHC6G8deWIRaw4WCkLdOuopf1Buxnb7EJHk2v9C62L+apSHYpAApvbdGXOBa0Hewbc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LRZbz5Eb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LRZbz5Eb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D7EAC4CEF1; Fri, 20 Jun 2025 02:50:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387805; bh=ZUEaBNdA8Lm5/HmaCro4bOIyTqXr2dVXogleY25ibLU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LRZbz5EbCeC7e088SP07B+UomuNsEYpTA6mmPktnFMPgd5kXKx++tqicojyekhQNd Ac8I9+qBDuL4pdA0Y77VR4i/CFk2teNF1xFluFyXp2rFgRMqftm5UsI3htiZgmqImA FCd0kA3ZhfawJtAW2Gl3++5CI/9nrfw4+ylnIHkU+iqC2XZ0yFpZ9i3Ub7Y/p7RsF0 /YJ71NZDLLGJ3CIT7Tlm18CNxjqAunuTcYVFUs7sNWiS3HyfYsfYzh1uailMcmPny8 PZ59Gw2/kgpTMmw4hpcyKB0ZS0E8E+rXbMNyELu0OXpzI+gNQ8p6ixjocxsAdaBve1 xPSv56bj5ENEQ== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello , Simona Vetter , Bjorn Helgaas Subject: [PATCH v3 2/7] vfio/pci: Use pci_is_display() Date: Thu, 19 Jun 2025 21:49:38 -0500 Message-ID: <20250620024943.3415685-3-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello The inline pci_is_display() helper does the same thing. Use it. Acked-by: Alex Williamson Reviewed-by: Daniel Dadap Reviewed-by: Simona Vetter Suggested-by: Bjorn Helgaas Signed-off-by: Mario Limonciello --- drivers/vfio/pci/vfio_pci_igd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/vfio/pci/vfio_pci_igd.c b/drivers/vfio/pci/vfio_pci_ig= d.c index ef490a4545f48..988b6919c2c31 100644 --- a/drivers/vfio/pci/vfio_pci_igd.c +++ b/drivers/vfio/pci/vfio_pci_igd.c @@ -437,8 +437,7 @@ static int vfio_pci_igd_cfg_init(struct vfio_pci_core_d= evice *vdev) =20 bool vfio_pci_is_intel_display(struct pci_dev *pdev) { - return (pdev->vendor =3D=3D PCI_VENDOR_ID_INTEL) && - ((pdev->class >> 16) =3D=3D PCI_BASE_CLASS_DISPLAY); + return (pdev->vendor =3D=3D PCI_VENDOR_ID_INTEL) && pci_is_display(pdev); } =20 int vfio_pci_igd_init(struct vfio_pci_core_device *vdev) --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 193951BEF77; Fri, 20 Jun 2025 02:50:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387808; cv=none; b=USL6+VePthOVAj+sS5Ly/6EW0jNX+tsnP/63EiaitXZdgjWHLXghhOBNGFouN5fTcSywwI6D+JgXUzSRsxwCgkZ01xkQyo8tvvYLgWgmEo3Idgn9xttrnYR6Pxa9Wuda0YKfC9CAYdPN5ZbTgLKijDXnLQFbxtJFGPXQb9TabpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387808; c=relaxed/simple; bh=LQvOsrvAxtIF9zfBp3smdp/HiFPvr9jOTvuEZPP26Xw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ibyg/OaDdrrPV10LTHkH9vXY3iJJYQie0xtaf2RfGhEqMhLx0Ih59JYPgIfCP1+ZhnX2fzb40Aa0TndD+mKDZT3v5/Difk37Ot/RMKVYHXRFq87j3RhawZmXSZhJbtdVHUGWC5TWYnHzPZSsXIGBUJvZEPYsRTf+iMTu+DcZmoY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PGBUm2o7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PGBUm2o7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 457AEC4CEED; Fri, 20 Jun 2025 02:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387807; bh=LQvOsrvAxtIF9zfBp3smdp/HiFPvr9jOTvuEZPP26Xw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PGBUm2o7UvmWDftzQ+LVu6cMrhulZSKHNUe84Dbu27J14PKOOuuTNyjzs13xz+Apf F30BNj1fZTKmiklG5XIaUVFcyOcuwlrIMp8RgH/hTdVCR33IM+ZCztDH/XFeol9X3N P9oUARiymvmBxQuQLmX000HfLX/sfOm01TzSi1WN6UbYsfYZmrecDo80OORpi1n+Tm KmYcN3eAfn+51ulB91oDr1ZrUp1tKVM04gJvwCHBAPgwSk2HA1oST+iVjoiMBCEmGz i87RO7bbzQFdCVMFfkB7WXjfrrykrKbUPbTrt3tLXDCYXaHIuXaksnsUAluIwRfKK5 /6f7JSBTKbPAw== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello , Simona Vetter , Bjorn Helgaas Subject: [PATCH v3 3/7] vga_switcheroo: Use pci_is_display() Date: Thu, 19 Jun 2025 21:49:39 -0500 Message-ID: <20250620024943.3415685-4-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello The inline pci_is_display() helper does the same thing. Use it. Reviewed-by: Daniel Dadap Reviewed-by: Simona Vetter Suggested-by: Bjorn Helgaas Signed-off-by: Mario Limonciello --- drivers/gpu/vga/vga_switcheroo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switche= roo.c index 18f2c92beff8e..68e45a26e85f7 100644 --- a/drivers/gpu/vga/vga_switcheroo.c +++ b/drivers/gpu/vga/vga_switcheroo.c @@ -437,7 +437,7 @@ find_active_client(struct list_head *head) */ bool vga_switcheroo_client_probe_defer(struct pci_dev *pdev) { - if ((pdev->class >> 16) =3D=3D PCI_BASE_CLASS_DISPLAY) { + if (pci_is_display(pdev)) { /* * apple-gmux is needed on pre-retina MacBook Pro * to probe the panel if pdev is the inactive GPU. --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 618681F4CB7; Fri, 20 Jun 2025 02:50:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387810; cv=none; b=GjcoyDSMkia6J3S56upqdOP3YJJrIHzGzIeKQJn94DOuVLHrqHrZnjyJdufKS2WJmyVB+HOnGHhdmyOjJdeydQIdZT5dtilLeGNhZC8Xtlu+7Nx5pq3BRaaWyFLrWnm3y5VvVogNCKN07bKuWOb2e3q0PKgme30abAce/Bp+/H0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387810; c=relaxed/simple; bh=Ih+h2iwqvMjgBNiHK36GhUh+ba0wYl7IY7LdJr3tFyA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZhTEssFjLOx524VZVRpr95REmk1eoTDKg3RBFSOhMCnq5+K6ijV/t8jgUEoy/wGld7Asli+PeDPaGIiVnZTDbYh/miVNDS9WVEV8+L2QzphsUvXU9cnipv48MK6NfiCP2+T80bZiprpzycYVDh/DQwU38GmoQc81iqu4sJUmNIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=E7DqYkxD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="E7DqYkxD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD1C4C4CEF0; Fri, 20 Jun 2025 02:50:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387810; bh=Ih+h2iwqvMjgBNiHK36GhUh+ba0wYl7IY7LdJr3tFyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E7DqYkxDp5yEsLNjurdGHq8o9w8fL2aUk0QqJVKB2CQTqimuHTJNZrZj/tw2n5Nem OQxMwMeb1KzMDZhMXy9EnSddk7iUr8mvJFP2RYWpbuGV5l1mAXE2I5ZsC8mmI745Fc qIJsw0Ouk0ylFiQtECSETcrX5jSzfxVCipEFI8hHlH5uBIA4O1++CWRb+xJQit63qY TiY2J/ozFNd2uQJUrByLhXJ3jwD/+TfW7KhQOhHG0Yx5Mw/DXI75cTGN7VZphprAjg rblzh1CiXjM2jq3ZmRxADm31/DXQIDNS4XlC68FMiGa5Y+jRdff7LlOJlFh7Tn5j3v XEKeeFCtNbznA== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello , Simona Vetter , Bjorn Helgaas Subject: [PATCH v3 4/7] iommu/vt-d: Use pci_is_display() Date: Thu, 19 Jun 2025 21:49:40 -0500 Message-ID: <20250620024943.3415685-5-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello The inline pci_is_display() helper does the same thing. Use it. Reviewed-by: Daniel Dadap Reviewed-by: Simona Vetter Suggested-by: Bjorn Helgaas Signed-off-by: Mario Limonciello --- drivers/iommu/intel/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 7aa3932251b2f..17267cd476ce7 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -34,7 +34,7 @@ #define ROOT_SIZE VTD_PAGE_SIZE #define CONTEXT_SIZE VTD_PAGE_SIZE =20 -#define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) =3D=3D PCI_BASE_CLASS_DIS= PLAY) +#define IS_GFX_DEVICE(pdev) pci_is_display(pdev) #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) =3D=3D PCI_CLASS_SERIAL_US= B) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) =3D=3D PCI_CLASS_BRIDGE_IS= A) #define IS_AZALIA(pdev) ((pdev)->vendor =3D=3D 0x8086 && (pdev)->device = =3D=3D 0x3a3e) --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5974720468C; Fri, 20 Jun 2025 02:50:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387813; cv=none; b=O8pC/ptmrcVyG3dlIlOJN826Z48lpR8LYNaAQuWO+WgdLhzE9UkUF6/08VQkj7oOcwwFXAeFEa3fyd2KLRzqmcssnl0PcZkjpxA/12H0D3qrQezXodvGglMzRb4PmoDevtn8EML9Qgn09pvrSabb5v/4ryh+OcZ+q0a7ZtAfU0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387813; c=relaxed/simple; bh=jA4gnuDewWS3532FipQUrqJVwhvNJ+77h1lJRVOGOrk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BFMQZPDtXMpj0QS1CPBzjp3DHWQwDHPGXTLeKwAyybVrmOqvD5mN66PUoD2pQD6VJ/BG9MSPeDIlz4UU6/eXyBWh9CTKxDQAdn1RhgNyDM5T2nhyVjpX1FqwaBZP4gqpj6RKsTulAa+BhZVXtDhyX7nQOOHoEBDfHMF5xoozrNY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IbBeR8cF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IbBeR8cF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F376C4CEF1; Fri, 20 Jun 2025 02:50:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387812; bh=jA4gnuDewWS3532FipQUrqJVwhvNJ+77h1lJRVOGOrk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IbBeR8cFe6L6Pbvn5/KtK5CD0n69p9F8D5s21I6kaHf+GBexLVXDE9IZdi9rVwJl9 gAzk4PG4eeDskwJ+xrQOoOW/a0LSaZp7W+9VPqTgV5PaR2dLiQIhWvt+Fon3UJDIc0 6uhDpRTTnoSpwSwDb1JBlo9B1kpWh+u+eRzQfNPaKmDQCUfuJ41Xbw1gbTtzU/glRB DNLTKxKdibrBOjRJPrG1inwhp8YrDwoAKf2EO35YDnCuXLl4gsfk1nK+xxjih3quSq JbW2aoLII3Y4EW2b0AByXyRAYkxld5gV4R9LcksGFQbLXzA+inR9CeU2OU/3sFawHm i2aPGY11Nh/AA== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello , Simona Vetter , Bjorn Helgaas Subject: [PATCH v3 5/7] ALSA: hda: Use pci_is_display() Date: Thu, 19 Jun 2025 21:49:41 -0500 Message-ID: <20250620024943.3415685-6-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello The inline pci_is_display() helper does the same thing. Use it. Reviewed-by: Daniel Dadap Reviewed-by: Simona Vetter Suggested-by: Bjorn Helgaas Signed-off-by: Mario Limonciello Reviewed-by: Takashi Iwai --- sound/hda/hdac_i915.c | 2 +- sound/pci/hda/hda_intel.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/hda/hdac_i915.c b/sound/hda/hdac_i915.c index e9425213320ea..44438c799f957 100644 --- a/sound/hda/hdac_i915.c +++ b/sound/hda/hdac_i915.c @@ -155,7 +155,7 @@ static int i915_gfx_present(struct pci_dev *hdac_pci) =20 for_each_pci_dev(display_dev) { if (display_dev->vendor !=3D PCI_VENDOR_ID_INTEL || - (display_dev->class >> 16) !=3D PCI_BASE_CLASS_DISPLAY) + !pci_is_display(display_dev)) continue; =20 if (pci_match_id(denylist, display_dev)) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index e5210ed48ddf1..a165c44b43940 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1465,7 +1465,7 @@ static struct pci_dev *get_bound_vga(struct pci_dev *= pci) * the dGPU is the one who is involved in * vgaswitcheroo. */ - if (((p->class >> 16) =3D=3D PCI_BASE_CLASS_DISPLAY) && + if (pci_is_display(p) && (atpx_present() || apple_gmux_detect(NULL, NULL))) return p; pci_dev_put(p); @@ -1477,7 +1477,7 @@ static struct pci_dev *get_bound_vga(struct pci_dev *= pci) p =3D pci_get_domain_bus_and_slot(pci_domain_nr(pci->bus), pci->bus->number, 0); if (p) { - if ((p->class >> 16) =3D=3D PCI_BASE_CLASS_DISPLAY) + if (pci_is_display(p)) return p; pci_dev_put(p); } --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F0271CDFCE; Fri, 20 Jun 2025 02:50:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387815; cv=none; b=uIe/0lYmkPx22BTF+ZqJfVl04POcdMST81lyDOmoCtBfsuTYj+tBxl3wiPVT69FcR2kB4loOSm4d6xVL3C60vFsq60Vl6jOCXYwqWD3ZZef+3qA8VFFeQUbRCOG8380Yyf7LjEqrvvBWFSvhdf0yLFXZ1ynI7WBvlU25O53zRhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387815; c=relaxed/simple; bh=3p28D7Y3qB/a1iedwXKmlAJI9k/uZvQfOe5/sAZS+Bc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O34szSdNcK261l6urcKKWExCLITlUPn6uc3rqs566cFad/eX9GCd/ghVuGbh5gRgyWMRzWYSgzEYuUPeY3zvSpnTClXNxvgW/AwdRYLu/PbTtM0uSi2McvHwES8gL4zXf+9CLZM1HoLgdkzDcgT7PbiMil4ru0OxwQa8DchODYY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aUQrUNUx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aUQrUNUx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2655BC4CEF2; Fri, 20 Jun 2025 02:50:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387815; bh=3p28D7Y3qB/a1iedwXKmlAJI9k/uZvQfOe5/sAZS+Bc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aUQrUNUxvi8UFb1sY0dg90IN1qGuBcN8u3AViEPwz6aTI1p7Xdsv74Wja0UAGdmzt MtJ6eayVuxOZgXimT15Sgii4QnReuEy/UEX/jjM5ph1k/y4dERJbdCv+PKOisK71ba ujQvtnDs5wkQOROVnuUYhN0NWyYDgn5dkvHjz/O0wm0dvYVvHyLkz5mi1HK6xyroMY pC5hY7ooqfYj1czzp1TSm6kpxKu/8WszuTrmG8cVqJ1+F7OJmy0pGA+RisJrFkDjTT Ap9OKSFksFQECQRvRVJyfji3hX0gWJViLqGtYGVst2b7UABhqwADVKHSHiM4gOyvEM 0GsdauK6EkfKA== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello Subject: [PATCH v3 6/7] PCI/VGA: Move check for firmware default out of VGA arbiter Date: Thu, 19 Jun 2025 21:49:42 -0500 Message-ID: <20250620024943.3415685-7-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello The x86 specific check for whether a framebuffer belongs to a device works for display devices as well as VGA devices. Callers to video_is_primary_device() can benefit from checking non-VGA display devices. Move the x86 specific check into x86 specific code, and adjust VGA arbiter to call that code as well. This allows fbcon to find the right PCI device on systems that don't have VGA devices. Suggested-by: Thomas Zimmermann Signed-off-by: Mario Limonciello --- arch/x86/video/video-common.c | 28 +++++++++++++++++++++++++++ drivers/pci/vgaarb.c | 36 ++--------------------------------- 2 files changed, 30 insertions(+), 34 deletions(-) diff --git a/arch/x86/video/video-common.c b/arch/x86/video/video-common.c index 81fc97a2a837a..718116e35e450 100644 --- a/arch/x86/video/video-common.c +++ b/arch/x86/video/video-common.c @@ -9,6 +9,7 @@ =20 #include #include +#include #include =20 #include @@ -27,13 +28,40 @@ EXPORT_SYMBOL(pgprot_framebuffer); =20 bool video_is_primary_device(struct device *dev) { + u64 base =3D screen_info.lfb_base; + u64 size =3D screen_info.lfb_size; struct pci_dev *pdev; + struct resource *r; + u64 limit; =20 if (!dev_is_pci(dev)) return false; =20 pdev =3D to_pci_dev(dev); =20 + if (!pci_is_display(pdev)) + return false; + + /* Select the device owning the boot framebuffer if there is one */ + if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE) + base |=3D (u64)screen_info.ext_lfb_base << 32; + + limit =3D base + size; + + /* Does firmware framebuffer belong to us? */ + pci_dev_for_each_resource(pdev, r) { + if (resource_type(r) !=3D IORESOURCE_MEM) + continue; + + if (!r->start || !r->end) + continue; + + if (base < r->start || limit >=3D r->end) + continue; + + return true; + } + return (pdev =3D=3D vga_default_device()); } EXPORT_SYMBOL(video_is_primary_device); diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 78748e8d2dbae..15ab58c70b016 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -26,12 +26,12 @@ #include #include #include -#include #include #include #include #include #include +#include =20 static void vga_arbiter_notify_clients(void); =20 @@ -554,38 +554,6 @@ void vga_put(struct pci_dev *pdev, unsigned int rsrc) } EXPORT_SYMBOL(vga_put); =20 -static bool vga_is_firmware_default(struct pci_dev *pdev) -{ -#if defined(CONFIG_X86) - u64 base =3D screen_info.lfb_base; - u64 size =3D screen_info.lfb_size; - struct resource *r; - u64 limit; - - /* Select the device owning the boot framebuffer if there is one */ - - if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE) - base |=3D (u64)screen_info.ext_lfb_base << 32; - - limit =3D base + size; - - /* Does firmware framebuffer belong to us? */ - pci_dev_for_each_resource(pdev, r) { - if (resource_type(r) !=3D IORESOURCE_MEM) - continue; - - if (!r->start || !r->end) - continue; - - if (base < r->start || limit >=3D r->end) - continue; - - return true; - } -#endif - return false; -} - static bool vga_arb_integrated_gpu(struct device *dev) { #if defined(CONFIG_ACPI) @@ -623,7 +591,7 @@ static bool vga_is_boot_device(struct vga_device *vgade= v) if (boot_vga && boot_vga->is_firmware_default) return false; =20 - if (vga_is_firmware_default(pdev)) { + if (video_is_primary_device(&pdev->dev)) { vgadev->is_firmware_default =3D true; return true; } --=20 2.43.0 From nobody Thu Oct 9 04:52:45 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 675F1218ADC; Fri, 20 Jun 2025 02:50:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387818; cv=none; b=FcfFB0uGLwhHU2PYtSX6c6kHI4Y+pHoLVC9NO1zU2p2eV4qF4ppzp2jubzc0d7Y3d2MVztyMzzx2tplp8I57rVahs1mnwjswgu98S86y67EqJlEBDloBONg48T/bmthYcYuo2Nj7jUGBPPml1gcxm0Yr9+lN3OOAEdNx7xLxa9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750387818; c=relaxed/simple; bh=klJlszl08GEvhj7kAFdQZmJniKnIexv1qYhrTfixYqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l50lqKNgSXupmtNFYRYds8mfLTj2iVd2qHoIrorwKFzFgpjIJIzgmEHEzh+L8gsSHGs4hwAb9DBrnjSZzQsl4grzQGXz7PPRYEqMlPt9/Dh76CBKhBvf2ndypVFYAMW7Bplay9Hbguf/1djyRwryZ5LVV1TpUvFu0kmhtgdsmdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=naIyrRPL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="naIyrRPL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADD48C4CEF1; Fri, 20 Jun 2025 02:50:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750387817; bh=klJlszl08GEvhj7kAFdQZmJniKnIexv1qYhrTfixYqU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=naIyrRPLeY2lvdbu5xv1/dFUU8Zqa7AM0VH0zT/DdWK8tthyBzVRvimPKtfoyYjsf SQl6Sr9yMGCeMz7yRvwr4BUHETBWncZVp/I7i40NUYUB+7SMi3irgX3KG/6f6FHCek bpupS2Y9yn4SwsMVlOc1EBsU4yHxrMLEER3DMaGs2giiJt9gjbPZhgY/YNukW6xadH ALg/fHc0XA9/HFgwygPKLOI6vJmbkR1YZVlRx77+d4asemrgs0nGcO1yGaI/z6TxEP CSQFdVsyA0aLxTcy+dmiEiwLAxlnI4GdRWA8z5rSS3Ath1qWVEoHYebH87S4gjQ+SN 9K4SCJePtMdSA== From: Mario Limonciello To: Bjorn Helgaas Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Lukas Wunner , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Woodhouse , Lu Baolu , Joerg Roedel , Will Deacon , Robin Murphy , Alex Williamson , Jaroslav Kysela , Takashi Iwai , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev (open list:INTEL IOMMU (VT-d)), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), kvm@vger.kernel.org (open list:VFIO DRIVER), linux-sound@vger.kernel.org (open list:SOUND), Daniel Dadap , Mario Limonciello Subject: [PATCH v3 7/7] fbcon: Make a symlink to the device selected as primary Date: Thu, 19 Jun 2025 21:49:43 -0500 Message-ID: <20250620024943.3415685-8-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250620024943.3415685-1-superm1@kernel.org> References: <20250620024943.3415685-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Mario Limonciello Knowing which device is the primary device can be useful for userspace to make decisions on which device to start a display server. Create a link to that device called 'primary_device'. Signed-off-by: Mario Limonciello --- drivers/video/fbdev/core/fbcon.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fb= con.c index 2df48037688d1..46f21570723e5 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -2934,7 +2934,7 @@ static void fbcon_select_primary(struct fb_info *info) { if (!map_override && primary_device =3D=3D -1 && video_is_primary_device(info->device)) { - int i; + int i, r; =20 printk(KERN_INFO "fbcon: %s (fb%i) is primary device\n", info->fix.id, info->node); @@ -2949,6 +2949,10 @@ static void fbcon_select_primary(struct fb_info *inf= o) first_fb_vc + 1, last_fb_vc + 1); info_idx =3D primary_device; } + r =3D sysfs_create_link(&fbcon_device->kobj, &info->device->kobj, + "primary_device"); + if (r) + pr_err("fbcon: Failed to link to primary device: %d\n", r); } =20 } @@ -3376,6 +3380,10 @@ void __init fb_console_init(void) =20 void __exit fb_console_exit(void) { +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY + if (primary_device !=3D -1) + sysfs_remove_link(&fbcon_device->kobj, "primary_device"); +#endif #ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER console_lock(); if (deferred_takeover) --=20 2.43.0