* [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.