]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ata: Use named initializers for pci_device_id arrays
authorUwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Fri, 12 Jun 2026 08:21:48 +0000 (10:21 +0200)
committerNiklas Cassel <cassel@kernel.org>
Fri, 12 Jun 2026 09:44:30 +0000 (11:44 +0200)
While being less compact, using named initializers allows to more easily
see which members of the structs are assigned which value without having
to lookup the declaration of the struct. And it's also more robust
against changes to the struct definition.

The mentioned robustness is relevant for a planned change to struct
pci_device_id that replaces .driver_data by an anonymous union.

Also drop the comma after a few list terminators.

This patch doesn't modify the compiled array, only their representation
in source form benefits. The former was confirmed with x86 and arm64
builds.

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
25 files changed:
drivers/ata/acard-ahci.c
drivers/ata/ahci.c
drivers/ata/ata_piix.c
drivers/ata/pata_acpi.c
drivers/ata/pata_amd.c
drivers/ata/pata_artop.c
drivers/ata/pata_cmd64x.c
drivers/ata/pata_opti.c
drivers/ata/pata_pdc2027x.c
drivers/ata/pata_pdc202xx_old.c
drivers/ata/pata_serverworks.c
drivers/ata/pata_sis.c
drivers/ata/pata_via.c
drivers/ata/pdc_adma.c
drivers/ata/sata_mv.c
drivers/ata/sata_nv.c
drivers/ata/sata_promise.c
drivers/ata/sata_qstor.c
drivers/ata/sata_sil.c
drivers/ata/sata_sil24.c
drivers/ata/sata_sis.c
drivers/ata/sata_svw.c
drivers/ata/sata_sx4.c
drivers/ata/sata_uli.c
drivers/ata/sata_via.c

index 3999305b535603d094879435bb4e2e8fef4fc113..402d3304b94be6ab7dfa12c2b9e106fafaf16863 100644 (file)
@@ -91,9 +91,11 @@ static const struct ata_port_info acard_ahci_port_info[] = {
 };
 
 static const struct pci_device_id acard_ahci_pci_tbl[] = {
-       /* ACard */
-       { PCI_VDEVICE(ARTOP, 0x000d), board_acard_ahci }, /* ATP8620 */
-
+       {
+               /* ACard ATP8620 */
+               PCI_VDEVICE(ARTOP, 0x000d),
+               .driver_data = board_acard_ahci,
+       },
        { }    /* terminate list */
 };
 
index b4e5d347151a9085cefa09e7c30b30e124e44cd1..58f512f8952a923f3272665417815a75b9d23431 100644 (file)
@@ -279,384 +279,1312 @@ static const struct ata_port_info ahci_port_info[] = {
 
 static const struct pci_device_id ahci_pci_tbl[] = {
        /* Intel */
-       { PCI_VDEVICE(INTEL, 0x06d6), board_ahci_pcs_quirk }, /* Comet Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x2652), board_ahci_pcs_quirk }, /* ICH6 */
-       { PCI_VDEVICE(INTEL, 0x2653), board_ahci_pcs_quirk }, /* ICH6M */
-       { PCI_VDEVICE(INTEL, 0x27c1), board_ahci_pcs_quirk }, /* ICH7 */
-       { PCI_VDEVICE(INTEL, 0x27c5), board_ahci_pcs_quirk }, /* ICH7M */
-       { PCI_VDEVICE(INTEL, 0x27c3), board_ahci_pcs_quirk }, /* ICH7R */
-       { PCI_VDEVICE(AL, 0x5288), board_ahci_ign_iferr }, /* ULi M5288 */
-       { PCI_VDEVICE(INTEL, 0x2681), board_ahci_pcs_quirk }, /* ESB2 */
-       { PCI_VDEVICE(INTEL, 0x2682), board_ahci_pcs_quirk }, /* ESB2 */
-       { PCI_VDEVICE(INTEL, 0x2683), board_ahci_pcs_quirk }, /* ESB2 */
-       { PCI_VDEVICE(INTEL, 0x27c6), board_ahci_pcs_quirk }, /* ICH7-M DH */
-       { PCI_VDEVICE(INTEL, 0x2821), board_ahci_pcs_quirk }, /* ICH8 */
-       { PCI_VDEVICE(INTEL, 0x2822), board_ahci_pcs_quirk_no_sntf }, /* ICH8/Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0x2824), board_ahci_pcs_quirk }, /* ICH8 */
-       { PCI_VDEVICE(INTEL, 0x2829), board_ahci_pcs_quirk }, /* ICH8M */
-       { PCI_VDEVICE(INTEL, 0x282a), board_ahci_pcs_quirk }, /* ICH8M */
-       { PCI_VDEVICE(INTEL, 0x2922), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x2923), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x2924), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x2925), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x2927), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x2929), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x292a), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x292b), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x292c), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x292f), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x294d), board_ahci_pcs_quirk }, /* ICH9 */
-       { PCI_VDEVICE(INTEL, 0x294e), board_ahci_pcs_quirk }, /* ICH9M */
-       { PCI_VDEVICE(INTEL, 0x502a), board_ahci_pcs_quirk }, /* Tolapai */
-       { PCI_VDEVICE(INTEL, 0x502b), board_ahci_pcs_quirk }, /* Tolapai */
-       { PCI_VDEVICE(INTEL, 0x3a05), board_ahci_pcs_quirk }, /* ICH10 */
-       { PCI_VDEVICE(INTEL, 0x3a22), board_ahci_pcs_quirk }, /* ICH10 */
-       { PCI_VDEVICE(INTEL, 0x3a25), board_ahci_pcs_quirk }, /* ICH10 */
-       { PCI_VDEVICE(INTEL, 0x3b22), board_ahci_pcs_quirk }, /* PCH AHCI */
-       { PCI_VDEVICE(INTEL, 0x3b23), board_ahci_pcs_quirk }, /* PCH AHCI */
-       { PCI_VDEVICE(INTEL, 0x3b24), board_ahci_pcs_quirk }, /* PCH RAID */
-       { PCI_VDEVICE(INTEL, 0x3b25), board_ahci_pcs_quirk }, /* PCH RAID */
-       { PCI_VDEVICE(INTEL, 0x3b29), board_ahci_pcs_quirk }, /* PCH M AHCI */
-       { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci_pcs_quirk }, /* PCH RAID */
-       { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci_pcs_quirk }, /* PCH M RAID */
-       { PCI_VDEVICE(INTEL, 0x3b2f), board_ahci_pcs_quirk }, /* PCH AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b0), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b1), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b2), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b3), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b4), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b5), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b6), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19b7), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19bE), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19bF), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c0), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c1), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c2), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c3), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c4), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c5), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c6), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19c7), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19cE), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x19cF), board_ahci }, /* DNV AHCI */
-       { PCI_VDEVICE(INTEL, 0x1c02), board_ahci_pcs_quirk }, /* CPT AHCI */
-       { PCI_VDEVICE(INTEL, 0x1c03), board_ahci_pcs_quirk }, /* CPT M AHCI */
-       { PCI_VDEVICE(INTEL, 0x1c04), board_ahci_pcs_quirk }, /* CPT RAID */
-       { PCI_VDEVICE(INTEL, 0x1c05), board_ahci_pcs_quirk }, /* CPT M RAID */
-       { PCI_VDEVICE(INTEL, 0x1c06), board_ahci_pcs_quirk }, /* CPT RAID */
-       { PCI_VDEVICE(INTEL, 0x1c07), board_ahci_pcs_quirk }, /* CPT RAID */
-       { PCI_VDEVICE(INTEL, 0x1d02), board_ahci_pcs_quirk }, /* PBG AHCI */
-       { PCI_VDEVICE(INTEL, 0x1d04), board_ahci_pcs_quirk }, /* PBG RAID */
-       { PCI_VDEVICE(INTEL, 0x1d06), board_ahci_pcs_quirk }, /* PBG RAID */
-       { PCI_VDEVICE(INTEL, 0x2323), board_ahci_pcs_quirk }, /* DH89xxCC AHCI */
-       { PCI_VDEVICE(INTEL, 0x1e02), board_ahci_pcs_quirk }, /* Panther Point AHCI */
-       { PCI_VDEVICE(INTEL, 0x1e03), board_ahci_pcs_quirk }, /* Panther M AHCI */
-       { PCI_VDEVICE(INTEL, 0x1e04), board_ahci_pcs_quirk }, /* Panther Point RAID */
-       { PCI_VDEVICE(INTEL, 0x1e05), board_ahci_pcs_quirk }, /* Panther Point RAID */
-       { PCI_VDEVICE(INTEL, 0x1e06), board_ahci_pcs_quirk }, /* Panther Point RAID */
-       { PCI_VDEVICE(INTEL, 0x1e07), board_ahci_pcs_quirk }, /* Panther M RAID */
-       { PCI_VDEVICE(INTEL, 0x1e0e), board_ahci_pcs_quirk }, /* Panther Point RAID */
-       { PCI_VDEVICE(INTEL, 0x8c02), board_ahci_pcs_quirk }, /* Lynx Point AHCI */
-       { PCI_VDEVICE(INTEL, 0x8c03), board_ahci_pcs_quirk }, /* Lynx M AHCI */
-       { PCI_VDEVICE(INTEL, 0x8c04), board_ahci_pcs_quirk }, /* Lynx Point RAID */
-       { PCI_VDEVICE(INTEL, 0x8c05), board_ahci_pcs_quirk }, /* Lynx M RAID */
-       { PCI_VDEVICE(INTEL, 0x8c06), board_ahci_pcs_quirk }, /* Lynx Point RAID */
-       { PCI_VDEVICE(INTEL, 0x8c07), board_ahci_pcs_quirk }, /* Lynx M RAID */
-       { PCI_VDEVICE(INTEL, 0x8c0e), board_ahci_pcs_quirk }, /* Lynx Point RAID */
-       { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci_pcs_quirk }, /* Lynx M RAID */
-       { PCI_VDEVICE(INTEL, 0x9c02), board_ahci_pcs_quirk }, /* Lynx LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x9c03), board_ahci_pcs_quirk }, /* Lynx LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x9c04), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c05), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c06), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c07), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci_pcs_quirk }, /* Lynx LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9dd3), board_ahci_pcs_quirk }, /* Cannon Lake PCH-LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x1f22), board_ahci_pcs_quirk }, /* Avoton AHCI */
-       { PCI_VDEVICE(INTEL, 0x1f23), board_ahci_pcs_quirk }, /* Avoton AHCI */
-       { PCI_VDEVICE(INTEL, 0x1f24), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f25), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f26), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f27), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f2e), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f2f), board_ahci_pcs_quirk }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f32), board_ahci_avn }, /* Avoton AHCI */
-       { PCI_VDEVICE(INTEL, 0x1f33), board_ahci_avn }, /* Avoton AHCI */
-       { PCI_VDEVICE(INTEL, 0x1f34), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f35), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f36), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */
-       { PCI_VDEVICE(INTEL, 0x2823), board_ahci_pcs_quirk }, /* Wellsburg/Lewisburg AHCI*/
-       { PCI_VDEVICE(INTEL, 0x2826), board_ahci_pcs_quirk }, /* *burg SATA0 'RAID' */
-       { PCI_VDEVICE(INTEL, 0x2827), board_ahci_pcs_quirk }, /* *burg SATA1 'RAID' */
-       { PCI_VDEVICE(INTEL, 0x282f), board_ahci_pcs_quirk }, /* *burg SATA2 'RAID' */
-       { PCI_VDEVICE(INTEL, 0x43d4), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x43d5), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x43d6), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x43d7), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x8d02), board_ahci_pcs_quirk }, /* Wellsburg AHCI */
-       { PCI_VDEVICE(INTEL, 0x8d04), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x8d06), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x8d0e), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x8d62), board_ahci_pcs_quirk }, /* Wellsburg AHCI */
-       { PCI_VDEVICE(INTEL, 0x8d64), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x8d66), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x8d6e), board_ahci_pcs_quirk }, /* Wellsburg RAID */
-       { PCI_VDEVICE(INTEL, 0x23a3), board_ahci_pcs_quirk }, /* Coleto Creek AHCI */
-       { PCI_VDEVICE(INTEL, 0x9c83), board_ahci_pcs_quirk }, /* Wildcat LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x9c85), board_ahci_pcs_quirk }, /* Wildcat LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c87), board_ahci_pcs_quirk }, /* Wildcat LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9c8f), board_ahci_pcs_quirk }, /* Wildcat LP RAID */
-       { PCI_VDEVICE(INTEL, 0x8c82), board_ahci_pcs_quirk }, /* 9 Series AHCI */
-       { PCI_VDEVICE(INTEL, 0x8c83), board_ahci_pcs_quirk }, /* 9 Series M AHCI */
-       { PCI_VDEVICE(INTEL, 0x8c84), board_ahci_pcs_quirk }, /* 9 Series RAID */
-       { PCI_VDEVICE(INTEL, 0x8c85), board_ahci_pcs_quirk }, /* 9 Series M RAID */
-       { PCI_VDEVICE(INTEL, 0x8c86), board_ahci_pcs_quirk }, /* 9 Series RAID */
-       { PCI_VDEVICE(INTEL, 0x8c87), board_ahci_pcs_quirk }, /* 9 Series M RAID */
-       { PCI_VDEVICE(INTEL, 0x8c8e), board_ahci_pcs_quirk }, /* 9 Series RAID */
-       { PCI_VDEVICE(INTEL, 0x8c8f), board_ahci_pcs_quirk }, /* 9 Series M RAID */
-       { PCI_VDEVICE(INTEL, 0x9d03), board_ahci_pcs_quirk }, /* Sunrise LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x9d05), board_ahci_pcs_quirk }, /* Sunrise LP RAID */
-       { PCI_VDEVICE(INTEL, 0x9d07), board_ahci_pcs_quirk }, /* Sunrise LP RAID */
-       { PCI_VDEVICE(INTEL, 0xa102), board_ahci_pcs_quirk }, /* Sunrise Point-H AHCI */
-       { PCI_VDEVICE(INTEL, 0xa103), board_ahci_pcs_quirk }, /* Sunrise M AHCI */
-       { PCI_VDEVICE(INTEL, 0xa105), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */
-       { PCI_VDEVICE(INTEL, 0xa106), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */
-       { PCI_VDEVICE(INTEL, 0xa107), board_ahci_pcs_quirk }, /* Sunrise M RAID */
-       { PCI_VDEVICE(INTEL, 0xa10f), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */
-       { PCI_VDEVICE(INTEL, 0xa182), board_ahci_pcs_quirk }, /* Lewisburg AHCI*/
-       { PCI_VDEVICE(INTEL, 0xa186), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa1d2), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa1d6), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa202), board_ahci_pcs_quirk }, /* Lewisburg AHCI*/
-       { PCI_VDEVICE(INTEL, 0xa206), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa252), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa256), board_ahci_pcs_quirk }, /* Lewisburg RAID*/
-       { PCI_VDEVICE(INTEL, 0xa356), board_ahci_pcs_quirk }, /* Cannon Lake PCH-H RAID */
-       { PCI_VDEVICE(INTEL, 0x06d7), board_ahci_pcs_quirk }, /* Comet Lake-H RAID */
-       { PCI_VDEVICE(INTEL, 0xa386), board_ahci_pcs_quirk }, /* Comet Lake PCH-V RAID */
-       { PCI_VDEVICE(INTEL, 0x0f22), board_ahci_pcs_quirk }, /* Bay Trail AHCI */
-       { PCI_VDEVICE(INTEL, 0x0f23), board_ahci_pcs_quirk_no_devslp }, /* Bay Trail AHCI */
-       { PCI_VDEVICE(INTEL, 0x22a3), board_ahci_pcs_quirk }, /* Cherry Tr. AHCI */
-       { PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_pcs_quirk }, /* ApolloLake AHCI */
-       { PCI_VDEVICE(INTEL, 0x34d3), board_ahci_pcs_quirk }, /* Ice Lake LP AHCI */
-       { PCI_VDEVICE(INTEL, 0x02d3), board_ahci_pcs_quirk }, /* Comet Lake PCH-U AHCI */
-       { PCI_VDEVICE(INTEL, 0x02d7), board_ahci_pcs_quirk }, /* Comet Lake PCH RAID */
-       /* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */
-       { PCI_VDEVICE(INTEL, 0x4b63), board_ahci_pcs_quirk }, /* Elkhart Lake AHCI */
+       {
+               /* Comet Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0x06d6),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH6 */
+               PCI_VDEVICE(INTEL, 0x2652),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH6M */
+               PCI_VDEVICE(INTEL, 0x2653),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH7 */
+               PCI_VDEVICE(INTEL, 0x27c1),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH7M */
+               PCI_VDEVICE(INTEL, 0x27c5),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH7R */
+               PCI_VDEVICE(INTEL, 0x27c3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ULi M5288 */
+               PCI_VDEVICE(AL, 0x5288),
+               .driver_data = board_ahci_ign_iferr,
+       }, {
+               /* ESB2 */
+               PCI_VDEVICE(INTEL, 0x2681),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ESB2 */
+               PCI_VDEVICE(INTEL, 0x2682),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ESB2 */
+               PCI_VDEVICE(INTEL, 0x2683),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH7-M DH */
+               PCI_VDEVICE(INTEL, 0x27c6),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH8 */
+               PCI_VDEVICE(INTEL, 0x2821),
+                       .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH8/Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0x2822),
+                       .driver_data = board_ahci_pcs_quirk_no_sntf,
+       }, {
+               /* ICH8 */
+               PCI_VDEVICE(INTEL, 0x2824),
+                       .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH8M */
+               PCI_VDEVICE(INTEL, 0x2829),
+                       .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH8M */
+               PCI_VDEVICE(INTEL, 0x282a),
+                       .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x2922),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x2923),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x2924),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x2925),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x2927),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x2929),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x292a),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x292b),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x292c),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x292f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9 */
+               PCI_VDEVICE(INTEL, 0x294d),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH9M */
+               PCI_VDEVICE(INTEL, 0x294e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Tolapai */
+               PCI_VDEVICE(INTEL, 0x502a),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Tolapai */
+               PCI_VDEVICE(INTEL, 0x502b),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH10 */
+               PCI_VDEVICE(INTEL, 0x3a05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH10 */
+               PCI_VDEVICE(INTEL, 0x3a22),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ICH10 */
+               PCI_VDEVICE(INTEL, 0x3a25),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH AHCI */
+               PCI_VDEVICE(INTEL, 0x3b22),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH AHCI */
+               PCI_VDEVICE(INTEL, 0x3b23),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH RAID */
+               PCI_VDEVICE(INTEL, 0x3b24),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH RAID */
+               PCI_VDEVICE(INTEL, 0x3b25),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH M AHCI */
+               PCI_VDEVICE(INTEL, 0x3b29),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH RAID */
+               PCI_VDEVICE(INTEL, 0x3b2b),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH M RAID */
+               PCI_VDEVICE(INTEL, 0x3b2c),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PCH AHCI */
+               PCI_VDEVICE(INTEL, 0x3b2f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b0),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b1),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b2),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b3),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b4),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b5),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b6),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19b7),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19bE),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19bF),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c0),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c1),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c2),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c3),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c4),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c5),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c6),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19c7),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19cE),
+               .driver_data = board_ahci,
+       }, {
+               /* DNV AHCI */
+               PCI_VDEVICE(INTEL, 0x19cF),
+               .driver_data = board_ahci,
+       }, {
+               /* CPT AHCI */
+               PCI_VDEVICE(INTEL, 0x1c02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* CPT M AHCI */
+               PCI_VDEVICE(INTEL, 0x1c03),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* CPT RAID */
+               PCI_VDEVICE(INTEL, 0x1c04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* CPT M RAID */
+               PCI_VDEVICE(INTEL, 0x1c05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* CPT RAID */
+               PCI_VDEVICE(INTEL, 0x1c06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* CPT RAID */
+               PCI_VDEVICE(INTEL, 0x1c07),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PBG AHCI */
+               PCI_VDEVICE(INTEL, 0x1d02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PBG RAID */
+               PCI_VDEVICE(INTEL, 0x1d04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* PBG RAID */
+               PCI_VDEVICE(INTEL, 0x1d06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* DH89xxCC AHCI */
+               PCI_VDEVICE(INTEL, 0x2323),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther Point AHCI */
+               PCI_VDEVICE(INTEL, 0x1e02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther M AHCI */
+               PCI_VDEVICE(INTEL, 0x1e03),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther Point RAID */
+               PCI_VDEVICE(INTEL, 0x1e04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther Point RAID */
+               PCI_VDEVICE(INTEL, 0x1e05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther Point RAID */
+               PCI_VDEVICE(INTEL, 0x1e06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther M RAID */
+               PCI_VDEVICE(INTEL, 0x1e07),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Panther Point RAID */
+               PCI_VDEVICE(INTEL, 0x1e0e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx Point AHCI */
+               PCI_VDEVICE(INTEL, 0x8c02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx M AHCI */
+               PCI_VDEVICE(INTEL, 0x8c03),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx Point RAID */
+               PCI_VDEVICE(INTEL, 0x8c04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx M RAID */
+               PCI_VDEVICE(INTEL, 0x8c05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx Point RAID */
+               PCI_VDEVICE(INTEL, 0x8c06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx M RAID */
+               PCI_VDEVICE(INTEL, 0x8c07),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx Point RAID */
+               PCI_VDEVICE(INTEL, 0x8c0e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx M RAID */
+               PCI_VDEVICE(INTEL, 0x8c0f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP AHCI */
+               PCI_VDEVICE(INTEL, 0x9c02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP AHCI */
+               PCI_VDEVICE(INTEL, 0x9c03),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c07),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c0e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lynx LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c0f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Cannon Lake PCH-LP AHCI */
+               PCI_VDEVICE(INTEL, 0x9dd3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton AHCI */
+               PCI_VDEVICE(INTEL, 0x1f22),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton AHCI */
+               PCI_VDEVICE(INTEL, 0x1f23),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f24),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f25),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f26),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f27),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f2e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f2f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Avoton AHCI */
+               PCI_VDEVICE(INTEL, 0x1f32),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton AHCI */
+               PCI_VDEVICE(INTEL, 0x1f33),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f34),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f35),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f36),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f37),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f3e),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Avoton RAID */
+               PCI_VDEVICE(INTEL, 0x1f3f),
+               .driver_data = board_ahci_avn,
+       }, {
+               /* Wellsburg/Lewisburg AHCI*/
+               PCI_VDEVICE(INTEL, 0x2823),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* *burg SATA0 'RAID' */
+               PCI_VDEVICE(INTEL, 0x2826),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* *burg SATA1 'RAID' */
+               PCI_VDEVICE(INTEL, 0x2827),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* *burg SATA2 'RAID' */
+               PCI_VDEVICE(INTEL, 0x282f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Rocket Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0x43d4),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Rocket Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0x43d5),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Rocket Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0x43d6),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Rocket Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0x43d7),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg AHCI */
+               PCI_VDEVICE(INTEL, 0x8d02),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d04),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d06),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d0e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg AHCI */
+               PCI_VDEVICE(INTEL, 0x8d62),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d64),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d66),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wellsburg RAID */
+               PCI_VDEVICE(INTEL, 0x8d6e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Coleto Creek AHCI */
+               PCI_VDEVICE(INTEL, 0x23a3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wildcat LP AHCI */
+               PCI_VDEVICE(INTEL, 0x9c83),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wildcat LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c85),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wildcat LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c87),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Wildcat LP RAID */
+               PCI_VDEVICE(INTEL, 0x9c8f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series AHCI */
+               PCI_VDEVICE(INTEL, 0x8c82),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series M AHCI */
+               PCI_VDEVICE(INTEL, 0x8c83),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series RAID */
+               PCI_VDEVICE(INTEL, 0x8c84),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series M RAID */
+               PCI_VDEVICE(INTEL, 0x8c85),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series RAID */
+               PCI_VDEVICE(INTEL, 0x8c86),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series M RAID */
+               PCI_VDEVICE(INTEL, 0x8c87),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series RAID */
+               PCI_VDEVICE(INTEL, 0x8c8e),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* 9 Series M RAID */
+               PCI_VDEVICE(INTEL, 0x8c8f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise LP AHCI */
+               PCI_VDEVICE(INTEL, 0x9d03),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise LP RAID */
+               PCI_VDEVICE(INTEL, 0x9d05),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise LP RAID */
+               PCI_VDEVICE(INTEL, 0x9d07),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise Point-H AHCI */
+               PCI_VDEVICE(INTEL, 0xa102),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise M AHCI */
+               PCI_VDEVICE(INTEL, 0xa103),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise Point-H RAID */
+               PCI_VDEVICE(INTEL, 0xa105),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise Point-H RAID */
+               PCI_VDEVICE(INTEL, 0xa106),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise M RAID */
+               PCI_VDEVICE(INTEL, 0xa107),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Sunrise Point-H RAID */
+               PCI_VDEVICE(INTEL, 0xa10f),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg AHCI*/
+               PCI_VDEVICE(INTEL, 0xa182),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa186),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa1d2),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa1d6),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg AHCI*/
+               PCI_VDEVICE(INTEL, 0xa202),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa206),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa252),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Lewisburg RAID*/
+               PCI_VDEVICE(INTEL, 0xa256),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Cannon Lake PCH-H RAID */
+               PCI_VDEVICE(INTEL, 0xa356),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Comet Lake-H RAID */
+               PCI_VDEVICE(INTEL, 0x06d7),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Comet Lake PCH-V RAID */
+               PCI_VDEVICE(INTEL, 0xa386),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Bay Trail AHCI */
+               PCI_VDEVICE(INTEL, 0x0f22),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Bay Trail AHCI */
+               PCI_VDEVICE(INTEL, 0x0f23),
+               .driver_data = board_ahci_pcs_quirk_no_devslp,
+       }, {
+               /* Cherry Tr. AHCI */
+               PCI_VDEVICE(INTEL, 0x22a3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* ApolloLake AHCI */
+               PCI_VDEVICE(INTEL, 0x5ae3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Ice Lake LP AHCI */
+               PCI_VDEVICE(INTEL, 0x34d3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Comet Lake PCH-U AHCI */
+               PCI_VDEVICE(INTEL, 0x02d3),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* Comet Lake PCH RAID */
+               PCI_VDEVICE(INTEL, 0x02d7),
+               .driver_data = board_ahci_pcs_quirk,
+       },
 
-       /* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */
-       { PCI_VDEVICE(JMICRON, 0x0582), board_ahci_jmb585 },
-       { PCI_VDEVICE(JMICRON, 0x0585), board_ahci_jmb585 },
+       /* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */
+       {
+               /* Elkhart Lake AHCI */
+               PCI_VDEVICE(INTEL, 0x4b63),
+               .driver_data = board_ahci_pcs_quirk,
+       }, {
+               /* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */
+               PCI_VDEVICE(JMICRON, 0x0582),
+               .driver_data = board_ahci_jmb585,
+
+       }, {
+               PCI_VDEVICE(JMICRON, 0x0585),
+               .driver_data = board_ahci_jmb585,
+       }, {
+               /* JMicron 360/1/3/5/6, match class to avoid IDE function */
+               PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID),
+               .class = PCI_CLASS_STORAGE_SATA_AHCI,
+               .class_mask = 0xffffff,
+               .driver_data = board_ahci_ign_iferr,
 
-       /* JMicron 360/1/3/5/6, match class to avoid IDE function */
-       { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-         PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci_ign_iferr },
+       },
        /* JMicron 362B and 362C have an AHCI function with IDE class code */
-       { PCI_VDEVICE(JMICRON, 0x2362), board_ahci_ign_iferr },
-       { PCI_VDEVICE(JMICRON, 0x236f), board_ahci_ign_iferr },
+       {
+               PCI_VDEVICE(JMICRON, 0x2362),
+               .driver_data = board_ahci_ign_iferr,
+
+       }, {
+               PCI_VDEVICE(JMICRON, 0x236f),
+               .driver_data = board_ahci_ign_iferr,
+
+       },
        /* May need to update quirk_jmicron_async_suspend() for additions */
 
        /* ATI */
-       { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */
-       { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, /* ATI SB700/800 */
-       { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700 }, /* ATI SB700/800 */
-       { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700 }, /* ATI SB700/800 */
-       { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700 }, /* ATI SB700/800 */
-       { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700 }, /* ATI SB700/800 */
-       { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700 }, /* ATI SB700/800 */
+       {
+               /* ATI SB600 */
+               PCI_VDEVICE(ATI, 0x4380),
+               .driver_data = board_ahci_sb600,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4390),
+               .driver_data = board_ahci_sb700,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4391),
+               .driver_data = board_ahci_sb700,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4392),
+               .driver_data = board_ahci_sb700,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4393),
+               .driver_data = board_ahci_sb700,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4394),
+               .driver_data = board_ahci_sb700,
+       }, {
+               /* ATI SB700/800 */
+               PCI_VDEVICE(ATI, 0x4395),
+               .driver_data = board_ahci_sb700,
+       },
 
        /* Amazon's Annapurna Labs support */
-       { PCI_DEVICE(PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031),
-               .class = PCI_CLASS_STORAGE_SATA_AHCI,
-               .class_mask = 0xffffff,
-               board_ahci_al },
+       {
+               PCI_DEVICE(PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031),
+                       .class = PCI_CLASS_STORAGE_SATA_AHCI,
+                       .class_mask = 0xffffff,
+               .driver_data = board_ahci_al,
+
+       },
        /* AMD */
-       { PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */
-       { PCI_VDEVICE(AMD, 0x7801), board_ahci_no_debounce_delay }, /* AMD Hudson-2 (AHCI mode) */
-       { PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */
-       { PCI_VDEVICE(AMD, 0x7901), board_ahci }, /* AMD Green Sardine */
+       {
+               /* AMD Hudson-2 */
+               PCI_VDEVICE(AMD, 0x7800),
+               .driver_data = board_ahci,
+       }, {
+               /* AMD Hudson-2 (AHCI mode) */
+               PCI_VDEVICE(AMD, 0x7801),
+               .driver_data = board_ahci_no_debounce_delay,
+       }, {
+               /* AMD CZ */
+               PCI_VDEVICE(AMD, 0x7900),
+               .driver_data = board_ahci,
+       }, {
+               /* AMD Green Sardine */
+               PCI_VDEVICE(AMD, 0x7901),
+               .driver_data = board_ahci,
+       },
        /* AMD is using RAID class only for ahci controllers */
-       { PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-         PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci },
+       {
+               PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_ANY_ID),
+               .class = PCI_CLASS_STORAGE_RAID << 8,
+               .class_mask = 0xffffff,
+               .driver_data = board_ahci,
+       },
 
        /* Dell S140/S150 */
-       { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_SUBVENDOR_ID_DELL, PCI_ANY_ID,
-         PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci_pcs_quirk },
+       {
+               PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
+                              PCI_SUBVENDOR_ID_DELL, PCI_ANY_ID),
+               .class = PCI_CLASS_STORAGE_RAID << 8,
+               .class_mask = 0xffffff,
+               .driver_data = board_ahci_pcs_quirk,
+
+       },
 
        /* VIA */
-       { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */
-       { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */
+       {
+               /* VIA VT8251 */
+               PCI_VDEVICE(VIA, 0x3349),
+               .driver_data = board_ahci_vt8251,
+       }, {
+               /* VIA VT8251 */
+               PCI_VDEVICE(VIA, 0x6287),
+               .driver_data = board_ahci_vt8251,
+       },
 
        /* NVIDIA */
-       { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65 },      /* MCP65 */
-       { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0553), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0554), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0555), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0556), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0557), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0558), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0559), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x055a), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x055b), board_ahci_mcp67 },      /* MCP67 */
-       { PCI_VDEVICE(NVIDIA, 0x0580), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0581), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0582), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0583), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0584), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0585), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0586), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0587), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0588), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x0589), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058a), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058b), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058c), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058d), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058e), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x058f), board_ahci_mcp_linux },  /* Linux ID */
-       { PCI_VDEVICE(NVIDIA, 0x07f0), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f1), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f2), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f3), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f4), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f5), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f6), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f7), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f8), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07f9), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07fa), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x07fb), board_ahci_mcp73 },      /* MCP73 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad0), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad1), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad2), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad3), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad4), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad5), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad6), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad7), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad8), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ad9), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ada), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0adb), board_ahci_mcp77 },      /* MCP77 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab4), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab5), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab6), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab7), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab8), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0ab9), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0aba), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0abb), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0abc), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0abd), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0abe), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0abf), board_ahci_mcp79 },      /* MCP79 */
-       { PCI_VDEVICE(NVIDIA, 0x0d84), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d85), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d86), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d87), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d88), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d89), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8a), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8b), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8c), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8d), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8e), board_ahci_mcp89 },      /* MCP89 */
-       { PCI_VDEVICE(NVIDIA, 0x0d8f), board_ahci_mcp89 },      /* MCP89 */
+       {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x044c),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x044d),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x044e),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x044f),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x045c),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x045d),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x045e),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP65 */
+               PCI_VDEVICE(NVIDIA, 0x045f),
+               .driver_data = board_ahci_mcp65,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0550),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0551),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0552),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0553),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0554),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0555),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0556),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0557),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0558),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x0559),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x055a),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* MCP67 */
+               PCI_VDEVICE(NVIDIA, 0x055b),
+               .driver_data = board_ahci_mcp67,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0580),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0581),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0582),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0583),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0584),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0585),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0586),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0587),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0588),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x0589),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058a),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058b),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058c),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058d),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058e),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* Linux ID */
+               PCI_VDEVICE(NVIDIA, 0x058f),
+               .driver_data = board_ahci_mcp_linux,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f0),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f1),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f2),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f3),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f4),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f5),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f6),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f7),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f8),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07f9),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07fa),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP73 */
+               PCI_VDEVICE(NVIDIA, 0x07fb),
+               .driver_data = board_ahci_mcp73,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad0),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad1),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad2),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad3),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad4),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad5),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad6),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad7),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad8),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ad9),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0ada),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP77 */
+               PCI_VDEVICE(NVIDIA, 0x0adb),
+               .driver_data = board_ahci_mcp77,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab4),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab5),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab6),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab7),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab8),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0ab9),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0aba),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0abb),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0abc),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0abd),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0abe),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP79 */
+               PCI_VDEVICE(NVIDIA, 0x0abf),
+               .driver_data = board_ahci_mcp79,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d84),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d85),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d86),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d87),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d88),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d89),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8a),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8b),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8c),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8d),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8e),
+               .driver_data = board_ahci_mcp89,
+       }, {
+               /* MCP89 */
+               PCI_VDEVICE(NVIDIA, 0x0d8f),
+               .driver_data = board_ahci_mcp89,
+       },
 
        /* SiS */
-       { PCI_VDEVICE(SI, 0x1184), board_ahci },                /* SiS 966 */
-       { PCI_VDEVICE(SI, 0x1185), board_ahci },                /* SiS 968 */
-       { PCI_VDEVICE(SI, 0x0186), board_ahci },                /* SiS 968 */
+       {
+               /* SiS 966 */
+               PCI_VDEVICE(SI, 0x1184),
+               .driver_data = board_ahci,
+       }, {
+               /* SiS 968 */
+               PCI_VDEVICE(SI, 0x1185),
+               .driver_data = board_ahci,
+       }, {
+               /* SiS 968 */
+               PCI_VDEVICE(SI, 0x0186),
+               .driver_data = board_ahci,
+       },
 
        /* ST Microelectronics */
-       { PCI_VDEVICE(STMICRO, 0xCC06), board_ahci },           /* ST ConneXt */
+       {
+               /* ST ConneXt */
+               PCI_VDEVICE(STMICRO, 0xCC06),
+               .driver_data = board_ahci,
+       },
 
        /* Marvell */
-       { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },        /* 6145 */
-       { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },        /* 6121 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9123),
-         .class = PCI_CLASS_STORAGE_SATA_AHCI,
-         .class_mask = 0xffffff,
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9128 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9125),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9125 */
-       { PCI_DEVICE_SUB(PCI_VENDOR_ID_MARVELL_EXT, 0x9178,
-                        PCI_VENDOR_ID_MARVELL_EXT, 0x9170),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9170 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x917a),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9172 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9172),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9182 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9182),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9172 */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192),
-         .driver_data = board_ahci_yes_fbs },                  /* 88se9172 on some Gigabyte */
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0),
-         .driver_data = board_ahci_yes_fbs },
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a2),        /* 88se91a2 */
-         .driver_data = board_ahci_yes_fbs },
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
-         .driver_data = board_ahci_yes_fbs },
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
-         .driver_data = board_ahci_yes_fbs_atapi_dma },
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
-         .driver_data = board_ahci_yes_fbs },
-       { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
-         .driver_data = board_ahci_no_debounce_delay },
-       { PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642), /* highpoint rocketraid 642L */
-         .driver_data = board_ahci_yes_fbs },
-       { PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0645), /* highpoint rocketraid 644L */
-         .driver_data = board_ahci_yes_fbs },
+       {
+               /* 6145 */
+               PCI_VDEVICE(MARVELL, 0x6145),
+               .driver_data = board_ahci_mv,
+       }, {
+               /* 6121 */
+               PCI_VDEVICE(MARVELL, 0x6121),
+               .driver_data = board_ahci_mv,
+       }, {
+               /* 88se9128 */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9123),
+                       .class = PCI_CLASS_STORAGE_SATA_AHCI,
+                       .class_mask = 0xffffff,
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9125 */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9125),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9170 */
+               PCI_DEVICE_SUB(PCI_VENDOR_ID_MARVELL_EXT, 0x9178,
+                              PCI_VENDOR_ID_MARVELL_EXT, 0x9170),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9172 */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x917a),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9182 */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9172),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9172 */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9182),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* 88se9172 on some Gigabyte */
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a2),  /* 88se91a2 */
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
+               .driver_data = board_ahci_yes_fbs_atapi_dma,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
+               .driver_data = board_ahci_no_debounce_delay,
+       },
+
+       /* TTI */
+       {
+               /* highpoint rocketraid 642L */
+               PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642),
+               .driver_data = board_ahci_yes_fbs,
+       }, {
+               /* highpoint rocketraid 644L */
+               PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0645),
+               .driver_data = board_ahci_yes_fbs,
+       },
 
        /* Promise */
-       { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },   /* PDC42819 */
-       { PCI_VDEVICE(PROMISE, 0x3781), board_ahci },   /* FastTrak TX8660 ahci-mode */
+       {
+               /* PDC42819 */
+               PCI_VDEVICE(PROMISE, 0x3f20),
+               .driver_data = board_ahci,
+       }, {
+               /* FastTrak TX8660 ahci-mode */
+               PCI_VDEVICE(PROMISE, 0x3781),
+               .driver_data = board_ahci,
+       },
 
        /* ASMedia */
-       { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci_43bit_dma }, /* ASM1060 */
-       { PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci_43bit_dma }, /* ASM1060 */
-       { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci_43bit_dma }, /* ASM1061 */
-       { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci_43bit_dma }, /* ASM1061/1062 */
-       { PCI_VDEVICE(ASMEDIA, 0x0621), board_ahci_43bit_dma }, /* ASM1061R */
-       { PCI_VDEVICE(ASMEDIA, 0x0622), board_ahci_43bit_dma }, /* ASM1062R */
-       { PCI_VDEVICE(ASMEDIA, 0x0624), board_ahci_43bit_dma }, /* ASM1062+JMB575 */
-       { PCI_VDEVICE(ASMEDIA, 0x1062), board_ahci },   /* ASM1062A */
-       { PCI_VDEVICE(ASMEDIA, 0x1064), board_ahci },   /* ASM1064 */
-       { PCI_VDEVICE(ASMEDIA, 0x1164), board_ahci },   /* ASM1164 */
-       { PCI_VDEVICE(ASMEDIA, 0x1165), board_ahci },   /* ASM1165 */
-       { PCI_VDEVICE(ASMEDIA, 0x1166), board_ahci },   /* ASM1166 */
-
-       /*
-        * Samsung SSDs found on some macbooks.  NCQ times out if MSI is
-        * enabled.  https://bugzilla.kernel.org/show_bug.cgi?id=60731
-        */
-       { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_no_msi },
-       { PCI_VDEVICE(SAMSUNG, 0xa800), board_ahci_no_msi },
-
-       /* Enmotus */
-       { PCI_DEVICE(0x1c44, 0x8000), board_ahci },
-
-       /* Loongson */
-       { PCI_VDEVICE(LOONGSON, 0x7a08), board_ahci },
-
-       /* Generic, PCI class code for AHCI */
-       { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-         PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },
+       {
+               /* ASM1060 */
+               PCI_VDEVICE(ASMEDIA, 0x0601),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1060 */
+               PCI_VDEVICE(ASMEDIA, 0x0602),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1061 */
+               PCI_VDEVICE(ASMEDIA, 0x0611),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1061/1062 */
+               PCI_VDEVICE(ASMEDIA, 0x0612),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1061R */
+               PCI_VDEVICE(ASMEDIA, 0x0621),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1062R */
+               PCI_VDEVICE(ASMEDIA, 0x0622),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1062+JMB575 */
+               PCI_VDEVICE(ASMEDIA, 0x0624),
+               .driver_data = board_ahci_43bit_dma,
+       }, {
+               /* ASM1062A */
+               PCI_VDEVICE(ASMEDIA, 0x1062),
+               .driver_data = board_ahci,
+       }, {
+               /* ASM1064 */
+               PCI_VDEVICE(ASMEDIA, 0x1064),
+               .driver_data = board_ahci,
+       }, {
+               /* ASM1164 */
+               PCI_VDEVICE(ASMEDIA, 0x1164),
+               .driver_data = board_ahci,
+       }, {
+               /* ASM1165 */
+               PCI_VDEVICE(ASMEDIA, 0x1165),
+               .driver_data = board_ahci,
+       }, {
+               /* ASM1166 */
+               PCI_VDEVICE(ASMEDIA, 0x1166),
+               .driver_data = board_ahci,
+       }, {
+               /*
+                * Samsung SSDs found on some macbooks.  NCQ times out if MSI is
+                * enabled.  https://bugzilla.kernel.org/show_bug.cgi?id=60731
+                */
+               PCI_VDEVICE(SAMSUNG, 0x1600),
+               .driver_data = board_ahci_no_msi,
+
+       }, {
+               PCI_VDEVICE(SAMSUNG, 0xa800),
+               .driver_data = board_ahci_no_msi,
+       }, {
+               /* Enmotus */
+               PCI_DEVICE(0x1c44, 0x8000),
+               .driver_data = board_ahci,
+       }, {
+               /* Loongson */
+               PCI_VDEVICE(LOONGSON, 0x7a08),
+               .driver_data = board_ahci,
+
+       }, {
+               /* Generic, PCI class code for AHCI */
+               PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff),
+               .driver_data = board_ahci,
+       },
 
        { }     /* terminate list */
 };
index 495fa096dd653a9a3c8f5edf78d5b77582e82290..e3aa5c86fb48e8ca8840200335fbdef9898d5ede 100644 (file)
@@ -154,184 +154,364 @@ static unsigned int in_module_init = 1;
 
 static const struct pci_device_id piix_pci_tbl[] = {
        /* Intel PIIX3 for the 430HX etc */
-       { 0x8086, 0x7010, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_mwdma },
-       /* VMware ICH4 */
-       { 0x8086, 0x7111, 0x15ad, 0x1976, 0, 0, piix_pata_vmw },
-       /* Intel PIIX4 for the 430TX/440BX/MX chipset: UDMA 33 */
-       /* Also PIIX4E (fn3 rev 2) and PIIX4M (fn3 rev 3) */
-       { 0x8086, 0x7111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
-       /* Intel PIIX4 */
-       { 0x8086, 0x7199, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
-       /* Intel PIIX4 */
-       { 0x8086, 0x7601, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
-       /* Intel PIIX */
-       { 0x8086, 0x84CA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
-       /* Intel ICH (i810, i815, i840) UDMA 66*/
-       { 0x8086, 0x2411, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_66 },
-       /* Intel ICH0 : UDMA 33*/
-       { 0x8086, 0x2421, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_33 },
-       /* Intel ICH2M */
-       { 0x8086, 0x244A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* Intel ICH2 (i810E2, i845, 850, 860) UDMA 100 */
-       { 0x8086, 0x244B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /*  Intel ICH3M */
-       { 0x8086, 0x248A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* Intel ICH3 (E7500/1) UDMA 100 */
-       { 0x8086, 0x248B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* Intel ICH4-L */
-       { 0x8086, 0x24C1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* Intel ICH4 (i845GV, i845E, i852, i855) UDMA 100 */
-       { 0x8086, 0x24CA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       { 0x8086, 0x24CB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* Intel ICH5 */
-       { 0x8086, 0x24DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* C-ICH (i810E2) */
-       { 0x8086, 0x245B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* ESB (855GME/875P + 6300ESB) UDMA 100  */
-       { 0x8086, 0x25A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* ICH6 (and 6) (i915) UDMA 100 */
-       { 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
-       /* ICH7/7-R (i945, i975) UDMA 100*/
-       { 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
-       { 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
-       /* ICH8 Mobile PATA Controller */
-       { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
+       {
+               PCI_DEVICE(0x8086, 0x7010),
+               .driver_data = piix_pata_mwdma,
+       }, {
+               /* VMware ICH4 */
+               PCI_DEVICE_SUB(0x8086, 0x7111, 0x15ad, 0x1976),
+               .driver_data = piix_pata_vmw,
+       }, {
+               /* Intel PIIX4 for the 430TX/440BX/MX chipset: UDMA 33 */
+               /* Also PIIX4E (fn3 rev 2) and PIIX4M (fn3 rev 3) */
+               PCI_DEVICE(0x8086, 0x7111),
+               .driver_data = piix_pata_33,
+       }, {
+               /* Intel PIIX4 */
+               PCI_DEVICE(0x8086, 0x7199),
+               .driver_data = piix_pata_33,
+       }, {
+               /* Intel PIIX4 */
+               PCI_DEVICE(0x8086, 0x7601),
+               .driver_data = piix_pata_33,
+       }, {
+               /* Intel PIIX */
+               PCI_DEVICE(0x8086, 0x84CA),
+               .driver_data = piix_pata_33,
+       }, {
+               /* Intel ICH (i810, i815, i840) UDMA 66*/
+               PCI_DEVICE(0x8086, 0x2411),
+               .driver_data = ich_pata_66,
+       }, {
+               /* Intel ICH0 : UDMA 33*/
+               PCI_DEVICE(0x8086, 0x2421),
+               .driver_data = ich_pata_33,
+       }, {
+               /* Intel ICH2M */
+               PCI_DEVICE(0x8086, 0x244A),
+               .driver_data = ich_pata_100,
+       }, {
+               /* Intel ICH2 (i810E2, i845, 850, 860) UDMA 100 */
+               PCI_DEVICE(0x8086, 0x244B),
+               .driver_data = ich_pata_100,
+       }, {
+               /*  Intel ICH3M */
+               PCI_DEVICE(0x8086, 0x248A),
+               .driver_data = ich_pata_100,
+       }, {
+               /* Intel ICH3 (E7500/1) UDMA 100 */
+               PCI_DEVICE(0x8086, 0x248B),
+               .driver_data = ich_pata_100,
+       }, {
+               /* Intel ICH4-L */
+               PCI_DEVICE(0x8086, 0x24C1),
+               .driver_data = ich_pata_100,
+       }, {
+               /* Intel ICH4 (i845GV, i845E, i852, i855) UDMA 100 */
+               PCI_DEVICE(0x8086, 0x24CA),
+               .driver_data = ich_pata_100,
+       }, {
+               PCI_DEVICE(0x8086, 0x24CB),
+               .driver_data = ich_pata_100,
+       }, {
+               /* Intel ICH5 */
+               PCI_DEVICE(0x8086, 0x24DB),
+               .driver_data = ich_pata_100,
+       }, {
+               /* C-ICH (i810E2) */
+               PCI_DEVICE(0x8086, 0x245B),
+               .driver_data = ich_pata_100,
+       }, {
+               /* ESB (855GME/875P + 6300ESB) UDMA 100  */
+               PCI_DEVICE(0x8086, 0x25A2),
+               .driver_data = ich_pata_100,
+       }, {
+               /* ICH6 (and 6) (i915) UDMA 100 */
+               PCI_DEVICE(0x8086, 0x266F),
+               .driver_data = ich_pata_100,
+       }, {
+               /* ICH7/7-R (i945, i975) UDMA 100*/
+               PCI_DEVICE(0x8086, 0x27DF),
+               .driver_data = ich_pata_100_nomwdma1,
+       }, {
+               PCI_DEVICE(0x8086, 0x269E),
+               .driver_data = ich_pata_100_nomwdma1,
+       }, {
+               /* ICH8 Mobile PATA Controller */
+               PCI_DEVICE(0x8086, 0x2850),
+               .driver_data = ich_pata_100,
+       },
 
        /* SATA ports */
-
-       /* 82801EB (ICH5) */
-       { 0x8086, 0x24d1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
-       /* 82801EB (ICH5) */
-       { 0x8086, 0x24df, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
-       /* 6300ESB (ICH5 variant with broken PCS present bits) */
-       { 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
-       /* 6300ESB pretending RAID */
-       { 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },
-       /* 82801FB/FW (ICH6/ICH6W) */
-       { 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
-       /* 82801FR/FRW (ICH6R/ICH6RW) */
-       { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
-       /* 82801FBM ICH6M (ICH6R with only port 0 and 2 implemented).
-        * Attach iff the controller is in IDE mode. */
-       { 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID,
-         PCI_CLASS_STORAGE_IDE << 8, 0xffff00, ich6m_sata },
-       /* 82801GB/GR/GH (ICH7, identical to ICH6) */
-       { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
-       /* 82801GBM/GHM (ICH7M, identical to ICH6M)  */
-       { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6m_sata },
-       /* Enterprise Southbridge 2 (631xESB/632xESB) */
-       { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
-       /* SATA Controller 1 IDE (ICH8) */
-       { 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller 2 IDE (ICH8) */
-       { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* Mobile SATA Controller IDE (ICH8M), Apple */
-       { 0x8086, 0x2828, 0x106b, 0x00a0, 0, 0, ich8m_apple_sata },
-       { 0x8086, 0x2828, 0x106b, 0x00a1, 0, 0, ich8m_apple_sata },
-       { 0x8086, 0x2828, 0x106b, 0x00a3, 0, 0, ich8m_apple_sata },
-       /* Mobile SATA Controller IDE (ICH8M) */
-       { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (ICH9) */
-       { 0x8086, 0x2920, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (ICH9) */
-       { 0x8086, 0x2921, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (ICH9) */
-       { 0x8086, 0x2926, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (ICH9M) */
-       { 0x8086, 0x2928, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (ICH9M) */
-       { 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (ICH9M) */
-       { 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (Tolapai) */
-       { 0x8086, 0x5028, PCI_ANY_ID, PCI_ANY_ID, 0, 0, tolapai_sata },
-       /* SATA Controller IDE (ICH10) */
-       { 0x8086, 0x3a00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (ICH10) */
-       { 0x8086, 0x3a06, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (ICH10) */
-       { 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (ICH10) */
-       { 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b28, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (PCH) */
-       { 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
-       /* SATA Controller IDE (CPT) */
-       { 0x8086, 0x1c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (CPT) */
-       { 0x8086, 0x1c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (CPT) */
-       { 0x8086, 0x1c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (CPT) */
-       { 0x8086, 0x1c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (PBG) */
-       { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (PBG) */
-       { 0x8086, 0x1d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Panther Point) */
-       { 0x8086, 0x1e00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Panther Point) */
-       { 0x8086, 0x1e01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Panther Point) */
-       { 0x8086, 0x1e08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Panther Point) */
-       { 0x8086, 0x1e09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Lynx Point) */
-       { 0x8086, 0x8c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Lynx Point) */
-       { 0x8086, 0x8c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Lynx Point) */
-       { 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },
-       /* SATA Controller IDE (Lynx Point) */
-       { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Lynx Point-LP) */
-       { 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Lynx Point-LP) */
-       { 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Lynx Point-LP) */
-       { 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Lynx Point-LP) */
-       { 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (DH89xxCC) */
-       { 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Avoton) */
-       { 0x8086, 0x1f20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Avoton) */
-       { 0x8086, 0x1f21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Avoton) */
-       { 0x8086, 0x1f30, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Avoton) */
-       { 0x8086, 0x1f31, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (Wellsburg) */
-       { 0x8086, 0x8d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Wellsburg) */
-       { 0x8086, 0x8d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },
-       /* SATA Controller IDE (Wellsburg) */
-       { 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (Wellsburg) */
-       { 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (BayTrail) */
-       { 0x8086, 0x0F20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },
-       { 0x8086, 0x0F21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },
-       /* SATA Controller IDE (Coleto Creek) */
-       { 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
-       /* SATA Controller IDE (9 Series) */
-       { 0x8086, 0x8c88, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },
-       /* SATA Controller IDE (9 Series) */
-       { 0x8086, 0x8c89, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },
-       /* SATA Controller IDE (9 Series) */
-       { 0x8086, 0x8c80, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
-       /* SATA Controller IDE (9 Series) */
-       { 0x8086, 0x8c81, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
+       {
+               /* 82801EB (ICH5) */
+               PCI_DEVICE(0x8086, 0x24d1),
+               .driver_data = ich5_sata,
+       }, {
+               /* 82801EB (ICH5) */
+               PCI_DEVICE(0x8086, 0x24df),
+               .driver_data = ich5_sata,
+       }, {
+               /* 6300ESB (ICH5 variant with broken PCS present bits) */
+               PCI_DEVICE(0x8086, 0x25a3),
+               .driver_data = ich5_sata,
+       }, {
+               /* 6300ESB pretending RAID */
+               PCI_DEVICE(0x8086, 0x25b0),
+               .driver_data = ich5_sata,
+       }, {
+               /* 82801FB/FW (ICH6/ICH6W) */
+               PCI_DEVICE(0x8086, 0x2651),
+               .driver_data = ich6_sata,
+       }, {
+               /* 82801FR/FRW (ICH6R/ICH6RW) */
+               PCI_DEVICE(0x8086, 0x2652),
+               .driver_data = ich6_sata,
+       }, {
+               /* 82801FBM ICH6M (ICH6R with only port 0 and 2 implemented).
+                * Attach iff the controller is in IDE mode. */
+               PCI_DEVICE(0x8086, 0x2653),
+               .class = PCI_CLASS_STORAGE_IDE << 8,
+               .class_mask = 0xffff00,
+               .driver_data = ich6m_sata,
+       }, {
+               /* 82801GB/GR/GH (ICH7, identical to ICH6) */
+               PCI_DEVICE(0x8086, 0x27c0),
+               .driver_data = ich6_sata,
+       }, {
+               /* 82801GBM/GHM (ICH7M, identical to ICH6M)  */
+               PCI_DEVICE(0x8086, 0x27c4),
+               .driver_data = ich6m_sata,
+       }, {
+               /* Enterprise Southbridge 2 (631xESB/632xESB) */
+               PCI_DEVICE(0x8086, 0x2680),
+               .driver_data = ich6_sata,
+       }, {
+               /* SATA Controller 1 IDE (ICH8) */
+               PCI_DEVICE(0x8086, 0x2820),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller 2 IDE (ICH8) */
+               PCI_DEVICE(0x8086, 0x2825),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* Mobile SATA Controller IDE (ICH8M), Apple */
+               PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a0),
+               .driver_data = ich8m_apple_sata,
+       }, {
+               PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a1),
+               .driver_data = ich8m_apple_sata,
+       }, {
+               PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a3),
+               .driver_data = ich8m_apple_sata,
+       }, {
+               /* Mobile SATA Controller IDE (ICH8M) */
+               PCI_DEVICE(0x8086, 0x2828),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (ICH9) */
+               PCI_DEVICE(0x8086, 0x2920),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (ICH9) */
+               PCI_DEVICE(0x8086, 0x2921),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (ICH9) */
+               PCI_DEVICE(0x8086, 0x2926),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (ICH9M) */
+               PCI_DEVICE(0x8086, 0x2928),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (ICH9M) */
+               PCI_DEVICE(0x8086, 0x292d),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (ICH9M) */
+               PCI_DEVICE(0x8086, 0x292e),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (Tolapai) */
+               PCI_DEVICE(0x8086, 0x5028),
+               .driver_data = tolapai_sata,
+       }, {
+               /* SATA Controller IDE (ICH10) */
+               PCI_DEVICE(0x8086, 0x3a00),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (ICH10) */
+               PCI_DEVICE(0x8086, 0x3a06),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (ICH10) */
+               PCI_DEVICE(0x8086, 0x3a20),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (ICH10) */
+               PCI_DEVICE(0x8086, 0x3a26),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b20),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b21),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b26),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b28),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b2d),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (PCH) */
+               PCI_DEVICE(0x8086, 0x3b2e),
+               .driver_data = ich8_sata,
+       }, {
+               /* SATA Controller IDE (CPT) */
+               PCI_DEVICE(0x8086, 0x1c00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (CPT) */
+               PCI_DEVICE(0x8086, 0x1c01),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (CPT) */
+               PCI_DEVICE(0x8086, 0x1c08),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (CPT) */
+               PCI_DEVICE(0x8086, 0x1c09),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (PBG) */
+               PCI_DEVICE(0x8086, 0x1d00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (PBG) */
+               PCI_DEVICE(0x8086, 0x1d08),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Panther Point) */
+               PCI_DEVICE(0x8086, 0x1e00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Panther Point) */
+               PCI_DEVICE(0x8086, 0x1e01),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Panther Point) */
+               PCI_DEVICE(0x8086, 0x1e08),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Panther Point) */
+               PCI_DEVICE(0x8086, 0x1e09),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Lynx Point) */
+               PCI_DEVICE(0x8086, 0x8c00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Lynx Point) */
+               PCI_DEVICE(0x8086, 0x8c01),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Lynx Point) */
+               PCI_DEVICE(0x8086, 0x8c08),
+               .driver_data = ich8_2port_sata_snb,
+       }, {
+               /* SATA Controller IDE (Lynx Point) */
+               PCI_DEVICE(0x8086, 0x8c09),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Lynx Point-LP) */
+               PCI_DEVICE(0x8086, 0x9c00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Lynx Point-LP) */
+               PCI_DEVICE(0x8086, 0x9c01),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Lynx Point-LP) */
+               PCI_DEVICE(0x8086, 0x9c08),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Lynx Point-LP) */
+               PCI_DEVICE(0x8086, 0x9c09),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (DH89xxCC) */
+               PCI_DEVICE(0x8086, 0x2326),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Avoton) */
+               PCI_DEVICE(0x8086, 0x1f20),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Avoton) */
+               PCI_DEVICE(0x8086, 0x1f21),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Avoton) */
+               PCI_DEVICE(0x8086, 0x1f30),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Avoton) */
+               PCI_DEVICE(0x8086, 0x1f31),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (Wellsburg) */
+               PCI_DEVICE(0x8086, 0x8d00),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Wellsburg) */
+               PCI_DEVICE(0x8086, 0x8d08),
+               .driver_data = ich8_2port_sata_snb,
+       }, {
+               /* SATA Controller IDE (Wellsburg) */
+               PCI_DEVICE(0x8086, 0x8d60),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (Wellsburg) */
+               PCI_DEVICE(0x8086, 0x8d68),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (BayTrail) */
+               PCI_DEVICE(0x8086, 0x0F20),
+               .driver_data = ich8_2port_sata_byt,
+       }, {
+               PCI_DEVICE(0x8086, 0x0F21),
+               .driver_data = ich8_2port_sata_byt,
+       }, {
+               /* SATA Controller IDE (Coleto Creek) */
+               PCI_DEVICE(0x8086, 0x23a6),
+               .driver_data = ich8_2port_sata,
+       }, {
+               /* SATA Controller IDE (9 Series) */
+               PCI_DEVICE(0x8086, 0x8c88),
+               .driver_data = ich8_2port_sata_snb,
+       }, {
+               /* SATA Controller IDE (9 Series) */
+               PCI_DEVICE(0x8086, 0x8c89),
+               .driver_data = ich8_2port_sata_snb,
+       }, {
+               /* SATA Controller IDE (9 Series) */
+               PCI_DEVICE(0x8086, 0x8c80),
+               .driver_data = ich8_sata_snb,
+       }, {
+               /* SATA Controller IDE (9 Series) */
+               PCI_DEVICE(0x8086, 0x8c81),
+               .driver_data = ich8_sata_snb,
+       },
 
        { }     /* terminate list */
 };
index 23fff10af2ac21e372112785ff6cb26cc7be3c7e..a4f0f81844a12a66c92eb94d048726aa9b0c592e 100644 (file)
@@ -257,7 +257,10 @@ static int pacpi_init_one (struct pci_dev *pdev, const struct pci_device_id *id)
 }
 
 static const struct pci_device_id pacpi_pci_tbl[] = {
-       { PCI_ANY_ID,           PCI_ANY_ID,                        PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 1},
+       {
+               PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL),
+               .driver_data = 1, /* is this used at all? */
+       },
        { }     /* terminate list */
 };
 
index a2fecadc927d451140a44ec7b580c45c21ec24ef..2732cb37f268e44a26b862e5fbbbbfd0daaf0cd7 100644 (file)
@@ -597,29 +597,71 @@ static int amd_reinit_one(struct pci_dev *pdev)
 #endif
 
 static const struct pci_device_id amd[] = {
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_COBRA_7401),          0 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_VIPER_7409),          1 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_VIPER_7411),          3 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_OPUS_7441),           4 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_8111_IDE),            5 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_IDE),       7 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE),      8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE),     8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE),      8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE),     8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE), 8 },
-       { PCI_VDEVICE(NVIDIA,   PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE), 8 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_CS5536_IDE),          9 },
-       { PCI_VDEVICE(AMD,      PCI_DEVICE_ID_AMD_CS5536_DEV_IDE),      9 },
-
-       { },
+       {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_COBRA_7401),
+               .driver_data = 0,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_VIPER_7409),
+               .driver_data = 1,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_VIPER_7411),
+               .driver_data = 3,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_OPUS_7441),
+               .driver_data = 4,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_8111_IDE),
+               .driver_data = 5,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_IDE),
+               .driver_data = 7,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(NVIDIA,     PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE),
+               .driver_data = 8,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_CS5536_IDE),
+               .driver_data = 9,
+       }, {
+               PCI_VDEVICE(AMD,        PCI_DEVICE_ID_AMD_CS5536_DEV_IDE),
+               .driver_data = 9
+       },
+       { }
 };
 
 static struct pci_driver amd_pci_driver = {
index 6160414172a311f3f99ba47f544eddddeada110d..9f8d41639a62af26fa6440284061d421a5aa2c53 100644 (file)
@@ -421,12 +421,11 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id)
 }
 
 static const struct pci_device_id artop_pci_tbl[] = {
-       { PCI_VDEVICE(ARTOP, 0x0005), 0 },
-       { PCI_VDEVICE(ARTOP, 0x0006), 1 },
-       { PCI_VDEVICE(ARTOP, 0x0007), 1 },
-       { PCI_VDEVICE(ARTOP, 0x0008), 2 },
-       { PCI_VDEVICE(ARTOP, 0x0009), 2 },
-
+       { PCI_VDEVICE(ARTOP, 0x0005), .driver_data = 0 },
+       { PCI_VDEVICE(ARTOP, 0x0006), .driver_data = 1 },
+       { PCI_VDEVICE(ARTOP, 0x0007), .driver_data = 1 },
+       { PCI_VDEVICE(ARTOP, 0x0008), .driver_data = 2 },
+       { PCI_VDEVICE(ARTOP, 0x0009), .driver_data = 2 },
        { }     /* terminate list */
 };
 
index fafea2b791451b5f52fd4adf5806f4786ea5e9fb..e6c8783ce00e34edc2846cc92d73326c97996347 100644 (file)
@@ -506,12 +506,11 @@ static int cmd64x_reinit_one(struct pci_dev *pdev)
 #endif
 
 static const struct pci_device_id cmd64x[] = {
-       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_643), 0 },
-       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_646), 1 },
-       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_648), 5 },
-       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_649), 6 },
-
-       { },
+       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_643), .driver_data = 0 },
+       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_646), .driver_data = 1 },
+       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_648), .driver_data = 5 },
+       { PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_649), .driver_data = 6 },
+       { }
 };
 
 static struct pci_driver cmd64x_pci_driver = {
index 3db1b95d14045c5d75b83900fc1c2ceb44349199..dd67bbdf6ecf70393545909da106bf12d2108d99 100644 (file)
@@ -174,10 +174,9 @@ static int opti_init_one(struct pci_dev *dev, const struct pci_device_id *id)
 }
 
 static const struct pci_device_id opti[] = {
-       { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), 0 },
-       { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 1 },
-
-       { },
+       { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), .driver_data = 0 },
+       { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), .driver_data = 1 },
+       { }
 };
 
 static struct pci_driver opti_pci_driver = {
index ae914dcb0c834725280611f377c953bc1fbd3990..d1d1cfb22e276280a237051d1029d98f7a256c85 100644 (file)
@@ -100,14 +100,28 @@ static const struct pdc2027x_udma_timing {
 };
 
 static const struct pci_device_id pdc2027x_pci_tbl[] = {
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20268), PDC_UDMA_100 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20269), PDC_UDMA_133 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20270), PDC_UDMA_100 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20271), PDC_UDMA_133 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20275), PDC_UDMA_133 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20276), PDC_UDMA_133 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20277), PDC_UDMA_133 },
-
+       {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20268),
+               .driver_data = PDC_UDMA_100,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20269),
+               .driver_data = PDC_UDMA_133,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20270),
+               .driver_data = PDC_UDMA_100,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20271),
+               .driver_data = PDC_UDMA_133,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20275),
+               .driver_data = PDC_UDMA_133,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20276),
+               .driver_data = PDC_UDMA_133,
+       }, {
+               PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20277),
+               .driver_data = PDC_UDMA_133,
+       },
        { }     /* terminate list */
 };
 
index a32723e46357da66cc208dd65ef394d0b4e4a558..2dad77c828f206e181360a62cfb22694f8d4cf04 100644 (file)
@@ -362,13 +362,12 @@ static int pdc202xx_init_one(struct pci_dev *dev, const struct pci_device_id *id
 }
 
 static const struct pci_device_id pdc202xx[] = {
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20246), 0 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20262), 1 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20263), 1 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20265), 2 },
-       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20267), 2 },
-
-       { },
+       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20246), .driver_data = 0 },
+       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20262), .driver_data = 1 },
+       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20263), .driver_data = 1 },
+       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20265), .driver_data = 2 },
+       { PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20267), .driver_data = 2 },
+       { }
 };
 
 static struct pci_driver pdc202xx_pci_driver = {
index 4edddf6bcc15079aa34d8ee9218f2b31b841f2af..dc595688d3bac12837e26485a2493b3f317394a2 100644 (file)
@@ -467,13 +467,23 @@ static int serverworks_reinit_one(struct pci_dev *pdev)
 #endif
 
 static const struct pci_device_id serverworks[] = {
-       { PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE), 0},
-       { PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE), 2},
-       { PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE), 2},
-       { PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2), 2},
-       { PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE), 2},
-
-       { },
+       {
+               PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE),
+               .driver_data = 0,
+       }, {
+               PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE),
+               .driver_data = 2,
+       }, {
+               PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE),
+               .driver_data = 2,
+       }, {
+               PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2),
+               .driver_data = 2,
+       }, {
+               PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE),
+               .driver_data = 2
+       },
+       { }
 };
 
 static struct pci_driver serverworks_pci_driver = {
index 2b751e393771f2180da0d7a82a59ba3d585fb854..8262f4f8e6e7c7fb662e65bbade0147fe3356409 100644 (file)
@@ -891,7 +891,6 @@ static const struct pci_device_id sis_pci_tbl[] = {
        { PCI_VDEVICE(SI, 0x5513), },   /* SiS 5513 */
        { PCI_VDEVICE(SI, 0x5518), },   /* SiS 5518 */
        { PCI_VDEVICE(SI, 0x1180), },   /* SiS 1180 */
-
        { }
 };
 
index a8c9cf685b4bbaeea4ac06eef5679c7431656ea1..cb53fe698c6edff6aa6ac4c0f3ebc10ea89511ed 100644 (file)
@@ -675,16 +675,15 @@ static int via_reinit_one(struct pci_dev *pdev)
 #endif
 
 static const struct pci_device_id via[] = {
-       { PCI_VDEVICE(VIA, 0x0415), },
-       { PCI_VDEVICE(VIA, 0x0571), },
-       { PCI_VDEVICE(VIA, 0x0581), },
-       { PCI_VDEVICE(VIA, 0x1571), },
-       { PCI_VDEVICE(VIA, 0x3164), },
-       { PCI_VDEVICE(VIA, 0x5324), },
-       { PCI_VDEVICE(VIA, 0xC409), VIA_IDFLAG_SINGLE },
-       { PCI_VDEVICE(VIA, 0x9001), VIA_IDFLAG_SINGLE },
-
-       { },
+       { PCI_VDEVICE(VIA, 0x0415), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0x0571), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0x0581), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0x1571), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0x3164), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0x5324), .driver_data = 0 },
+       { PCI_VDEVICE(VIA, 0xC409), .driver_data = VIA_IDFLAG_SINGLE },
+       { PCI_VDEVICE(VIA, 0x9001), .driver_data = VIA_IDFLAG_SINGLE },
+       { }
 };
 
 static struct pci_driver via_pci_driver = {
index 17a5a59861c38fcf8b8d3d0b96113a659baf924d..30aaf5c5337b748ae780d450d8bacc03c428376c 100644 (file)
@@ -157,8 +157,7 @@ static struct ata_port_info adma_port_info[] = {
 };
 
 static const struct pci_device_id adma_ata_pci_tbl[] = {
-       { PCI_VDEVICE(PDC, 0x1841), board_1841_idx },
-
+       { PCI_VDEVICE(PDC, 0x1841), .driver_data = board_1841_idx },
        { }     /* terminate list */
 };
 
index f6942fd80bae7e72f2677354f23202ceca6fe165..41647a56a9f4e93411f51504c6e42bcd9b859f0f 100644 (file)
@@ -4274,32 +4274,32 @@ static int mv_pci_device_resume(struct pci_dev *pdev);
 #endif
 
 static const struct pci_device_id mv_pci_tbl[] = {
-       { PCI_VDEVICE(MARVELL, 0x5040), chip_504x },
-       { PCI_VDEVICE(MARVELL, 0x5041), chip_504x },
-       { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 },
-       { PCI_VDEVICE(MARVELL, 0x5081), chip_508x },
+       { PCI_VDEVICE(MARVELL, 0x5040), .driver_data = chip_504x },
+       { PCI_VDEVICE(MARVELL, 0x5041), .driver_data = chip_504x },
+       { PCI_VDEVICE(MARVELL, 0x5080), .driver_data = chip_5080 },
+       { PCI_VDEVICE(MARVELL, 0x5081), .driver_data = chip_508x },
        /* RocketRAID 1720/174x have different identifiers */
-       { PCI_VDEVICE(TTI, 0x1720), chip_6042 },
-       { PCI_VDEVICE(TTI, 0x1740), chip_6042 },
-       { PCI_VDEVICE(TTI, 0x1742), chip_6042 },
+       { PCI_VDEVICE(TTI, 0x1720), .driver_data = chip_6042 },
+       { PCI_VDEVICE(TTI, 0x1740), .driver_data = chip_6042 },
+       { PCI_VDEVICE(TTI, 0x1742), .driver_data = chip_6042 },
 
-       { PCI_VDEVICE(MARVELL, 0x6040), chip_604x },
-       { PCI_VDEVICE(MARVELL, 0x6041), chip_604x },
-       { PCI_VDEVICE(MARVELL, 0x6042), chip_6042 },
-       { PCI_VDEVICE(MARVELL, 0x6080), chip_608x },
-       { PCI_VDEVICE(MARVELL, 0x6081), chip_608x },
+       { PCI_VDEVICE(MARVELL, 0x6040), .driver_data = chip_604x },
+       { PCI_VDEVICE(MARVELL, 0x6041), .driver_data = chip_604x },
+       { PCI_VDEVICE(MARVELL, 0x6042), .driver_data = chip_6042 },
+       { PCI_VDEVICE(MARVELL, 0x6080), .driver_data = chip_608x },
+       { PCI_VDEVICE(MARVELL, 0x6081), .driver_data = chip_608x },
 
-       { PCI_VDEVICE(ADAPTEC2, 0x0241), chip_604x },
+       { PCI_VDEVICE(ADAPTEC2, 0x0241), .driver_data = chip_604x },
 
        /* Adaptec 1430SA */
-       { PCI_VDEVICE(ADAPTEC2, 0x0243), chip_7042 },
+       { PCI_VDEVICE(ADAPTEC2, 0x0243), .driver_data = chip_7042 },
 
        /* Marvell 7042 support */
-       { PCI_VDEVICE(MARVELL, 0x7042), chip_7042 },
+       { PCI_VDEVICE(MARVELL, 0x7042), .driver_data = chip_7042 },
 
        /* Highpoint RocketRAID PCIe series */
-       { PCI_VDEVICE(TTI, 0x2300), chip_7042 },
-       { PCI_VDEVICE(TTI, 0x2310), chip_7042 },
+       { PCI_VDEVICE(TTI, 0x2300), .driver_data = chip_7042 },
+       { PCI_VDEVICE(TTI, 0x2310), .driver_data = chip_7042 },
 
        { }                     /* terminate list */
 };
index 19b92706586868ccb84b4e244df9d48ba0023a8f..8624cd4e88cceeafd2c52d8f8f0aa0cef219c190 100644 (file)
@@ -344,21 +344,49 @@ enum nv_host_type
 };
 
 static const struct pci_device_id nv_pci_tbl[] = {
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA), NFORCE2 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA), NFORCE3 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2), NFORCE3 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA), CK804 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2), CK804 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA), CK804 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2), CK804 },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), MCP5x },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), MCP5x },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), MCP5x },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), MCP5x },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC },
-       { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC },
-
+       {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA),
+               .driver_data = NFORCE2,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA),
+               .driver_data = NFORCE3,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2),
+               .driver_data = NFORCE3,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA),
+               .driver_data = CK804,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2),
+               .driver_data = CK804,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA),
+               .driver_data = CK804,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2),
+               .driver_data = CK804,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA),
+               .driver_data = MCP5x,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2),
+               .driver_data = MCP5x,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA),
+               .driver_data = MCP5x,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2),
+               .driver_data = MCP5x,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA),
+               .driver_data = GENERIC,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2),
+               .driver_data = GENERIC,
+       }, {
+               PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3),
+               .driver_data = GENERIC,
+       },
        { } /* terminate list */
 };
 
index c5fad448bafcd95b0fa222c428e0719b4088a1c7..6da1dea00b84e18b908bdd96242ffbe3e1d72476 100644 (file)
@@ -281,25 +281,25 @@ static const struct ata_port_info pdc_port_info[] = {
 };
 
 static const struct pci_device_id pdc_ata_pci_tbl[] = {
-       { PCI_VDEVICE(PROMISE, 0x3371), board_2037x },
-       { PCI_VDEVICE(PROMISE, 0x3373), board_2037x },
-       { PCI_VDEVICE(PROMISE, 0x3375), board_2037x },
-       { PCI_VDEVICE(PROMISE, 0x3376), board_2037x },
-       { PCI_VDEVICE(PROMISE, 0x3570), board_2057x },
-       { PCI_VDEVICE(PROMISE, 0x3571), board_2057x },
-       { PCI_VDEVICE(PROMISE, 0x3574), board_2057x },
-       { PCI_VDEVICE(PROMISE, 0x3577), board_2057x },
-       { PCI_VDEVICE(PROMISE, 0x3d73), board_2057x },
-       { PCI_VDEVICE(PROMISE, 0x3d75), board_2057x },
-
-       { PCI_VDEVICE(PROMISE, 0x3318), board_20319 },
-       { PCI_VDEVICE(PROMISE, 0x3319), board_20319 },
-       { PCI_VDEVICE(PROMISE, 0x3515), board_40518 },
-       { PCI_VDEVICE(PROMISE, 0x3519), board_40518 },
-       { PCI_VDEVICE(PROMISE, 0x3d17), board_40518 },
-       { PCI_VDEVICE(PROMISE, 0x3d18), board_40518 },
-
-       { PCI_VDEVICE(PROMISE, 0x6629), board_20619 },
+       { PCI_VDEVICE(PROMISE, 0x3371), .driver_data = board_2037x },
+       { PCI_VDEVICE(PROMISE, 0x3373), .driver_data = board_2037x },
+       { PCI_VDEVICE(PROMISE, 0x3375), .driver_data = board_2037x },
+       { PCI_VDEVICE(PROMISE, 0x3376), .driver_data = board_2037x },
+       { PCI_VDEVICE(PROMISE, 0x3570), .driver_data = board_2057x },
+       { PCI_VDEVICE(PROMISE, 0x3571), .driver_data = board_2057x },
+       { PCI_VDEVICE(PROMISE, 0x3574), .driver_data = board_2057x },
+       { PCI_VDEVICE(PROMISE, 0x3577), .driver_data = board_2057x },
+       { PCI_VDEVICE(PROMISE, 0x3d73), .driver_data = board_2057x },
+       { PCI_VDEVICE(PROMISE, 0x3d75), .driver_data = board_2057x },
+
+       { PCI_VDEVICE(PROMISE, 0x3318), .driver_data = board_20319 },
+       { PCI_VDEVICE(PROMISE, 0x3319), .driver_data = board_20319 },
+       { PCI_VDEVICE(PROMISE, 0x3515), .driver_data = board_40518 },
+       { PCI_VDEVICE(PROMISE, 0x3519), .driver_data = board_40518 },
+       { PCI_VDEVICE(PROMISE, 0x3d17), .driver_data = board_40518 },
+       { PCI_VDEVICE(PROMISE, 0x3d18), .driver_data = board_40518 },
+
+       { PCI_VDEVICE(PROMISE, 0x6629), .driver_data = board_20619 },
 
        { }     /* terminate list */
 };
index 1add7a7d5ff600fc60c6756467b2e6b719879155..4e7f5b2ff3f69897b9e26fa8978fc6d157db7c5a 100644 (file)
@@ -146,8 +146,7 @@ static const struct ata_port_info qs_port_info[] = {
 };
 
 static const struct pci_device_id qs_ata_pci_tbl[] = {
-       { PCI_VDEVICE(PDC, 0x2068), board_2068_idx },
-
+       { PCI_VDEVICE(PDC, 0x2068), .driver_data = board_2068_idx },
        { }     /* terminate list */
 };
 
index 1b6dc950a42a3d04786f31fbc3f1b314757dd167..8837e7c37d4cb4da1ea54b506e6cf4e169e22f34 100644 (file)
@@ -112,14 +112,13 @@ static void sil_thaw(struct ata_port *ap);
 
 
 static const struct pci_device_id sil_pci_tbl[] = {
-       { PCI_VDEVICE(CMD, 0x3112), sil_3112 },
-       { PCI_VDEVICE(CMD, 0x0240), sil_3112 },
-       { PCI_VDEVICE(CMD, 0x3512), sil_3512 },
-       { PCI_VDEVICE(CMD, 0x3114), sil_3114 },
-       { PCI_VDEVICE(ATI, 0x436e), sil_3112 },
-       { PCI_VDEVICE(ATI, 0x4379), sil_3112_no_sata_irq },
-       { PCI_VDEVICE(ATI, 0x437a), sil_3112_no_sata_irq },
-
+       { PCI_VDEVICE(CMD, 0x3112), .driver_data = sil_3112 },
+       { PCI_VDEVICE(CMD, 0x0240), .driver_data = sil_3112 },
+       { PCI_VDEVICE(CMD, 0x3512), .driver_data = sil_3512 },
+       { PCI_VDEVICE(CMD, 0x3114), .driver_data = sil_3114 },
+       { PCI_VDEVICE(ATI, 0x436e), .driver_data = sil_3112 },
+       { PCI_VDEVICE(ATI, 0x4379), .driver_data = sil_3112_no_sata_irq },
+       { PCI_VDEVICE(ATI, 0x437a), .driver_data = sil_3112_no_sata_irq },
        { }     /* terminate list */
 };
 
index b4549ba968a48bb2d56c5276f9fc20e15d72381e..38291ae772c9ccd5ca879487058438d3549105c3 100644 (file)
@@ -351,14 +351,13 @@ static int sil24_port_resume(struct ata_port *ap);
 #endif
 
 static const struct pci_device_id sil24_pci_tbl[] = {
-       { PCI_VDEVICE(CMD, 0x3124), BID_SIL3124 },
-       { PCI_VDEVICE(INTEL, 0x3124), BID_SIL3124 },
-       { PCI_VDEVICE(CMD, 0x3132), BID_SIL3132 },
-       { PCI_VDEVICE(CMD, 0x0242), BID_SIL3132 },
-       { PCI_VDEVICE(CMD, 0x0244), BID_SIL3132 },
-       { PCI_VDEVICE(CMD, 0x3131), BID_SIL3131 },
-       { PCI_VDEVICE(CMD, 0x3531), BID_SIL3131 },
-
+       { PCI_VDEVICE(CMD, 0x3124), .driver_data = BID_SIL3124 },
+       { PCI_VDEVICE(INTEL, 0x3124), .driver_data = BID_SIL3124 },
+       { PCI_VDEVICE(CMD, 0x3132), .driver_data = BID_SIL3132 },
+       { PCI_VDEVICE(CMD, 0x0242), .driver_data = BID_SIL3132 },
+       { PCI_VDEVICE(CMD, 0x0244), .driver_data = BID_SIL3132 },
+       { PCI_VDEVICE(CMD, 0x3131), .driver_data = BID_SIL3131 },
+       { PCI_VDEVICE(CMD, 0x3531), .driver_data = BID_SIL3131 },
        { } /* terminate list */
 };
 
index b8b6d9eff3b81441accad071dd64e280a505fd62..9deb8060101ac280a7ab6a57d348efc285553885 100644 (file)
@@ -51,13 +51,31 @@ static int sis_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
 static int sis_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 
 static const struct pci_device_id sis_pci_tbl[] = {
-       { PCI_VDEVICE(SI, 0x0180), sis_180 },   /* SiS 964/180 */
-       { PCI_VDEVICE(SI, 0x0181), sis_180 },   /* SiS 964/180 */
-       { PCI_VDEVICE(SI, 0x0182), sis_180 },   /* SiS 965/965L */
-       { PCI_VDEVICE(SI, 0x0183), sis_180 },   /* SiS 965/965L */
-       { PCI_VDEVICE(SI, 0x1182), sis_180 },   /* SiS 966/680 */
-       { PCI_VDEVICE(SI, 0x1183), sis_180 },   /* SiS 966/966L/968/680 */
-
+       {
+               /* SiS 964/180 */
+               PCI_VDEVICE(SI, 0x0180),
+               .driver_data = sis_180,
+       }, {
+               /* SiS 964/180 */
+               PCI_VDEVICE(SI, 0x0181),
+               .driver_data = sis_180,
+       }, {
+               /* SiS 965/965L */
+               PCI_VDEVICE(SI, 0x0182),
+               .driver_data = sis_180,
+       }, {
+               /* SiS 965/965L */
+               PCI_VDEVICE(SI, 0x0183),
+               .driver_data = sis_180,
+       }, {
+               /* SiS 966/680 */
+               PCI_VDEVICE(SI, 0x1182),
+               .driver_data = sis_180,
+       }, {
+               /* SiS 966/966L/968/680 */
+               PCI_VDEVICE(SI, 0x1183),
+               .driver_data = sis_180,
+       },
        { }     /* terminate list */
 };
 
index c5d6aa36c9c3003c8f207596ecde8026451bb9b2..1f5ce36701c74561129b21f1ee30744016f2acd1 100644 (file)
@@ -500,14 +500,13 @@ static int k2_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *en
  * controller
  * */
 static const struct pci_device_id k2_sata_pci_tbl[] = {
-       { PCI_VDEVICE(SERVERWORKS, 0x0240), chip_svw4 },
-       { PCI_VDEVICE(SERVERWORKS, 0x0241), chip_svw8 },
-       { PCI_VDEVICE(SERVERWORKS, 0x0242), chip_svw4 },
-       { PCI_VDEVICE(SERVERWORKS, 0x024a), chip_svw4 },
-       { PCI_VDEVICE(SERVERWORKS, 0x024b), chip_svw4 },
-       { PCI_VDEVICE(SERVERWORKS, 0x0410), chip_svw42 },
-       { PCI_VDEVICE(SERVERWORKS, 0x0411), chip_svw43 },
-
+       { PCI_VDEVICE(SERVERWORKS, 0x0240), .driver_data = chip_svw4 },
+       { PCI_VDEVICE(SERVERWORKS, 0x0241), .driver_data = chip_svw8 },
+       { PCI_VDEVICE(SERVERWORKS, 0x0242), .driver_data = chip_svw4 },
+       { PCI_VDEVICE(SERVERWORKS, 0x024a), .driver_data = chip_svw4 },
+       { PCI_VDEVICE(SERVERWORKS, 0x024b), .driver_data = chip_svw4 },
+       { PCI_VDEVICE(SERVERWORKS, 0x0410), .driver_data = chip_svw42 },
+       { PCI_VDEVICE(SERVERWORKS, 0x0411), .driver_data = chip_svw43 },
        { }
 };
 
index 227dc1d4e85bd71a58b920a13f2c83e90a815dd1..cab40c10ad6bcb7260792323144d12f8f6fca9ab 100644 (file)
@@ -267,8 +267,7 @@ static const struct ata_port_info pdc_port_info[] = {
 };
 
 static const struct pci_device_id pdc_sata_pci_tbl[] = {
-       { PCI_VDEVICE(PROMISE, 0x6622), board_20621 },
-
+       { PCI_VDEVICE(PROMISE, 0x6622), .driver_data = board_20621 },
        { }     /* terminate list */
 };
 
index 44985796cc47a0fcad3ae548e34ccd74859b264f..122133199ea70289053b663af910e573381deae8 100644 (file)
@@ -45,10 +45,9 @@ static int uli_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
 static int uli_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 
 static const struct pci_device_id uli_pci_tbl[] = {
-       { PCI_VDEVICE(AL, 0x5289), uli_5289 },
-       { PCI_VDEVICE(AL, 0x5287), uli_5287 },
-       { PCI_VDEVICE(AL, 0x5281), uli_5281 },
-
+       { PCI_VDEVICE(AL, 0x5289), .driver_data = uli_5289 },
+       { PCI_VDEVICE(AL, 0x5287), .driver_data = uli_5287 },
+       { PCI_VDEVICE(AL, 0x5281), .driver_data = uli_5281 },
        { }     /* terminate list */
 };
 
index b672a1e0586742f4fd1367d4beed2ab2785e0845..cfd8ff1f529ca796e49856d0129f879a4be96f61 100644 (file)
@@ -85,15 +85,35 @@ static void vt6421_set_dma_mode(struct ata_port *ap, struct ata_device *adev);
 static void vt6421_error_handler(struct ata_port *ap);
 
 static const struct pci_device_id svia_pci_tbl[] = {
-       { PCI_VDEVICE(VIA, 0x5337), vt6420 },
-       { PCI_VDEVICE(VIA, 0x0591), vt6420 }, /* 2 sata chnls (Master) */
-       { PCI_VDEVICE(VIA, 0x3149), vt6420 }, /* 2 sata chnls (Master) */
-       { PCI_VDEVICE(VIA, 0x3249), vt6421 }, /* 2 sata chnls, 1 pata chnl */
-       { PCI_VDEVICE(VIA, 0x5372), vt6420 },
-       { PCI_VDEVICE(VIA, 0x7372), vt6420 },
-       { PCI_VDEVICE(VIA, 0x5287), vt8251 }, /* 2 sata chnls (Master/Slave) */
-       { PCI_VDEVICE(VIA, 0x9000), vt8251 },
-
+       {
+               PCI_VDEVICE(VIA, 0x5337),
+               .driver_data = vt6420,
+       }, {
+               /* 2 sata chnls (Master) */
+               PCI_VDEVICE(VIA, 0x0591),
+               .driver_data = vt6420,
+       }, {
+               /* 2 sata chnls (Master) */
+               PCI_VDEVICE(VIA, 0x3149),
+               .driver_data = vt6420,
+       }, {
+               /* 2 sata chnls, 1 pata chnl */
+               PCI_VDEVICE(VIA, 0x3249),
+               .driver_data = vt6421,
+       }, {
+               PCI_VDEVICE(VIA, 0x5372),
+               .driver_data = vt6420,
+       }, {
+               PCI_VDEVICE(VIA, 0x7372),
+               .driver_data = vt6420,
+       }, {
+               /* 2 sata chnls (Master/Slave) */
+               PCI_VDEVICE(VIA, 0x5287),
+               .driver_data = vt8251,
+       }, {
+               PCI_VDEVICE(VIA, 0x9000),
+               .driver_data = vt8251,
+       },
        { }     /* terminate list */
 };