From nobody Fri Oct 3 14:44:57 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2051.outbound.protection.outlook.com [40.107.243.51]) (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 E0EFE2D322F; Fri, 29 Aug 2025 22:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756507012; cv=fail; b=Z0Jbkkm4C+Bpu7HAz1W2se1xtb4RKjRN3qnnCj1RZ6aDU7QkrVywz48zQwFkcyHbnVHsBD8w2nhyXAhnxOYKg2WlIn03cStJXDcqBPwcX+wHRURVjy3sjnrId86F4XU8qNMoeVukqbTXWndWi9OEBV6yIvOD9NdxrsA3I/Z5xK8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756507012; c=relaxed/simple; bh=UBGGdb8dFmTVZ7fmR5RTWRVUbJbA1Wq9K1RpNT1JB7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=N88cGruM4OgTCovU9yHO4TsSLKEXJaGDT1g//VF7Uec2tvkcFJQTvITwAFHgO8ZAIa5vEbCDFy3VES6mWbNY0CwtE6LKAvlhnPsNctdMkrgFyOtPo0SUDMlAc4u/VLpkpO49EYJGRkOjTQZe0c/bIFxkQytepcIolHpWRNWbfXk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ohoLfOF3; arc=fail smtp.client-ip=40.107.243.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ohoLfOF3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x5gpdNJDsXYRaLMjFcKWemw9s/XgCPp3bpgm7jqjvm7abnJNWhEz5tW9YkasawZtgv0Yfbsd4VxfUeEsZidQb8RF+kIcV4+ebn31mWOKA2CGMZ21rkazBu5H1FqYSrPTGKLfWlqaxr2E2ebeGqZ5zI7UInzkBUYDSZlLBoBoFJQfRmSmt9DXr5buOlyKRMm+2ryGHzH/Y8JOBpmtTpsqon/p26BgcSbTzUKlMCO+upqm4txbRuCX9LHsRVNRp/wUrLgegN038M2jaoLYMA4x9tCDqscgLKEzfJPx47zYsjkOWTy8xzXGL4GFXwXG6LqEwz2w+tYldIpDsbBOpxhRgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bUmGX29UyYneyqrLjc9vg3lvZqz/qvcdoP1efvhry+g=; b=DzSNwrElt8gbheZ/Zj2wSWTFFJrRcZ+GF82hBv5ZhR7+iFcDd5vP0x4Id9d0iUJIvjR42KXuH4iddl7W3Vz4g54HTVdy0POzoztaH9rNBkGGIhEHUqyzfjB0eyJ6w68Yiw1DTZZfW8N6frYYI8lVE7hbs9OIqM/Vg4rAMyMvH2nzIF2ETdLXCgJTHNmZdHee8veONPRp4V5UKfWkHp0TIsliz5ef8E65xZSuaoTbRImtcz/lknBt/BSgSCqj7g3qvH4XGHSTrNRpK06811P0aLQPW3NxW3BRv0BtyZRb4t7Ez860Y80r+c4XdNJ5ygCAxpqCfpvNtYdC4O+EyQ7pqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bUmGX29UyYneyqrLjc9vg3lvZqz/qvcdoP1efvhry+g=; b=ohoLfOF3mJfd3yXIjimeSM4MnMSQua5xOiZc2Gv+B9FwwQNdxLYo5UQhuzUWBJABsRddpuoBib0cu2V6P8rHPAp1G7l073jX7prl3FiW9wjhC6PPAN+jq4UvD1ms4t2pS2VenEll4V3uMjAeCElyFgecptY49enG0MLxHtHlfiyQiLyu5Wt8KuU147Tjqml30FyGt/nxG7efdmM4/lz345Mqt/GsElmTZ7RJXZVwkRnmhKQN0zyg4u/2effmgosxYZ4blWAEOzHa+UoWBuvAqpRTjjqE6I9nZMezMtObUJnHLgsuQqhNYTN2vF+NFbwskMxf3ZgbMswwnH7xIll+yQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5968.namprd12.prod.outlook.com (2603:10b6:408:14f::7) by PH8PR12MB6963.namprd12.prod.outlook.com (2603:10b6:510:1be::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Fri, 29 Aug 2025 22:36:38 +0000 Received: from LV2PR12MB5968.namprd12.prod.outlook.com ([fe80::e6dd:1206:6677:f9c4]) by LV2PR12MB5968.namprd12.prod.outlook.com ([fe80::e6dd:1206:6677:f9c4%6]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025 22:36:38 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , David Airlie , Simona Vetter , Bjorn Helgaas , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard , Elle Rhumsaa Subject: [PATCH v8 2/6] rust: pci: provide access to PCI Vendor values Date: Fri, 29 Aug 2025 15:36:28 -0700 Message-ID: <20250829223632.144030-3-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250829223632.144030-1-jhubbard@nvidia.com> References: <20250829223632.144030-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0050.namprd05.prod.outlook.com (2603:10b6:a03:33f::25) To LV2PR12MB5968.namprd12.prod.outlook.com (2603:10b6:408:14f::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5968:EE_|PH8PR12MB6963:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f49e13b-271d-49db-75f2-08dde74c844e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZyXOX518Vd2DBw2ZPSsO3nP9mI90wp3d0dAPEPFFpkifJueHs8x+ZiS29Yt2?= =?us-ascii?Q?4sa9DzomoBiY1EAN68JLxBLADKMKNQ8i9Pk2IPlwnpv7VAPMH62CbSbnTDXs?= =?us-ascii?Q?arWYn77F8TUJKqOJGYwOsp2yx/8WuF2kNYjAP+xcSFk5nM3DqS0o40DBLlhk?= =?us-ascii?Q?WBytIGBqB5M26VCzEZZV77eEi9rilxhqyQ78rdtrbIvO/grR0N6FhCcrje1a?= =?us-ascii?Q?XooFrMWo7egZ9RUZ3EPm3z9NHsxBuEnvKQqASFVMs/no29KevU+5ihGj78kZ?= =?us-ascii?Q?/bv1UPjqbDsUVj2X+K7sQMPFDW2MTVyu7uyZtykAeHOF4feU5B35K3HornCc?= =?us-ascii?Q?33s53OVBFU7cYiddvn/7dricFvpzOtBCScsVzP4HWbmGxpc8zxE6yYCLXmqI?= =?us-ascii?Q?cThc6QfxmBaQpPH6g2xNgCtsKHjmuW3MsVa+2Ia5ZhxXGjGdNKym7FU/6bIJ?= =?us-ascii?Q?UuRrM+2g8UWINvOcTVdL0lM2aPmW0AR+63JeF0aBVOE89UboKTqY9kwlykQt?= =?us-ascii?Q?2LQjXDhrtWn/15j3MAyQV45uhEyUtzg5kK0BtiP4jSIOuZXxYOdKHFWQV0ch?= =?us-ascii?Q?oqUeaIHO7HIRzQm7qD3OeFiS4LeIZhT9r1DPZWB3lQKyJzHLyENsjgGj1K+8?= =?us-ascii?Q?IdHBrgKgwJsVJ+z4bIGDBTgBZOBQSFMFS7NMjVx0eUcvlmAWqUOxmoAr9GzW?= =?us-ascii?Q?6ZWqW0Wrm9vylmJrG0GobqCJKOEC4SNjng2vs3f/qABjqWvYQVLHaPQG9tT9?= =?us-ascii?Q?pKfQseYS2Ln9KKlRZxUU+RNoeYGFoFJiVWeQm7dPp+VwpqcMNp4B9Pjzpp9Y?= =?us-ascii?Q?QMw/OcjBj/pLi0pJtzE+jPgqupgQ/DLIJO3chQT8Y526IMvawQjll0HXk055?= =?us-ascii?Q?3mhPMlsIRPAoqXth+UDa7ifcYjiiN/nNxa2mN8JyARWoqnD8ZgaknUOx2Qxe?= =?us-ascii?Q?yMSykarYXn/K7bJmxLhL1FG4ZbTfuSYXc/2aRRrChp539kzZxnUluywRo5kN?= =?us-ascii?Q?PKtJ3Ka6flUk9wOSb7QlqyCPeJGG+bb1HoM850bZ8UHlITizqL2W+A4NtuHn?= =?us-ascii?Q?mpB5UHDc0UdGqNkG+uzwqM72vVabLk9n20/dRYSG2a5LvO/J7RxSU5w5LXJD?= =?us-ascii?Q?h6rn6rzakIVUnlhewzf2MjriPrP8Nc4/MQNwxbyb/thUDjr8kQKVuxbzdcNN?= =?us-ascii?Q?N34C2F4IEadYcG5U4kxxKl1sG7kaSgiThECZ0Jm1MvzM01CDxCepXw465i0b?= =?us-ascii?Q?ZyOa+0ekS6mAykwqI3lQ9Gd9kRAuhjde/QfSKnF+yC9rMH8epYYPaQji5Kjz?= =?us-ascii?Q?gkEBq5oOx/FKsRm6QG8Gjc8p1MikVJFz+A0XaxpaFklNknfbOL+rHAW++Q+J?= =?us-ascii?Q?ZOgHiu8LsTPXmLwfbKQPrwC/itXgraT5Uw42YfP59nRRjQs/I0ULp1y0dobi?= =?us-ascii?Q?/XZ4lWojNrM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5968.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ag54b6tlrpy7ygmSP1bGc7Tzkoy5H0v9uth3A6vIL5Jfh4LWh9c6+Vjjlmc9?= =?us-ascii?Q?HYIVqforYT+YblsIDspvDUO2kZdtBhaD3HwA93jFSCUEsGRJ/k78FcxU1VbL?= =?us-ascii?Q?oJKrVLutklaXoq4UKl3r1od2Bs95LBR7mjnsjNKGAj/rtywfm5gN9SyZGRX9?= =?us-ascii?Q?uAnyGrEirxXhX6N5ei9kSuV2mqT7/+HY8NrBdKlLBpxZ/2ZMty4ZzfBv96M+?= =?us-ascii?Q?veYqJ+GgQPRDuQ9g+WGe21S7q2y3Yua+qbgLza+RWxjPz8blAKz7nGhobR3W?= =?us-ascii?Q?BhOR28bc2/UI/cd+GARYGMixYxdDjN5hWz6xTJBB2pB+L3SkKCqw4NRmuL9x?= =?us-ascii?Q?+hZuB8NJOXsgmKuP7Psblq+Dj879vE45bepzWM/S1Qyag1tAUmdtC9H9WMRH?= =?us-ascii?Q?uj2sqMkgnSbfSXFqv9fv6LNSYzEr/l9W2CtYpcDxbD0pR+qgpdI09sK2g1Lv?= =?us-ascii?Q?wIPOuiTUY35loy7CY4M6fusUCXFgfSMDioQicU5cXYQo1JDd/QK7pj9JiNbA?= =?us-ascii?Q?nytphHhiuPalNtVUdfSbvbhtdbcrdf6GnFOW5bqRk8PNqzFFdmVn0xxxYT8T?= =?us-ascii?Q?zbLS2DB7HtPoqSa9RmswjYNpySSVVwvfRczXWT7bC//B0153R/ipzR0ePqIe?= =?us-ascii?Q?M3+VaJEaYmaPU6yxv5n+KfObFOfsc6dIzfa0tGNUGqimRGHsvIj6wDXdBfub?= =?us-ascii?Q?2YU+DGpxjkgSBnlineTVARDyDsUvE1f5kOrNCMzwUsvQlQ4nS027ZsPmjjK5?= =?us-ascii?Q?nC7KHNLMX7VKvuNP6J2IcTTvWaV9dVIJocUf3waImWUl0MwEmuQEs33ZITf0?= =?us-ascii?Q?HVDHg4RWU11XhU5R0p7eB3XPi8svd9xjKPfjcAeGbcrdDm+Ep44WdE1/i1Zj?= =?us-ascii?Q?PPEXz7VL2BWu207ZU3DOF0coilhW4oOZNlF9MZNl0WF2Yq1F/BGRUPfjgZqC?= =?us-ascii?Q?5LzVgV6qFq09T8wwKkL1bR5RE0I0c0X+PNtz/Gc/n0mQbDN5joggcfqmb02X?= =?us-ascii?Q?qpLu80ZHZ5JZaD2bqr0ZuhITa0VGkR+85xKl2EwzPRkrBnhEJhgPJlYoGL46?= =?us-ascii?Q?wcpdVVo2ERDS8MQ2KQcEUy8qdv9jDf+9zPi51KAiSodCqZgW1CK+fpckGoOX?= =?us-ascii?Q?K6oppkyFbnTUWyHB+d0UPMZ7+1DLs5v9jVKgzuWXH21MsHaq00xg37MMvhb9?= =?us-ascii?Q?Bmb7Ic75KHayQTNpTgBY4gCV9hhG2MfjQDHfB1wr1Gd2Ik8EF+tqnRbjvFW6?= =?us-ascii?Q?qt3+vYsk/Q2/qILe18Hjk7H7LlPzgcJQ5D9zkIvGOh2bJGRwu9gUBCzOrhDu?= =?us-ascii?Q?INXnO/er78OrNUu1bb3E1ekIFDOrzXa3x5fbLrdhO5fSzAGEPPay6pqksmG7?= =?us-ascii?Q?r55T+8BIiHUn3TO3aoWk3jF9GUliQ4m+r4pX++TJREtRTXA1anCGgSyFaw3g?= =?us-ascii?Q?9bZC4uN87aNdtCYb3m6ZGAwCwel5Y6zzkjL0br2ZAX7V+cILwjMSwVw30GQk?= =?us-ascii?Q?fgEOwK5KkbV6RlzhnVgRWFr33In7ocYePp4dLhACaTh5qFbHY2ZofY6ZoQCl?= =?us-ascii?Q?K76abDnscGReeZuLk+LQbCjvi3AebbmRaLkTa+px?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f49e13b-271d-49db-75f2-08dde74c844e X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5968.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 22:36:38.2449 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ak9fw92Hioxvx+0HGw0GZxnj1IpJF+zCNmOhq78gc710eRD+8KPG6ALL4UqIQsu/e48AG32/2LWGwOLofV/H/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6963 Content-Type: text/plain; charset="utf-8" This allows callers to write Vendor::SOME_COMPANY instead of bindings::PCI_VENDOR_ID_SOME_COMPANY. New APIs: Vendor::SOME_COMPANY Vendor::from_raw() -- Only accessible from the pci (parent) module. Vendor::as_raw() Vendor: fmt::Display for Vendor Cc: Danilo Krummrich Cc: Elle Rhumsaa Reviewed-by: Alexandre Courbot Signed-off-by: John Hubbard --- rust/kernel/pci.rs | 2 +- rust/kernel/pci/id.rs | 330 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 330 insertions(+), 2 deletions(-) diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs index 212c4a6834fb..f15cfd0e76d9 100644 --- a/rust/kernel/pci.rs +++ b/rust/kernel/pci.rs @@ -25,7 +25,7 @@ =20 mod id; =20 -pub use self::id::{Class, ClassMask}; +pub use self::id::{Class, ClassMask, Vendor}; =20 /// An adapter for the registration of PCI drivers. pub struct Adapter(T); diff --git a/rust/kernel/pci/id.rs b/rust/kernel/pci/id.rs index 18a1b7f9afe5..a7712df1fc43 100644 --- a/rust/kernel/pci/id.rs +++ b/rust/kernel/pci/id.rs @@ -2,7 +2,7 @@ =20 //! PCI device identifiers and related types. //! -//! This module contains PCI class codes and supporting types. +//! This module contains PCI class codes, Vendor IDs, and supporting types. =20 use crate::{bindings, error::code::EINVAL, error::Error, prelude::*}; use core::fmt; @@ -108,6 +108,50 @@ fn try_from(value: u32) -> Result { } } =20 +/// PCI vendor IDs. +/// +/// Each entry contains the 16-bit PCI vendor ID as assigned by the PCI SI= G. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[repr(transparent)] +pub struct Vendor(u16); + +macro_rules! define_all_pci_vendors { + ( + $($variant:ident =3D $binding:expr,)+ + ) =3D> { + impl Vendor { + $( + #[allow(missing_docs)] + pub const $variant: Self =3D Self($binding as u16); + )+ + } + }; +} + +/// Once constructed, a `Vendor` contains a valid PCI Vendor ID. +impl Vendor { + /// Create a Vendor from a raw 16-bit vendor ID. + /// Only accessible from the parent pci module. + #[expect(dead_code)] + #[inline] + pub(super) fn from_raw(vendor_id: u16) -> Self { + Self(vendor_id) + } + + /// Get the raw 16-bit vendor ID value. + #[inline] + pub const fn as_raw(self) -> u16 { + self.0 + } +} + +impl fmt::Display for Vendor { + #[inline] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "0x{:04x}", self.0) + } +} + define_all_pci_classes! { NOT_DEFINED =3D bindings::PCI_CLASS_NOT_DEFINED, = // 0x000000 NOT_DEFINED_VGA =3D bindings::PCI_CLASS_NOT_DEFINED_VGA, = // 0x000100 @@ -229,3 +273,287 @@ fn try_from(value: u32) -> Result { =20 OTHERS =3D bindings::PCI_CLASS_OTHERS, = // 0xff0000 } + +define_all_pci_vendors! { + PCI_SIG =3D bindings::PCI_VENDOR_ID_PCI_SIG, = // 0x0001 + LOONGSON =3D bindings::PCI_VENDOR_ID_LOONGSON, = // 0x0014 + SOLIDIGM =3D bindings::PCI_VENDOR_ID_SOLIDIGM, = // 0x025e + TTTECH =3D bindings::PCI_VENDOR_ID_TTTECH, = // 0x0357 + DYNALINK =3D bindings::PCI_VENDOR_ID_DYNALINK, = // 0x0675 + UBIQUITI =3D bindings::PCI_VENDOR_ID_UBIQUITI, = // 0x0777 + BERKOM =3D bindings::PCI_VENDOR_ID_BERKOM, = // 0x0871 + ITTIM =3D bindings::PCI_VENDOR_ID_ITTIM, = // 0x0b48 + COMPAQ =3D bindings::PCI_VENDOR_ID_COMPAQ, = // 0x0e11 + LSI_LOGIC =3D bindings::PCI_VENDOR_ID_LSI_LOGIC, = // 0x1000 + ATI =3D bindings::PCI_VENDOR_ID_ATI, = // 0x1002 + VLSI =3D bindings::PCI_VENDOR_ID_VLSI, = // 0x1004 + ADL =3D bindings::PCI_VENDOR_ID_ADL, = // 0x1005 + NS =3D bindings::PCI_VENDOR_ID_NS, = // 0x100b + TSENG =3D bindings::PCI_VENDOR_ID_TSENG, = // 0x100c + WEITEK =3D bindings::PCI_VENDOR_ID_WEITEK, = // 0x100e + DEC =3D bindings::PCI_VENDOR_ID_DEC, = // 0x1011 + CIRRUS =3D bindings::PCI_VENDOR_ID_CIRRUS, = // 0x1013 + IBM =3D bindings::PCI_VENDOR_ID_IBM, = // 0x1014 + UNISYS =3D bindings::PCI_VENDOR_ID_UNISYS, = // 0x1018 + COMPEX2 =3D bindings::PCI_VENDOR_ID_COMPEX2, = // 0x101a + WD =3D bindings::PCI_VENDOR_ID_WD, = // 0x101c + AMI =3D bindings::PCI_VENDOR_ID_AMI, = // 0x101e + AMD =3D bindings::PCI_VENDOR_ID_AMD, = // 0x1022 + TRIDENT =3D bindings::PCI_VENDOR_ID_TRIDENT, = // 0x1023 + AI =3D bindings::PCI_VENDOR_ID_AI, = // 0x1025 + DELL =3D bindings::PCI_VENDOR_ID_DELL, = // 0x1028 + MATROX =3D bindings::PCI_VENDOR_ID_MATROX, = // 0x102B + MOBILITY_ELECTRONICS =3D bindings::PCI_VENDOR_ID_MOBILITY_ELECTRON= ICS, // 0x14f2 + CT =3D bindings::PCI_VENDOR_ID_CT, = // 0x102c + MIRO =3D bindings::PCI_VENDOR_ID_MIRO, = // 0x1031 + NEC =3D bindings::PCI_VENDOR_ID_NEC, = // 0x1033 + FD =3D bindings::PCI_VENDOR_ID_FD, = // 0x1036 + SI =3D bindings::PCI_VENDOR_ID_SI, = // 0x1039 + HP =3D bindings::PCI_VENDOR_ID_HP, = // 0x103c + HP_3PAR =3D bindings::PCI_VENDOR_ID_HP_3PAR, = // 0x1590 + PCTECH =3D bindings::PCI_VENDOR_ID_PCTECH, = // 0x1042 + ASUSTEK =3D bindings::PCI_VENDOR_ID_ASUSTEK, = // 0x1043 + DPT =3D bindings::PCI_VENDOR_ID_DPT, = // 0x1044 + OPTI =3D bindings::PCI_VENDOR_ID_OPTI, = // 0x1045 + ELSA =3D bindings::PCI_VENDOR_ID_ELSA, = // 0x1048 + STMICRO =3D bindings::PCI_VENDOR_ID_STMICRO, = // 0x104A + BUSLOGIC =3D bindings::PCI_VENDOR_ID_BUSLOGIC, = // 0x104B + TI =3D bindings::PCI_VENDOR_ID_TI, = // 0x104c + SONY =3D bindings::PCI_VENDOR_ID_SONY, = // 0x104d + WINBOND2 =3D bindings::PCI_VENDOR_ID_WINBOND2, = // 0x1050 + ANIGMA =3D bindings::PCI_VENDOR_ID_ANIGMA, = // 0x1051 + EFAR =3D bindings::PCI_VENDOR_ID_EFAR, = // 0x1055 + MOTOROLA =3D bindings::PCI_VENDOR_ID_MOTOROLA, = // 0x1057 + PROMISE =3D bindings::PCI_VENDOR_ID_PROMISE, = // 0x105a + FOXCONN =3D bindings::PCI_VENDOR_ID_FOXCONN, = // 0x105b + UMC =3D bindings::PCI_VENDOR_ID_UMC, = // 0x1060 + PICOPOWER =3D bindings::PCI_VENDOR_ID_PICOPOWER, = // 0x1066 + MYLEX =3D bindings::PCI_VENDOR_ID_MYLEX, = // 0x1069 + APPLE =3D bindings::PCI_VENDOR_ID_APPLE, = // 0x106b + YAMAHA =3D bindings::PCI_VENDOR_ID_YAMAHA, = // 0x1073 + QLOGIC =3D bindings::PCI_VENDOR_ID_QLOGIC, = // 0x1077 + CYRIX =3D bindings::PCI_VENDOR_ID_CYRIX, = // 0x1078 + CONTAQ =3D bindings::PCI_VENDOR_ID_CONTAQ, = // 0x1080 + OLICOM =3D bindings::PCI_VENDOR_ID_OLICOM, = // 0x108d + SUN =3D bindings::PCI_VENDOR_ID_SUN, = // 0x108e + NI =3D bindings::PCI_VENDOR_ID_NI, = // 0x1093 + CMD =3D bindings::PCI_VENDOR_ID_CMD, = // 0x1095 + BROOKTREE =3D bindings::PCI_VENDOR_ID_BROOKTREE, = // 0x109e + SGI =3D bindings::PCI_VENDOR_ID_SGI, = // 0x10a9 + WINBOND =3D bindings::PCI_VENDOR_ID_WINBOND, = // 0x10ad + PLX =3D bindings::PCI_VENDOR_ID_PLX, = // 0x10b5 + MADGE =3D bindings::PCI_VENDOR_ID_MADGE, = // 0x10b6 + THREECOM =3D bindings::PCI_VENDOR_ID_3COM, = // 0x10b7 + AL =3D bindings::PCI_VENDOR_ID_AL, = // 0x10b9 + NEOMAGIC =3D bindings::PCI_VENDOR_ID_NEOMAGIC, = // 0x10c8 + TCONRAD =3D bindings::PCI_VENDOR_ID_TCONRAD, = // 0x10da + ROHM =3D bindings::PCI_VENDOR_ID_ROHM, = // 0x10db + NVIDIA =3D bindings::PCI_VENDOR_ID_NVIDIA, = // 0x10de + IMS =3D bindings::PCI_VENDOR_ID_IMS, = // 0x10e0 + AMCC =3D bindings::PCI_VENDOR_ID_AMCC, = // 0x10e8 + AMPERE =3D bindings::PCI_VENDOR_ID_AMPERE, = // 0x1def + INTERG =3D bindings::PCI_VENDOR_ID_INTERG, = // 0x10ea + REALTEK =3D bindings::PCI_VENDOR_ID_REALTEK, = // 0x10ec + XILINX =3D bindings::PCI_VENDOR_ID_XILINX, = // 0x10ee + INIT =3D bindings::PCI_VENDOR_ID_INIT, = // 0x1101 + CREATIVE =3D bindings::PCI_VENDOR_ID_CREATIVE, = // 0x1102 + TTI =3D bindings::PCI_VENDOR_ID_TTI, = // 0x1103 + SIGMA =3D bindings::PCI_VENDOR_ID_SIGMA, = // 0x1105 + VIA =3D bindings::PCI_VENDOR_ID_VIA, = // 0x1106 + SIEMENS =3D bindings::PCI_VENDOR_ID_SIEMENS, = // 0x110A + VORTEX =3D bindings::PCI_VENDOR_ID_VORTEX, = // 0x1119 + EF =3D bindings::PCI_VENDOR_ID_EF, = // 0x111a + IDT =3D bindings::PCI_VENDOR_ID_IDT, = // 0x111d + FORE =3D bindings::PCI_VENDOR_ID_FORE, = // 0x1127 + PHILIPS =3D bindings::PCI_VENDOR_ID_PHILIPS, = // 0x1131 + EICON =3D bindings::PCI_VENDOR_ID_EICON, = // 0x1133 + CISCO =3D bindings::PCI_VENDOR_ID_CISCO, = // 0x1137 + ZIATECH =3D bindings::PCI_VENDOR_ID_ZIATECH, = // 0x1138 + SYSKONNECT =3D bindings::PCI_VENDOR_ID_SYSKONNECT, = // 0x1148 + DIGI =3D bindings::PCI_VENDOR_ID_DIGI, = // 0x114f + XIRCOM =3D bindings::PCI_VENDOR_ID_XIRCOM, = // 0x115d + SERVERWORKS =3D bindings::PCI_VENDOR_ID_SERVERWORKS, = // 0x1166 + ALTERA =3D bindings::PCI_VENDOR_ID_ALTERA, = // 0x1172 + SBE =3D bindings::PCI_VENDOR_ID_SBE, = // 0x1176 + TOSHIBA =3D bindings::PCI_VENDOR_ID_TOSHIBA, = // 0x1179 + TOSHIBA_2 =3D bindings::PCI_VENDOR_ID_TOSHIBA_2, = // 0x102f + ATTO =3D bindings::PCI_VENDOR_ID_ATTO, = // 0x117c + RICOH =3D bindings::PCI_VENDOR_ID_RICOH, = // 0x1180 + DLINK =3D bindings::PCI_VENDOR_ID_DLINK, = // 0x1186 + ARTOP =3D bindings::PCI_VENDOR_ID_ARTOP, = // 0x1191 + ZEITNET =3D bindings::PCI_VENDOR_ID_ZEITNET, = // 0x1193 + FUJITSU_ME =3D bindings::PCI_VENDOR_ID_FUJITSU_ME, = // 0x119e + MARVELL =3D bindings::PCI_VENDOR_ID_MARVELL, = // 0x11ab + MARVELL_EXT =3D bindings::PCI_VENDOR_ID_MARVELL_EXT, = // 0x1b4b + V3 =3D bindings::PCI_VENDOR_ID_V3, = // 0x11b0 + ATT =3D bindings::PCI_VENDOR_ID_ATT, = // 0x11c1 + SPECIALIX =3D bindings::PCI_VENDOR_ID_SPECIALIX, = // 0x11cb + ANALOG_DEVICES =3D bindings::PCI_VENDOR_ID_ANALOG_DEVICES, = // 0x11d4 + ZORAN =3D bindings::PCI_VENDOR_ID_ZORAN, = // 0x11de + COMPEX =3D bindings::PCI_VENDOR_ID_COMPEX, = // 0x11f6 + MICROSEMI =3D bindings::PCI_VENDOR_ID_MICROSEMI, = // 0x11f8 + RP =3D bindings::PCI_VENDOR_ID_RP, = // 0x11fe + CYCLADES =3D bindings::PCI_VENDOR_ID_CYCLADES, = // 0x120e + ESSENTIAL =3D bindings::PCI_VENDOR_ID_ESSENTIAL, = // 0x120f + O2 =3D bindings::PCI_VENDOR_ID_O2, = // 0x1217 + THREEDX =3D bindings::PCI_VENDOR_ID_3DFX, = // 0x121a + AVM =3D bindings::PCI_VENDOR_ID_AVM, = // 0x1244 + STALLION =3D bindings::PCI_VENDOR_ID_STALLION, = // 0x124d + AT =3D bindings::PCI_VENDOR_ID_AT, = // 0x1259 + ASIX =3D bindings::PCI_VENDOR_ID_ASIX, = // 0x125b + ESS =3D bindings::PCI_VENDOR_ID_ESS, = // 0x125d + SATSAGEM =3D bindings::PCI_VENDOR_ID_SATSAGEM, = // 0x1267 + ENSONIQ =3D bindings::PCI_VENDOR_ID_ENSONIQ, = // 0x1274 + TRANSMETA =3D bindings::PCI_VENDOR_ID_TRANSMETA, = // 0x1279 + ROCKWELL =3D bindings::PCI_VENDOR_ID_ROCKWELL, = // 0x127A + ITE =3D bindings::PCI_VENDOR_ID_ITE, = // 0x1283 + ALTEON =3D bindings::PCI_VENDOR_ID_ALTEON, = // 0x12ae + NVIDIA_SGS =3D bindings::PCI_VENDOR_ID_NVIDIA_SGS, = // 0x12d2 + PERICOM =3D bindings::PCI_VENDOR_ID_PERICOM, = // 0x12D8 + AUREAL =3D bindings::PCI_VENDOR_ID_AUREAL, = // 0x12eb + ELECTRONICDESIGNGMBH =3D bindings::PCI_VENDOR_ID_ELECTRONICDESIGNG= MBH, // 0x12f8 + ESDGMBH =3D bindings::PCI_VENDOR_ID_ESDGMBH, = // 0x12fe + CB =3D bindings::PCI_VENDOR_ID_CB, = // 0x1307 + SIIG =3D bindings::PCI_VENDOR_ID_SIIG, = // 0x131f + RADISYS =3D bindings::PCI_VENDOR_ID_RADISYS, = // 0x1331 + MICRO_MEMORY =3D bindings::PCI_VENDOR_ID_MICRO_MEMORY, = // 0x1332 + DOMEX =3D bindings::PCI_VENDOR_ID_DOMEX, = // 0x134a + INTASHIELD =3D bindings::PCI_VENDOR_ID_INTASHIELD, = // 0x135a + QUATECH =3D bindings::PCI_VENDOR_ID_QUATECH, = // 0x135C + SEALEVEL =3D bindings::PCI_VENDOR_ID_SEALEVEL, = // 0x135e + HYPERCOPE =3D bindings::PCI_VENDOR_ID_HYPERCOPE, = // 0x1365 + DIGIGRAM =3D bindings::PCI_VENDOR_ID_DIGIGRAM, = // 0x1369 + KAWASAKI =3D bindings::PCI_VENDOR_ID_KAWASAKI, = // 0x136b + CNET =3D bindings::PCI_VENDOR_ID_CNET, = // 0x1371 + LMC =3D bindings::PCI_VENDOR_ID_LMC, = // 0x1376 + NETGEAR =3D bindings::PCI_VENDOR_ID_NETGEAR, = // 0x1385 + APPLICOM =3D bindings::PCI_VENDOR_ID_APPLICOM, = // 0x1389 + MOXA =3D bindings::PCI_VENDOR_ID_MOXA, = // 0x1393 + CCD =3D bindings::PCI_VENDOR_ID_CCD, = // 0x1397 + EXAR =3D bindings::PCI_VENDOR_ID_EXAR, = // 0x13a8 + MICROGATE =3D bindings::PCI_VENDOR_ID_MICROGATE, = // 0x13c0 + THREEWARE =3D bindings::PCI_VENDOR_ID_3WARE, = // 0x13C1 + IOMEGA =3D bindings::PCI_VENDOR_ID_IOMEGA, = // 0x13ca + ABOCOM =3D bindings::PCI_VENDOR_ID_ABOCOM, = // 0x13D1 + SUNDANCE =3D bindings::PCI_VENDOR_ID_SUNDANCE, = // 0x13f0 + CMEDIA =3D bindings::PCI_VENDOR_ID_CMEDIA, = // 0x13f6 + ADVANTECH =3D bindings::PCI_VENDOR_ID_ADVANTECH, = // 0x13fe + MEILHAUS =3D bindings::PCI_VENDOR_ID_MEILHAUS, = // 0x1402 + LAVA =3D bindings::PCI_VENDOR_ID_LAVA, = // 0x1407 + TIMEDIA =3D bindings::PCI_VENDOR_ID_TIMEDIA, = // 0x1409 + ICE =3D bindings::PCI_VENDOR_ID_ICE, = // 0x1412 + MICROSOFT =3D bindings::PCI_VENDOR_ID_MICROSOFT, = // 0x1414 + OXSEMI =3D bindings::PCI_VENDOR_ID_OXSEMI, = // 0x1415 + CHELSIO =3D bindings::PCI_VENDOR_ID_CHELSIO, = // 0x1425 + EDIMAX =3D bindings::PCI_VENDOR_ID_EDIMAX, = // 0x1432 + ADLINK =3D bindings::PCI_VENDOR_ID_ADLINK, = // 0x144a + SAMSUNG =3D bindings::PCI_VENDOR_ID_SAMSUNG, = // 0x144d + GIGABYTE =3D bindings::PCI_VENDOR_ID_GIGABYTE, = // 0x1458 + AMBIT =3D bindings::PCI_VENDOR_ID_AMBIT, = // 0x1468 + MYRICOM =3D bindings::PCI_VENDOR_ID_MYRICOM, = // 0x14c1 + MEDIATEK =3D bindings::PCI_VENDOR_ID_MEDIATEK, = // 0x14c3 + TITAN =3D bindings::PCI_VENDOR_ID_TITAN, = // 0x14D2 + PANACOM =3D bindings::PCI_VENDOR_ID_PANACOM, = // 0x14d4 + SIPACKETS =3D bindings::PCI_VENDOR_ID_SIPACKETS, = // 0x14d9 + AFAVLAB =3D bindings::PCI_VENDOR_ID_AFAVLAB, = // 0x14db + AMPLICON =3D bindings::PCI_VENDOR_ID_AMPLICON, = // 0x14dc + BCM_GVC =3D bindings::PCI_VENDOR_ID_BCM_GVC, = // 0x14a4 + BROADCOM =3D bindings::PCI_VENDOR_ID_BROADCOM, = // 0x14e4 + TOPIC =3D bindings::PCI_VENDOR_ID_TOPIC, = // 0x151f + MAINPINE =3D bindings::PCI_VENDOR_ID_MAINPINE, = // 0x1522 + ENE =3D bindings::PCI_VENDOR_ID_ENE, = // 0x1524 + SYBA =3D bindings::PCI_VENDOR_ID_SYBA, = // 0x1592 + MORETON =3D bindings::PCI_VENDOR_ID_MORETON, = // 0x15aa + VMWARE =3D bindings::PCI_VENDOR_ID_VMWARE, = // 0x15ad + ZOLTRIX =3D bindings::PCI_VENDOR_ID_ZOLTRIX, = // 0x15b0 + MELLANOX =3D bindings::PCI_VENDOR_ID_MELLANOX, = // 0x15b3 + DFI =3D bindings::PCI_VENDOR_ID_DFI, = // 0x15bd + QUICKNET =3D bindings::PCI_VENDOR_ID_QUICKNET, = // 0x15e2 + ADDIDATA =3D bindings::PCI_VENDOR_ID_ADDIDATA, = // 0x15B8 + PDC =3D bindings::PCI_VENDOR_ID_PDC, = // 0x15e9 + FARSITE =3D bindings::PCI_VENDOR_ID_FARSITE, = // 0x1619 + ARIMA =3D bindings::PCI_VENDOR_ID_ARIMA, = // 0x161f + BROCADE =3D bindings::PCI_VENDOR_ID_BROCADE, = // 0x1657 + SIBYTE =3D bindings::PCI_VENDOR_ID_SIBYTE, = // 0x166d + ATHEROS =3D bindings::PCI_VENDOR_ID_ATHEROS, = // 0x168c + NETCELL =3D bindings::PCI_VENDOR_ID_NETCELL, = // 0x169c + CENATEK =3D bindings::PCI_VENDOR_ID_CENATEK, = // 0x16CA + SYNOPSYS =3D bindings::PCI_VENDOR_ID_SYNOPSYS, = // 0x16c3 + USR =3D bindings::PCI_VENDOR_ID_USR, = // 0x16ec + VITESSE =3D bindings::PCI_VENDOR_ID_VITESSE, = // 0x1725 + LINKSYS =3D bindings::PCI_VENDOR_ID_LINKSYS, = // 0x1737 + ALTIMA =3D bindings::PCI_VENDOR_ID_ALTIMA, = // 0x173b + CAVIUM =3D bindings::PCI_VENDOR_ID_CAVIUM, = // 0x177d + TECHWELL =3D bindings::PCI_VENDOR_ID_TECHWELL, = // 0x1797 + BELKIN =3D bindings::PCI_VENDOR_ID_BELKIN, = // 0x1799 + RDC =3D bindings::PCI_VENDOR_ID_RDC, = // 0x17f3 + GLI =3D bindings::PCI_VENDOR_ID_GLI, = // 0x17a0 + LENOVO =3D bindings::PCI_VENDOR_ID_LENOVO, = // 0x17aa + QCOM =3D bindings::PCI_VENDOR_ID_QCOM, = // 0x17cb + CDNS =3D bindings::PCI_VENDOR_ID_CDNS, = // 0x17cd + ARECA =3D bindings::PCI_VENDOR_ID_ARECA, = // 0x17d3 + S2IO =3D bindings::PCI_VENDOR_ID_S2IO, = // 0x17d5 + SITECOM =3D bindings::PCI_VENDOR_ID_SITECOM, = // 0x182d + TOPSPIN =3D bindings::PCI_VENDOR_ID_TOPSPIN, = // 0x1867 + COMMTECH =3D bindings::PCI_VENDOR_ID_COMMTECH, = // 0x18f7 + SILAN =3D bindings::PCI_VENDOR_ID_SILAN, = // 0x1904 + RENESAS =3D bindings::PCI_VENDOR_ID_RENESAS, = // 0x1912 + SOLARFLARE =3D bindings::PCI_VENDOR_ID_SOLARFLARE, = // 0x1924 + TDI =3D bindings::PCI_VENDOR_ID_TDI, = // 0x192E + NXP =3D bindings::PCI_VENDOR_ID_NXP, = // 0x1957 + PASEMI =3D bindings::PCI_VENDOR_ID_PASEMI, = // 0x1959 + ATTANSIC =3D bindings::PCI_VENDOR_ID_ATTANSIC, = // 0x1969 + JMICRON =3D bindings::PCI_VENDOR_ID_JMICRON, = // 0x197B + KORENIX =3D bindings::PCI_VENDOR_ID_KORENIX, = // 0x1982 + HUAWEI =3D bindings::PCI_VENDOR_ID_HUAWEI, = // 0x19e5 + NETRONOME =3D bindings::PCI_VENDOR_ID_NETRONOME, = // 0x19ee + QMI =3D bindings::PCI_VENDOR_ID_QMI, = // 0x1a32 + AZWAVE =3D bindings::PCI_VENDOR_ID_AZWAVE, = // 0x1a3b + REDHAT_QUMRANET =3D bindings::PCI_VENDOR_ID_REDHAT_QUMRANET, = // 0x1af4 + ASMEDIA =3D bindings::PCI_VENDOR_ID_ASMEDIA, = // 0x1b21 + REDHAT =3D bindings::PCI_VENDOR_ID_REDHAT, = // 0x1b36 + WCHIC =3D bindings::PCI_VENDOR_ID_WCHIC, = // 0x1c00 + SILICOM_DENMARK =3D bindings::PCI_VENDOR_ID_SILICOM_DENMARK, = // 0x1c2c + AMAZON_ANNAPURNA_LABS =3D bindings::PCI_VENDOR_ID_AMAZON_ANNAPURNA_= LABS, // 0x1c36 + CIRCUITCO =3D bindings::PCI_VENDOR_ID_CIRCUITCO, = // 0x1cc8 + AMAZON =3D bindings::PCI_VENDOR_ID_AMAZON, = // 0x1d0f + ZHAOXIN =3D bindings::PCI_VENDOR_ID_ZHAOXIN, = // 0x1d17 + ROCKCHIP =3D bindings::PCI_VENDOR_ID_ROCKCHIP, = // 0x1d87 + HYGON =3D bindings::PCI_VENDOR_ID_HYGON, = // 0x1d94 + META =3D bindings::PCI_VENDOR_ID_META, = // 0x1d9b + FUNGIBLE =3D bindings::PCI_VENDOR_ID_FUNGIBLE, = // 0x1dad + HXT =3D bindings::PCI_VENDOR_ID_HXT, = // 0x1dbf + TEKRAM =3D bindings::PCI_VENDOR_ID_TEKRAM, = // 0x1de1 + RPI =3D bindings::PCI_VENDOR_ID_RPI, = // 0x1de4 + ALIBABA =3D bindings::PCI_VENDOR_ID_ALIBABA, = // 0x1ded + CXL =3D bindings::PCI_VENDOR_ID_CXL, = // 0x1e98 + TEHUTI =3D bindings::PCI_VENDOR_ID_TEHUTI, = // 0x1fc9 + SUNIX =3D bindings::PCI_VENDOR_ID_SUNIX, = // 0x1fd4 + HINT =3D bindings::PCI_VENDOR_ID_HINT, = // 0x3388 + THREEDLABS =3D bindings::PCI_VENDOR_ID_3DLABS, = // 0x3d3d + NETXEN =3D bindings::PCI_VENDOR_ID_NETXEN, = // 0x4040 + AKS =3D bindings::PCI_VENDOR_ID_AKS, = // 0x416c + WCHCN =3D bindings::PCI_VENDOR_ID_WCHCN, = // 0x4348 + ACCESSIO =3D bindings::PCI_VENDOR_ID_ACCESSIO, = // 0x494f + S3 =3D bindings::PCI_VENDOR_ID_S3, = // 0x5333 + DUNORD =3D bindings::PCI_VENDOR_ID_DUNORD, = // 0x5544 + DCI =3D bindings::PCI_VENDOR_ID_DCI, = // 0x6666 + GLENFLY =3D bindings::PCI_VENDOR_ID_GLENFLY, = // 0x6766 + INTEL =3D bindings::PCI_VENDOR_ID_INTEL, = // 0x8086 + WANGXUN =3D bindings::PCI_VENDOR_ID_WANGXUN, = // 0x8088 + SCALEMP =3D bindings::PCI_VENDOR_ID_SCALEMP, = // 0x8686 + COMPUTONE =3D bindings::PCI_VENDOR_ID_COMPUTONE, = // 0x8e0e + KTI =3D bindings::PCI_VENDOR_ID_KTI, = // 0x8e2e + ADAPTEC =3D bindings::PCI_VENDOR_ID_ADAPTEC, = // 0x9004 + ADAPTEC2 =3D bindings::PCI_VENDOR_ID_ADAPTEC2, = // 0x9005 + HOLTEK =3D bindings::PCI_VENDOR_ID_HOLTEK, = // 0x9412 + NETMOS =3D bindings::PCI_VENDOR_ID_NETMOS, = // 0x9710 + THREECOM_2 =3D bindings::PCI_VENDOR_ID_3COM_2, = // 0xa727 + SOLIDRUN =3D bindings::PCI_VENDOR_ID_SOLIDRUN, = // 0xd063 + DIGIUM =3D bindings::PCI_VENDOR_ID_DIGIUM, = // 0xd161 + TIGERJET =3D bindings::PCI_VENDOR_ID_TIGERJET, = // 0xe159 + XILINX_RME =3D bindings::PCI_VENDOR_ID_XILINX_RME, = // 0xea60 + XEN =3D bindings::PCI_VENDOR_ID_XEN, = // 0x5853 + OCZ =3D bindings::PCI_VENDOR_ID_OCZ, = // 0x1b85 + NCUBE =3D bindings::PCI_VENDOR_ID_NCUBE, = // 0x10ff +} --=20 2.51.0