All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] parport: Consistently define pci_device_ids using named initializers
@ 2026-04-29 16:14 Uwe Kleine-König (The Capable Hub)
  2026-06-10 16:53 ` Uwe Kleine-König (The Capable Hub)
  0 siblings, 1 reply; 2+ messages in thread
From: Uwe Kleine-König (The Capable Hub) @ 2026-04-29 16:14 UTC (permalink / raw)
  To: Sudip Mukherjee; +Cc: Markus Schneider-Pargmann, linux-kernel

... and PCI device helpers.

The various struct pci_device_id arrays were initialized mostly by list
expressions. This isn't easily readable if you're not into PCI.

Use PCI_DEVICE* helper macros and named initializers which is more
explicit and thus easier to parse. Also skip explicit assignments of 0
(which the compiler then takes care of).

The secret plan is to make struct pci_device_id::driver_data an
anonymous union (similar to
https://lore.kernel.org/all/cover.1776579304.git.u.kleine-koenig@baylibre.com/)
and that requires named initializers. But it's also a nice cleanup on
its own.

This change doesn't introduce changes to the compiled pci_device_id
arrays. Tested on x86 and arm64.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
---
Hello,

the mentioned follow-up quest isn't relevant to the two parport drivers.
For other drivers it allows to do

	-	{ PCI_VDEVICE(TTI, 0x3220), .driver_data = (kernel_ulong_t)&hptiop_itl_ops },
	+	{ PCI_VDEVICE(TTI, 0x3220), .driver_data_ptr = &hptiop_itl_ops },

which gets rid of a bunch of casts and so brings a little bit more type
safety. This patch is a preparation for that.

Best regards
Uwe

 drivers/parport/parport_pc.c     | 204 +++++++++++-----------
 drivers/parport/parport_serial.c | 280 ++++++++++++++++---------------
 2 files changed, 257 insertions(+), 227 deletions(-)

diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index c75abdd8ef25..bccfe75fe6e5 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2745,116 +2745,128 @@ static struct parport_pc_pci {
 
 static const struct pci_device_id parport_pc_pci_tbl[] = {
 	/* Super-IO onboard chips */
-	{ 0x1106, 0x0686, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sio_via_686a },
-	{ 0x1106, 0x8231, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sio_via_8231 },
-	{ PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8872,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, sio_ite_8872 },
+	{ PCI_DEVICE(0x1106, 0x0686),
+	  .driver_data = sio_via_686a },
+	{ PCI_DEVICE(0x1106, 0x8231),
+	  .driver_data = sio_via_8231 },
+	{ PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8872),
+	  .driver_data = sio_ite_8872 },
 
 	/* PCI cards */
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1P_10x,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2P_10x,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1P_20x,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2P_20x,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2p_20x },
-	{ PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_PARALLEL,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, lava_parallel },
-	{ PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_DUAL_PAR_A,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, lava_parallel_dual_a },
-	{ PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_DUAL_PAR_B,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, lava_parallel_dual_b },
-	{ PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_BOCA_IOPPAR,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, boca_ioppar },
-	{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
-	  PCI_SUBVENDOR_ID_EXSYS, PCI_SUBDEVICE_ID_EXSYS_4014, 0, 0, plx_9050 },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1P_10x),
+	  .driver_data = siig_1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2P_10x),
+	  .driver_data = siig_2p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1P_20x),
+	  .driver_data = siig_1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2P_20x),
+	  .driver_data = siig_2p_20x },
+	{ PCI_VDEVICE(LAVA, PCI_DEVICE_ID_LAVA_PARALLEL),
+	  .driver_data = lava_parallel },
+	{ PCI_VDEVICE(LAVA, PCI_DEVICE_ID_LAVA_DUAL_PAR_A),
+	  .driver_data = lava_parallel_dual_a },
+	{ PCI_VDEVICE(LAVA, PCI_DEVICE_ID_LAVA_DUAL_PAR_B),
+	  .driver_data = lava_parallel_dual_b },
+	{ PCI_VDEVICE(LAVA, PCI_DEVICE_ID_LAVA_BOCA_IOPPAR),
+	  .driver_data = boca_ioppar },
+	{ PCI_VDEVICE_SUB(PLX, PCI_DEVICE_ID_PLX_9050,
+			  PCI_SUBVENDOR_ID_EXSYS, PCI_SUBDEVICE_ID_EXSYS_4014),
+	  .driver_data = plx_9050 },
 	/* PCI_VENDOR_ID_TIMEDIA/SUNIX has many differing cards ...*/
-	{ 0x1409, 0x7268, 0x1409, 0x0101, 0, 0, timedia_4006a },
-	{ 0x1409, 0x7268, 0x1409, 0x0102, 0, 0, timedia_4014 },
-	{ 0x1409, 0x7268, 0x1409, 0x0103, 0, 0, timedia_4008a },
-	{ 0x1409, 0x7268, 0x1409, 0x0104, 0, 0, timedia_4018 },
-	{ 0x1409, 0x7268, 0x1409, 0x9018, 0, 0, timedia_9018a },
-	{ PCI_VENDOR_ID_SYBA, PCI_DEVICE_ID_SYBA_2P_EPP,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, syba_2p_epp },
-	{ PCI_VENDOR_ID_SYBA, PCI_DEVICE_ID_SYBA_1P_ECP,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, syba_1p_ecp },
-	{ PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_010L,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_010l },
+	{ PCI_DEVICE_SUB(0x1409, 0x7268, 0x1409, 0x0101),
+	  .driver_data = timedia_4006a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7268, 0x1409, 0x0102),
+	  .driver_data = timedia_4014 },
+	{ PCI_DEVICE_SUB(0x1409, 0x7268, 0x1409, 0x0103),
+	  .driver_data = timedia_4008a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7268, 0x1409, 0x0104),
+	  .driver_data = timedia_4018 },
+	{ PCI_DEVICE_SUB(0x1409, 0x7268, 0x1409, 0x9018),
+	  .driver_data = timedia_9018a },
+	{ PCI_VDEVICE(SYBA, PCI_DEVICE_ID_SYBA_2P_EPP),
+	  .driver_data = syba_2p_epp },
+	{ PCI_VDEVICE(SYBA, PCI_DEVICE_ID_SYBA_1P_ECP),
+	  .driver_data = syba_1p_ecp },
+	{ PCI_VDEVICE(TITAN, PCI_DEVICE_ID_TITAN_010L),
+	  .driver_data = titan_010l },
 	/* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/
 	/* AFAVLAB_TK9902 */
-	{ 0x14db, 0x2120, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1p},
-	{ 0x14db, 0x2121, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_2p},
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952PP,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_952 },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954PP,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_954 },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_12PCI840,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_840 },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe840,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe840_G,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_0,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_0_G,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_G,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_U,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_GU,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ PCI_VENDOR_ID_AKS, PCI_DEVICE_ID_AKS_ALADDINCARD,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, aks_0100 },
-	{ 0x14f2, 0x0121, PCI_ANY_ID, PCI_ANY_ID, 0, 0, mobility_pp },
+	{ PCI_DEVICE(0x14db, 0x2120),
+	  .driver_data = avlab_1p },
+	{ PCI_DEVICE(0x14db, 0x2121),
+	  .driver_data = avlab_2p },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952PP),
+	  .driver_data = oxsemi_952 },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954PP),
+	  .driver_data = oxsemi_954 },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_12PCI840),
+	  .driver_data = oxsemi_840 },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe840),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe840_G),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_0),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_0_G),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_G),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_U),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(OXSEMI, PCI_DEVICE_ID_OXSEMI_PCIe952_1_GU),
+	  .driver_data = oxsemi_pcie_pport },
+	{ PCI_VDEVICE(AKS, PCI_DEVICE_ID_AKS_ALADDINCARD),
+	  .driver_data = aks_0100 },
+	{ PCI_DEVICE(0x14f2, 0x0121),
+	  .driver_data = mobility_pp },
 	/* NetMos communication controllers */
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900,
-	  0xA000, 0x2000, 0, 0, netmos_9900 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9705,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9705 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9715,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9715 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9755,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9755 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9805,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9805 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9815,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9815 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
-	  0xA000, 0x2000, 0, 0, netmos_9901 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
-	  0xA000, 0x1000, 0, 0, netmos_9865 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
-	  0xA000, 0x2000, 0, 0, netmos_9865 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9900, 0xA000, 0x2000),
+	  .driver_data = netmos_9900 },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9705),
+	  .driver_data = netmos_9705 },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9715),
+	  .driver_data = netmos_9715 },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9755),
+	  .driver_data = netmos_9755 },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9805),
+	  .driver_data = netmos_9805 },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9815),
+	  .driver_data = netmos_9815 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9901, 0xA000, 0x2000),
+	  .driver_data = netmos_9901 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9865, 0xA000, 0x1000),
+	  .driver_data = netmos_9865 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9865, 0xA000, 0x2000),
+	  .driver_data = netmos_9865 },
 	/* ASIX AX99100 PCIe to Multi I/O Controller */
-	{ PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
-	  0xA000, 0x2000, 0, 0, asix_ax99100 },
+	{ PCI_VDEVICE_SUB(ASIX, PCI_DEVICE_ID_ASIX_AX99100, 0xA000, 0x2000),
+	  .driver_data = asix_ax99100 },
 	/* Quatech SPPXP-100 Parallel port PCI ExpressCard */
-	{ PCI_VENDOR_ID_QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 },
+	{ PCI_VDEVICE(QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100),
+	  .driver_data = quatech_sppxp100 },
 	/* WCH CH382L PCI-E single parallel port card */
-	{ 0x1c00, 0x3050, 0x1c00, 0x3050, 0, 0, wch_ch382l },
+	{ PCI_DEVICE_SUB(0x1c00, 0x3050, 0x1c00, 0x3050),
+	  .driver_data = wch_ch382l },
 	/* Brainboxes IX-500/550 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x402a,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
+	{ PCI_VDEVICE(INTASHIELD, 0x402a),
+	  .driver_data = oxsemi_pcie_pport },
 	/* Brainboxes UC-146/UC-157 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0be1,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc146 },
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0be2,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc146 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0be1),
+	  .driver_data = brainboxes_uc146 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0be2),
+	  .driver_data = brainboxes_uc146 },
 	/* Brainboxes PX-146/PX-257 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x401c,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
+	{ PCI_VDEVICE(INTASHIELD, 0x401c),
+	  .driver_data = oxsemi_pcie_pport },
 	/* Brainboxes PX-203 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x4007,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_px203 },
+	{ PCI_VDEVICE(INTASHIELD, 0x4007),
+	  .driver_data = brainboxes_px203 },
 	/* Brainboxes PX-475 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x401f,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport },
-	{ 0, } /* terminate list */
+	{ PCI_VDEVICE(INTASHIELD, 0x401f),
+	  .driver_data = oxsemi_pcie_pport },
+	{ } /* terminate list */
 };
 MODULE_DEVICE_TABLE(pci, parport_pc_pci_tbl);
 
diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c
index 24d4f3a3ec3d..4d4140c8584d 100644
--- a/drivers/parport/parport_serial.c
+++ b/drivers/parport/parport_serial.c
@@ -170,158 +170,176 @@ static struct parport_pc_pci cards[] = {
 
 static struct pci_device_id parport_serial_pci_tbl[] = {
 	/* PCI cards */
-	{ PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_110L,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_110l },
-	{ PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_210L,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_210l },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9735,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9xx5_combo },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9745,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9xx5_combo },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9835,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9xx5_combo },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9845,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9xx5_combo },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855,
-	  0x1000, 0x0020, 0, 0, netmos_9855_2p },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855,
-	  0x1000, 0x0022, 0, 0, netmos_9855_2p },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9855 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900,
-	  0xA000, 0x3011, 0, 0, netmos_9900 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900,
-	  0xA000, 0x3012, 0, 0, netmos_9900 },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9900,
-	  0xA000, 0x3020, 0, 0, netmos_9900_2p },
-	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9912,
-	  0xA000, 0x2000, 0, 0, netmos_99xx_1p },
+	{ PCI_VDEVICE(TITAN, PCI_DEVICE_ID_TITAN_110L),
+	  .driver_data = titan_110l },
+	{ PCI_VDEVICE(TITAN, PCI_DEVICE_ID_TITAN_210L),
+	  .driver_data = titan_210l },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9735),
+	  .driver_data = netmos_9xx5_combo },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9745),
+	  .driver_data = netmos_9xx5_combo },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9835),
+	  .driver_data = netmos_9xx5_combo },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9845),
+	  .driver_data = netmos_9xx5_combo },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9855, 0x1000, 0x0020),
+	  .driver_data = netmos_9855_2p },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9855, 0x1000, 0x0022),
+	  .driver_data = netmos_9855_2p },
+	{ PCI_VDEVICE(NETMOS, PCI_DEVICE_ID_NETMOS_9855),
+	  .driver_data = netmos_9855 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9900, 0xA000, 0x3011),
+	  .driver_data = netmos_9900 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9900, 0xA000, 0x3012),
+	  .driver_data = netmos_9900 },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9900, 0xA000, 0x3020),
+	  .driver_data = netmos_9900_2p },
+	{ PCI_VDEVICE_SUB(NETMOS, PCI_DEVICE_ID_NETMOS_9912, 0xA000, 0x2000),
+	  .driver_data = netmos_99xx_1p },
 	/* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2110,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2111,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2112,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2140,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s2p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2141,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s2p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2142,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s2p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2160,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_2s1p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2161,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_2s1p },
-	{ PCI_VENDOR_ID_AFAVLAB, 0x2162,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_2s1p },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_550,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_650,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_850,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_550,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_650,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_850,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_10x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_550,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2p1s_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_650,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2p1s_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_850,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2p1s_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_550,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_650,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1s1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_850,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_1s1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_550,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_650,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x },
-	{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_850,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, siig_2s1p_20x },
+	{ PCI_VDEVICE(AFAVLAB, 0x2110),
+	  .driver_data = avlab_1s1p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2111),
+	  .driver_data = avlab_1s1p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2112),
+	  .driver_data = avlab_1s1p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2140),
+	  .driver_data = avlab_1s2p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2141),
+	  .driver_data = avlab_1s2p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2142),
+	  .driver_data = avlab_1s2p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2160),
+	  .driver_data = avlab_2s1p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2161),
+	  .driver_data = avlab_2s1p },
+	{ PCI_VDEVICE(AFAVLAB, 0x2162),
+	  .driver_data = avlab_2s1p },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_550),
+	  .driver_data = siig_1s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_650),
+	  .driver_data = siig_1s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_10x_850),
+	  .driver_data = siig_1s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_550),
+	  .driver_data = siig_2s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_650),
+	  .driver_data = siig_2s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_10x_850),
+	  .driver_data = siig_2s1p_10x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_550),
+	  .driver_data = siig_2p1s_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_650),
+	  .driver_data = siig_2p1s_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2P1S_20x_850),
+	  .driver_data = siig_2p1s_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_550),
+	  .driver_data = siig_2s1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_650),
+	  .driver_data = siig_1s1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_1S1P_20x_850),
+	  .driver_data = siig_1s1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_550),
+	  .driver_data = siig_2s1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_650),
+	  .driver_data = siig_2s1p_20x },
+	{ PCI_VDEVICE(SIIG, PCI_DEVICE_ID_SIIG_2S1P_20x_850),
+	  .driver_data = siig_2s1p_20x },
 	/* PCI_VENDOR_ID_TIMEDIA/SUNIX has many differing cards ...*/
-	{ 0x1409, 0x7168, 0x1409, 0x4078, 0, 0, timedia_4078a },
-	{ 0x1409, 0x7168, 0x1409, 0x4079, 0, 0, timedia_4079h },
-	{ 0x1409, 0x7168, 0x1409, 0x4085, 0, 0, timedia_4085h },
-	{ 0x1409, 0x7168, 0x1409, 0x4088, 0, 0, timedia_4088a },
-	{ 0x1409, 0x7168, 0x1409, 0x4089, 0, 0, timedia_4089a },
-	{ 0x1409, 0x7168, 0x1409, 0x4095, 0, 0, timedia_4095a },
-	{ 0x1409, 0x7168, 0x1409, 0x4096, 0, 0, timedia_4096a },
-	{ 0x1409, 0x7168, 0x1409, 0x5078, 0, 0, timedia_4078u },
-	{ 0x1409, 0x7168, 0x1409, 0x5079, 0, 0, timedia_4079a },
-	{ 0x1409, 0x7168, 0x1409, 0x5085, 0, 0, timedia_4085u },
-	{ 0x1409, 0x7168, 0x1409, 0x6079, 0, 0, timedia_4079r },
-	{ 0x1409, 0x7168, 0x1409, 0x7079, 0, 0, timedia_4079s },
-	{ 0x1409, 0x7168, 0x1409, 0x8079, 0, 0, timedia_4079d },
-	{ 0x1409, 0x7168, 0x1409, 0x9079, 0, 0, timedia_4079e },
-	{ 0x1409, 0x7168, 0x1409, 0xa079, 0, 0, timedia_4079f },
-	{ 0x1409, 0x7168, 0x1409, 0xb079, 0, 0, timedia_9079a },
-	{ 0x1409, 0x7168, 0x1409, 0xc079, 0, 0, timedia_9079b },
-	{ 0x1409, 0x7168, 0x1409, 0xd079, 0, 0, timedia_9079c },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4078),
+	  .driver_data = timedia_4078a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4079),
+	  .driver_data = timedia_4079h },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4085),
+	  .driver_data = timedia_4085h },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4088),
+	  .driver_data = timedia_4088a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4089),
+	  .driver_data = timedia_4089a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4095),
+	  .driver_data = timedia_4095a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x4096),
+	  .driver_data = timedia_4096a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x5078),
+	  .driver_data = timedia_4078u },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x5079),
+	  .driver_data = timedia_4079a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x5085),
+	  .driver_data = timedia_4085u },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x6079),
+	  .driver_data = timedia_4079r },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x7079),
+	  .driver_data = timedia_4079s },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x8079),
+	  .driver_data = timedia_4079d },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0x9079),
+	  .driver_data = timedia_4079e },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0xa079),
+	  .driver_data = timedia_4079f },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0xb079),
+	  .driver_data = timedia_9079a },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0xc079),
+	  .driver_data = timedia_9079b },
+	{ PCI_DEVICE_SUB(0x1409, 0x7168, 0x1409, 0xd079),
+	  .driver_data = timedia_9079c },
 
 	/* WCH CARDS */
-	{ PCI_VENDOR_ID_WCHCN, PCI_DEVICE_ID_WCHCN_CH353_1S1P,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, wch_ch353_1s1p },
-	{ PCI_VENDOR_ID_WCHCN, PCI_DEVICE_ID_WCHCN_CH353_2S1P,
-	  0x4348, 0x3253, 0, 0, wch_ch353_2s1p },
-	{ PCI_VENDOR_ID_WCHIC, PCI_DEVICE_ID_WCHIC_CH382_0S1P,
-	  0x1c00, 0x3050, 0, 0, wch_ch382_0s1p },
-	{ PCI_VENDOR_ID_WCHIC, PCI_DEVICE_ID_WCHIC_CH382_2S1P,
-	  0x1c00, 0x3250, 0, 0, wch_ch382_2s1p },
+	{ PCI_VDEVICE(WCHCN, PCI_DEVICE_ID_WCHCN_CH353_1S1P),
+	  .driver_data = wch_ch353_1s1p },
+	{ PCI_VDEVICE_SUB(WCHCN, PCI_DEVICE_ID_WCHCN_CH353_2S1P, 0x4348, 0x3253),
+	  .driver_data = wch_ch353_2s1p },
+	{ PCI_VDEVICE_SUB(WCHIC, PCI_DEVICE_ID_WCHIC_CH382_0S1P, 0x1c00, 0x3050),
+	  .driver_data = wch_ch382_0s1p },
+	{ PCI_VDEVICE_SUB(WCHIC, PCI_DEVICE_ID_WCHIC_CH382_2S1P, 0x1c00, 0x3250),
+	  .driver_data = wch_ch382_2s1p },
 
 	/* BrainBoxes PX272/PX306 MIO card */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x4100,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_5s1p },
+	{ PCI_VDEVICE(INTASHIELD, 0x4100),
+	  .driver_data = brainboxes_5s1p },
 
 	/* Sunix boards */
-	{ PCI_VENDOR_ID_SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX,
-	  0x0100, 0, 0, sunix_4008a },
-	{ PCI_VENDOR_ID_SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX,
-	  0x0101, 0, 0, sunix_5069a },
-	{ PCI_VENDOR_ID_SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX,
-	  0x0102, 0, 0, sunix_5079a },
-	{ PCI_VENDOR_ID_SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX,
-	  0x0104, 0, 0, sunix_5099a },
+	{ PCI_VDEVICE_SUB(SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX, 0x0100),
+	  .driver_data = sunix_4008a },
+	{ PCI_VDEVICE_SUB(SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX, 0x0101),
+	  .driver_data = sunix_5069a },
+	{ PCI_VDEVICE_SUB(SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX, 0x0102),
+	  .driver_data = sunix_5079a },
+	{ PCI_VDEVICE_SUB(SUNIX, PCI_DEVICE_ID_SUNIX_1999, PCI_VENDOR_ID_SUNIX, 0x0104),
+	  .driver_data = sunix_5099a },
 
 	/* Brainboxes UC-203 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0bc1,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0bc2,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0bc1),
+	  .driver_data = brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0bc2),
+	  .driver_data = brainboxes_uc257 },
 
 	/* Brainboxes UC-257 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0861,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0862,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0863,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0861),
+	  .driver_data = brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0862),
+	  .driver_data = brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0863),
+	  .driver_data = brainboxes_uc257 },
 
 	/* Brainboxes UC-414 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0e61,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc414 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0e61),
+	  .driver_data = brainboxes_uc414 },
 
 	/* Brainboxes UC-475 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0981,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0982,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0981),
+	  .driver_data = brainboxes_uc257 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0982),
+	  .driver_data = brainboxes_uc257 },
 
 	/* Brainboxes IS-300/IS-500 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x0da0,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_is300 },
+	{ PCI_VDEVICE(INTASHIELD, 0x0da0),
+	  .driver_data = brainboxes_is300 },
 
 	/* Brainboxes PX-263/PX-295 */
-	{ PCI_VENDOR_ID_INTASHIELD, 0x402c,
-	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_px263 },
+	{ PCI_VDEVICE(INTASHIELD, 0x402c),
+	  .driver_data = brainboxes_px263 },
 
-	{ 0, } /* terminate list */
+	{ } /* terminate list */
 };
 MODULE_DEVICE_TABLE(pci,parport_serial_pci_tbl);
 

base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-10 16:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-29 16:14 [PATCH] parport: Consistently define pci_device_ids using named initializers Uwe Kleine-König (The Capable Hub)
2026-06-10 16:53 ` Uwe Kleine-König (The Capable Hub)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.