Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231404/?format=api
{ "id": 2231404, "url": "http://patchwork.ozlabs.org/api/patches/2231404/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260430170612.510869-2-u.kleine-koenig@baylibre.com/", "project": { "id": 13, "url": "http://patchwork.ozlabs.org/api/projects/13/?format=api", "name": "Linux IDE development", "link_name": "linux-ide", "list_id": "linux-ide.vger.kernel.org", "list_email": "linux-ide@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260430170612.510869-2-u.kleine-koenig@baylibre.com>", "list_archive_url": null, "date": "2026-04-30T17:06:11", "name": "ata: Consistently define pci_device_ids using named initializers", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "f17ee1a358a2d24dc07f34c16d9ca65877d67834", "submitter": { "id": 88686, "url": "http://patchwork.ozlabs.org/api/people/88686/?format=api", "name": "Uwe Kleine-König (The Capable Hub)", "email": "u.kleine-koenig@baylibre.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260430170612.510869-2-u.kleine-koenig@baylibre.com/mbox/", "series": [ { "id": 502344, "url": "http://patchwork.ozlabs.org/api/series/502344/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/list/?series=502344", "date": "2026-04-30T17:06:11", "name": "ata: Consistently define pci_device_ids using named initializers", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502344/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231404/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231404/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-ide+bounces-5615-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-ide@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=imQHltVL;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ide+bounces-5615-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.b=\"imQHltVL\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.50", "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=baylibre.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=baylibre.com" ], "Received": [ "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g60vC69l4z1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 03:06:31 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id A927930068CD\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 17:06:28 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 31F0E336882;\n\tThu, 30 Apr 2026 17:06:26 +0000 (UTC)", "from mail-wm1-f50.google.com (mail-wm1-f50.google.com\n [209.85.128.50])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id CA20023AB88\n\tfor <linux-ide@vger.kernel.org>; Thu, 30 Apr 2026 17:06:20 +0000 (UTC)", "by mail-wm1-f50.google.com with SMTP id\n 5b1f17b1804b1-488b0e1b870so19589395e9.2\n for <linux-ide@vger.kernel.org>; Thu, 30 Apr 2026 10:06:20 -0700 (PDT)", "from localhost\n (p200300f65f114e081177085aa618d19b.dip0.t-ipconnect.de.\n [2003:f6:5f11:4e08:1177:85a:a618:d19b])\n by smtp.gmail.com with UTF8SMTPSA id\n 5b1f17b1804b1-48a82301b7bsm86560845e9.11.2026.04.30.10.06.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 10:06:17 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777568786; cv=none;\n b=FpuRI8pPMCWiHx+XRKsrJvzoYHvYRVTnsrso6lUpzoQfuy99C4fKZwiBoahrEHY2ITafxE3DBnMa3A2wLOEWtAAa3LDjVR+6LMXgwhWY9su8ZUS35AsCkkG4BJ9qJaPtcJnPXHSd+LprHIYHsgtb8RFqtwv5eB3FA99O1a6/2oI=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777568786; c=relaxed/simple;\n\tbh=qSznduuOAcUBKI8X+c7bV7FP4xHnPTWpDEpY0Y1jZ8A=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=nXsYeM+Hs/eg7UDXM8DFK7FRu1QWLiRghME5mWyr+lHzyFjPEIQsGlqBllYYfZI7YCSVF/50v/pWAxFuy5E4ICNFS7Libm6LUr3h8yfQBFUkayKnNtVMKrPShEQdAbDlBWaijDVqLEP4eRPTe090tVV6TjqNcOVaraHaXlHH9g0=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=baylibre.com;\n spf=pass smtp.mailfrom=baylibre.com;\n dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.b=imQHltVL;\n arc=none smtp.client-ip=209.85.128.50", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1777568779;\n x=1778173579; darn=vger.kernel.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=84M7HNUVIxHFf3ra/4Mq1wSPeDaqH9VelXhg9akEKVE=;\n b=imQHltVLmqD/f/pJ2+dSM/iHNa63qGj5uJt7oRom5jQ4YczbMhp5l/w9L01UAEmx91\n /fxd+QSlj7/J2LHkX/CXNgjWd6L9D50RNAGmFW2zox9jDPnDsVsV30n4+/li7fRqsdeX\n V/dRA43FxK0Udh2zzvg7KrESG+8Ib/j1HD5ROqtzOFsDg17uwoNW4Cdl25DNW/dxPxBv\n XpGvXYKRvsMr+MKb8jPmHvQPgm2zHgt6uj+pDTrkl4HAiG0D+4TGfiP1c81u6sLI7EcO\n qKwnN5A23pG2K3l85Yf+pSjJ9mAKdF5CqzXzQaP5YnAeozouwCzOwPqypSWkatf7ZJ0L\n RkWQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777568779; x=1778173579;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=84M7HNUVIxHFf3ra/4Mq1wSPeDaqH9VelXhg9akEKVE=;\n b=jZ3d+6WxwZWXUg7uuYoA8s9SiBLlSDyUQxqPAzOx2+r190RHFyRypOTNg7RHkd3Jyx\n cKjJVbRtDKNbIhuQOQlaax36++VoOLWGuaw+68EETDwinTdZuipr2XNbrkpmQw+mN30j\n 41UnPmjUAVPVJq9Bx0+1IK1LdlhZRpLypRXMFPPVDTSSKBpr62IOzoUUcBWheCe6ZPmV\n HXZI9TYzsv0udBR4+hmZVEO6BAB+p2Wt3lvXjWAcNa9MsK4yZrn8tuyqSh9m5Dj5m/dN\n HTElxnCiUFg/n3s7lEsnq7VlWyco/Awk5+skIky/N+q3Zg15B7yHJNTltVINJp2XFGLc\n LP5w==", "X-Forwarded-Encrypted": "i=1;\n AFNElJ9OW8A45nK7pLK+ZeiERy9EZcYxZgaPOpXwUQ6mzLyKoFXa6RVmmtzpxdPAHVps6f1sU95rXVgl4nc=@vger.kernel.org", "X-Gm-Message-State": "AOJu0Yw/mlqwLJPib7XcMywrWDCTLN/YQ3cNytmeXPxBWPyUgfAekAgT\n\tHepbjlX2CqOvjKnGoaDPE608RqafD3ySYSJlgUzVX06qM4z+z+mfGn481b5mX0yayhk=", "X-Gm-Gg": "AeBDievhwaGYJ8lLPE+5hfbWolQxeYeDVQJ7YoCoLRPyp5nY0pp9WsUDqcOur3QWpjz\n\tICgtKb60OXI60Gbk/TAr9JFTAvjdKnZWqjvheiEBHJ/NbDFto50SILmAnzN5g7iYX+9fRAFOzKE\n\t2Lqz8je8lbEQyvN04ZvqRotqk+x2IJDx0fEl+t0YNRnlY9IxY0ouMYAnNRuc3UKFOlc1gaNU/I1\n\tkPcvRAGP9jSC0acpMGbTaatBYR3dRDMHSy7Iy1NnRJsspmLucGk1n6i81jAr+zgBRMv/gnPU0z4\n\tf+bpJ6VIHNZwqcYBt4pU/DlG9laxIvofT+g00exRAMj8Mej6LjMd5siWo7jJanU1UMlDnJu8L95\n\tWVF1WKW5mVZikGExvcq7K6OvW/0eNkCFv4qF0bDmsoBZ8v0CnlaaUqyFid/xLUFjpvrI8AmHJpD\n\tBHBe6T7KZL6cGYAGVuveqNBYc5lsfl4LyXNIbR4kCFRkHrVZr4+xL+LncgZxOq2cz9S2J1btA5Q\n\thsc2erGcpyEWwy/h8ZV+IjU", "X-Received": "by 2002:a05:600c:8b35:b0:485:4388:3492 with SMTP id\n 5b1f17b1804b1-48a84452dc3mr61320505e9.11.1777568777732;\n Thu, 30 Apr 2026 10:06:17 -0700 (PDT)", "From": "=?utf-8?q?Uwe_Kleine-K=C3=B6nig_=28The_Capable_Hub=29?=\n <u.kleine-koenig@baylibre.com>", "To": "Damien Le Moal <dlemoal@kernel.org>,\n\tNiklas Cassel <cassel@kernel.org>", "Cc": "Mikael Pettersson <mikpelinux@gmail.com>,\n\tlinux-ide@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tMarkus Schneider-Pargmann <msp@baylibre.com>", "Subject": "[PATCH] ata: Consistently define pci_device_ids using named\n initializers", "Date": "Thu, 30 Apr 2026 19:06:11 +0200", "Message-ID": "<20260430170612.510869-2-u.kleine-koenig@baylibre.com>", "X-Mailer": "git-send-email 2.47.3", "Precedence": "bulk", "X-Mailing-List": "linux-ide@vger.kernel.org", "List-Id": "<linux-ide.vger.kernel.org>", "List-Subscribe": "<mailto:linux-ide+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-ide+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=100586;\n i=u.kleine-koenig@baylibre.com; h=from:subject;\n bh=qSznduuOAcUBKI8X+c7bV7FP4xHnPTWpDEpY0Y1jZ8A=;\n b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBp84wE6NZ7Q+BrG+5Lcw81ccQriwCRht0TLZUfY\n wi3Lv6FpYiJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCafOMBAAKCRCPgPtYfRL+\n TgrmB/sH8/lciz7SzC5OW9LyTGWfvnTomLtp9owUa2QSME2v+MP8mFYRFJ4eSphzScHPa3KAdyt\n SM8vQ0kZNFBZFs76Ukv9EglyfKxIiW9p6Vg5mppPTAzrnCpDHIbAgcSFT3awifp7xpgcpeQt24L\n uPrvBsDfkWR1HjR97LvVymTIhLdMlyfBdPQSHeFoXhDT1GDG6eNEnq5527KUZx5lVvfTHcXPw88\n dgNfTSFSpkZg+wMPNSYPYm8yAQRtwqzypups/yaDl+W3hxrvfnoNE3KMjz1/PYmF8xr3xEFCGQZ\n IKaeB500+z3lCmbj2U79mcinwcoHzKTB7Y2aNzlHC4hv+WVe", "X-Developer-Key": "i=u.kleine-koenig@baylibre.com; a=openpgp;\n fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6", "Content-Transfer-Encoding": "8bit" }, "content": "... and PCI device helpers.\n\nThe .driver_data member in the various struct pci_device_id arrays were\ninitialized mostly by list expressions. This isn't easily readable if\nyou're not into PCI. Using named initializers is more explicit and thus\neasier to parse.\n\nAlso use PCI_DEVICE to conveniently assign .vendor, .device, .subvendor\nand .subdevice where appropriate.\n\nThe secret plan is to make struct pci_device_id::driver_data an\nanonymous union (similar to\nhttps://lore.kernel.org/all/cover.1776579304.git.u.kleine-koenig@baylibre.com/)\nand that requires named initializers. But it's also a nice cleanup on\nits own.\n\nThis change doesn't introduce changes to the compiled pci_device_id\narrays. Tested on x86 and arm64.\n\nSigned-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>\n---\nHello,\n\nThere is no benefit for drivers/ata of the mentioned follow up quest as it\ndoesn't use pointers in .driver_data. Other drivers benefit from\n\n - { PCI_VDEVICE(TTI, 0x3220), .driver_data = (kernel_ulong_t)&hptiop_itl_ops },\n + { PCI_VDEVICE(TTI, 0x3220), .driver_data_ptr = &hptiop_itl_ops },\n\nwhich gets rid of a bunch of casts and so brings a little bit more type\nsafety. This patch is a preparation for that.\n\nI assume a single patch for all of drivers/ata is fine. If not I can\nsplit per driver.\n\nBest regards\nUwe\n\n drivers/ata/acard-ahci.c | 2 +-\n drivers/ata/ahci.c | 908 +++++++++++++++++++++-----------\n drivers/ata/ata_piix.c | 182 +++----\n drivers/ata/pata_acpi.c | 5 +-\n drivers/ata/pata_amd.c | 42 +-\n drivers/ata/pata_artop.c | 10 +-\n drivers/ata/pata_atp867x.c | 4 +-\n drivers/ata/pata_cmd640.c | 2 +-\n drivers/ata/pata_cmd64x.c | 8 +-\n drivers/ata/pata_jmicron.c | 7 +-\n drivers/ata/pata_macio.c | 12 +-\n drivers/ata/pata_ninja32.c | 12 +-\n drivers/ata/pata_opti.c | 4 +-\n drivers/ata/pata_pdc2027x.c | 14 +-\n drivers/ata/pata_pdc202xx_old.c | 10 +-\n drivers/ata/pata_sch.c | 2 +-\n drivers/ata/pata_serverworks.c | 10 +-\n drivers/ata/pata_via.c | 16 +-\n drivers/ata/pdc_adma.c | 2 +-\n drivers/ata/sata_mv.c | 34 +-\n drivers/ata/sata_nv.c | 28 +-\n drivers/ata/sata_promise.c | 34 +-\n drivers/ata/sata_qstor.c | 2 +-\n drivers/ata/sata_sil.c | 14 +-\n drivers/ata/sata_sil24.c | 14 +-\n drivers/ata/sata_sis.c | 12 +-\n drivers/ata/sata_svw.c | 14 +-\n drivers/ata/sata_sx4.c | 2 +-\n drivers/ata/sata_uli.c | 6 +-\n drivers/ata/sata_via.c | 16 +-\n drivers/ata/sata_vsc.c | 14 +-\n 31 files changed, 877 insertions(+), 565 deletions(-)\n\n\nbase-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731", "diff": "diff --git a/drivers/ata/acard-ahci.c b/drivers/ata/acard-ahci.c\nindex 3999305b5356..6cec2483fe62 100644\n--- a/drivers/ata/acard-ahci.c\n+++ b/drivers/ata/acard-ahci.c\n@@ -92,7 +92,7 @@ static const struct ata_port_info acard_ahci_port_info[] = {\n \n static const struct pci_device_id acard_ahci_pci_tbl[] = {\n \t/* ACard */\n-\t{ PCI_VDEVICE(ARTOP, 0x000d), board_acard_ahci }, /* ATP8620 */\n+\t{ PCI_VDEVICE(ARTOP, 0x000d), .driver_data = board_acard_ahci }, /* ATP8620 */\n \n \t{ } /* terminate list */\n };\ndiff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c\nindex 1d73a53370cf..5c54083e0d11 100644\n--- a/drivers/ata/ahci.c\n+++ b/drivers/ata/ahci.c\n@@ -279,316 +279,598 @@ static const struct ata_port_info ahci_port_info[] = {\n \n static const struct pci_device_id ahci_pci_tbl[] = {\n \t/* Intel */\n-\t{ PCI_VDEVICE(INTEL, 0x06d6), board_ahci_pcs_quirk }, /* Comet Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x2652), board_ahci_pcs_quirk }, /* ICH6 */\n-\t{ PCI_VDEVICE(INTEL, 0x2653), board_ahci_pcs_quirk }, /* ICH6M */\n-\t{ PCI_VDEVICE(INTEL, 0x27c1), board_ahci_pcs_quirk }, /* ICH7 */\n-\t{ PCI_VDEVICE(INTEL, 0x27c5), board_ahci_pcs_quirk }, /* ICH7M */\n-\t{ PCI_VDEVICE(INTEL, 0x27c3), board_ahci_pcs_quirk }, /* ICH7R */\n-\t{ PCI_VDEVICE(AL, 0x5288), board_ahci_ign_iferr }, /* ULi M5288 */\n-\t{ PCI_VDEVICE(INTEL, 0x2681), board_ahci_pcs_quirk }, /* ESB2 */\n-\t{ PCI_VDEVICE(INTEL, 0x2682), board_ahci_pcs_quirk }, /* ESB2 */\n-\t{ PCI_VDEVICE(INTEL, 0x2683), board_ahci_pcs_quirk }, /* ESB2 */\n-\t{ PCI_VDEVICE(INTEL, 0x27c6), board_ahci_pcs_quirk }, /* ICH7-M DH */\n-\t{ PCI_VDEVICE(INTEL, 0x2821), board_ahci_pcs_quirk }, /* ICH8 */\n-\t{ PCI_VDEVICE(INTEL, 0x2822), board_ahci_pcs_quirk_no_sntf }, /* ICH8/Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0x2824), board_ahci_pcs_quirk }, /* ICH8 */\n-\t{ PCI_VDEVICE(INTEL, 0x2829), board_ahci_pcs_quirk }, /* ICH8M */\n-\t{ PCI_VDEVICE(INTEL, 0x282a), board_ahci_pcs_quirk }, /* ICH8M */\n-\t{ PCI_VDEVICE(INTEL, 0x2922), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x2923), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x2924), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x2925), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x2927), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x2929), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x292a), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x292b), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x292c), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x292f), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x294d), board_ahci_pcs_quirk }, /* ICH9 */\n-\t{ PCI_VDEVICE(INTEL, 0x294e), board_ahci_pcs_quirk }, /* ICH9M */\n-\t{ PCI_VDEVICE(INTEL, 0x502a), board_ahci_pcs_quirk }, /* Tolapai */\n-\t{ PCI_VDEVICE(INTEL, 0x502b), board_ahci_pcs_quirk }, /* Tolapai */\n-\t{ PCI_VDEVICE(INTEL, 0x3a05), board_ahci_pcs_quirk }, /* ICH10 */\n-\t{ PCI_VDEVICE(INTEL, 0x3a22), board_ahci_pcs_quirk }, /* ICH10 */\n-\t{ PCI_VDEVICE(INTEL, 0x3a25), board_ahci_pcs_quirk }, /* ICH10 */\n-\t{ PCI_VDEVICE(INTEL, 0x3b22), board_ahci_pcs_quirk }, /* PCH AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x3b23), board_ahci_pcs_quirk }, /* PCH AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x3b24), board_ahci_pcs_quirk }, /* PCH RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x3b25), board_ahci_pcs_quirk }, /* PCH RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x3b29), board_ahci_pcs_quirk }, /* PCH M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x3b2b), board_ahci_pcs_quirk }, /* PCH RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x3b2c), board_ahci_pcs_quirk }, /* PCH M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x3b2f), board_ahci_pcs_quirk }, /* PCH AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b0), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b1), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b2), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b3), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b4), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b5), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b6), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19b7), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19bE), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19bF), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c0), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c1), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c2), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c3), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c4), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c5), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c6), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19c7), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19cE), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x19cF), board_ahci }, /* DNV AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1c02), board_ahci_pcs_quirk }, /* CPT AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1c03), board_ahci_pcs_quirk }, /* CPT M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1c04), board_ahci_pcs_quirk }, /* CPT RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1c05), board_ahci_pcs_quirk }, /* CPT M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1c06), board_ahci_pcs_quirk }, /* CPT RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1c07), board_ahci_pcs_quirk }, /* CPT RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1d02), board_ahci_pcs_quirk }, /* PBG AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1d04), board_ahci_pcs_quirk }, /* PBG RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1d06), board_ahci_pcs_quirk }, /* PBG RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x2323), board_ahci_pcs_quirk }, /* DH89xxCC AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1e02), board_ahci_pcs_quirk }, /* Panther Point AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1e03), board_ahci_pcs_quirk }, /* Panther M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1e04), board_ahci_pcs_quirk }, /* Panther Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1e05), board_ahci_pcs_quirk }, /* Panther Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1e06), board_ahci_pcs_quirk }, /* Panther Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1e07), board_ahci_pcs_quirk }, /* Panther M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1e0e), board_ahci_pcs_quirk }, /* Panther Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c02), board_ahci_pcs_quirk }, /* Lynx Point AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8c03), board_ahci_pcs_quirk }, /* Lynx M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8c04), board_ahci_pcs_quirk }, /* Lynx Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c05), board_ahci_pcs_quirk }, /* Lynx M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c06), board_ahci_pcs_quirk }, /* Lynx Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c07), board_ahci_pcs_quirk }, /* Lynx M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c0e), board_ahci_pcs_quirk }, /* Lynx Point RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c0f), board_ahci_pcs_quirk }, /* Lynx M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c02), board_ahci_pcs_quirk }, /* Lynx LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x9c03), board_ahci_pcs_quirk }, /* Lynx LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x9c04), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c05), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c06), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c07), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c0e), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c0f), board_ahci_pcs_quirk }, /* Lynx LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9dd3), board_ahci_pcs_quirk }, /* Cannon Lake PCH-LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1f22), board_ahci_pcs_quirk }, /* Avoton AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1f23), board_ahci_pcs_quirk }, /* Avoton AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1f24), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f25), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f26), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f27), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f2e), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f2f), board_ahci_pcs_quirk }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f32), board_ahci_avn }, /* Avoton AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1f33), board_ahci_avn }, /* Avoton AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x1f34), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f35), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f36), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x2823), board_ahci_pcs_quirk }, /* Wellsburg/Lewisburg AHCI*/\n-\t{ PCI_VDEVICE(INTEL, 0x2826), board_ahci_pcs_quirk }, /* *burg SATA0 'RAID' */\n-\t{ PCI_VDEVICE(INTEL, 0x2827), board_ahci_pcs_quirk }, /* *burg SATA1 'RAID' */\n-\t{ PCI_VDEVICE(INTEL, 0x282f), board_ahci_pcs_quirk }, /* *burg SATA2 'RAID' */\n-\t{ PCI_VDEVICE(INTEL, 0x43d4), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x43d5), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x43d6), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x43d7), board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d02), board_ahci_pcs_quirk }, /* Wellsburg AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8d04), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d06), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d0e), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d62), board_ahci_pcs_quirk }, /* Wellsburg AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8d64), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d66), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8d6e), board_ahci_pcs_quirk }, /* Wellsburg RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x23a3), board_ahci_pcs_quirk }, /* Coleto Creek AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x9c83), board_ahci_pcs_quirk }, /* Wildcat LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x9c85), board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c87), board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9c8f), board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c82), board_ahci_pcs_quirk }, /* 9 Series AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8c83), board_ahci_pcs_quirk }, /* 9 Series M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x8c84), board_ahci_pcs_quirk }, /* 9 Series RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c85), board_ahci_pcs_quirk }, /* 9 Series M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c86), board_ahci_pcs_quirk }, /* 9 Series RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c87), board_ahci_pcs_quirk }, /* 9 Series M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c8e), board_ahci_pcs_quirk }, /* 9 Series RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x8c8f), board_ahci_pcs_quirk }, /* 9 Series M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9d03), board_ahci_pcs_quirk }, /* Sunrise LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x9d05), board_ahci_pcs_quirk }, /* Sunrise LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x9d07), board_ahci_pcs_quirk }, /* Sunrise LP RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa102), board_ahci_pcs_quirk }, /* Sunrise Point-H AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0xa103), board_ahci_pcs_quirk }, /* Sunrise M AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0xa105), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa106), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa107), board_ahci_pcs_quirk }, /* Sunrise M RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa10f), board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa182), board_ahci_pcs_quirk }, /* Lewisburg AHCI*/\n-\t{ PCI_VDEVICE(INTEL, 0xa186), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa1d2), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa1d6), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa202), board_ahci_pcs_quirk }, /* Lewisburg AHCI*/\n-\t{ PCI_VDEVICE(INTEL, 0xa206), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa252), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa256), board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n-\t{ PCI_VDEVICE(INTEL, 0xa356), board_ahci_pcs_quirk }, /* Cannon Lake PCH-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x06d7), board_ahci_pcs_quirk }, /* Comet Lake-H RAID */\n-\t{ PCI_VDEVICE(INTEL, 0xa386), board_ahci_pcs_quirk }, /* Comet Lake PCH-V RAID */\n-\t{ PCI_VDEVICE(INTEL, 0x0f22), board_ahci_pcs_quirk }, /* Bay Trail AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x0f23), board_ahci_pcs_quirk_no_devslp }, /* Bay Trail AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x22a3), board_ahci_pcs_quirk }, /* Cherry Tr. AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_pcs_quirk }, /* ApolloLake AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x34d3), board_ahci_pcs_quirk }, /* Ice Lake LP AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x02d3), board_ahci_pcs_quirk }, /* Comet Lake PCH-U AHCI */\n-\t{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_pcs_quirk }, /* Comet Lake PCH RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x06d6),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Comet Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x2652),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH6 */\n+\t{ PCI_VDEVICE(INTEL, 0x2653),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH6M */\n+\t{ PCI_VDEVICE(INTEL, 0x27c1),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH7 */\n+\t{ PCI_VDEVICE(INTEL, 0x27c5),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH7M */\n+\t{ PCI_VDEVICE(INTEL, 0x27c3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH7R */\n+\t{ PCI_VDEVICE(AL, 0x5288),\n+\t .driver_data = board_ahci_ign_iferr }, /* ULi M5288 */\n+\t{ PCI_VDEVICE(INTEL, 0x2681),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ESB2 */\n+\t{ PCI_VDEVICE(INTEL, 0x2682),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ESB2 */\n+\t{ PCI_VDEVICE(INTEL, 0x2683),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ESB2 */\n+\t{ PCI_VDEVICE(INTEL, 0x27c6),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH7-M DH */\n+\t{ PCI_VDEVICE(INTEL, 0x2821),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH8 */\n+\t{ PCI_VDEVICE(INTEL, 0x2822),\n+\t .driver_data = board_ahci_pcs_quirk_no_sntf }, /* ICH8/Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0x2824),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH8 */\n+\t{ PCI_VDEVICE(INTEL, 0x2829),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH8M */\n+\t{ PCI_VDEVICE(INTEL, 0x282a),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH8M */\n+\t{ PCI_VDEVICE(INTEL, 0x2922),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x2923),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x2924),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x2925),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x2927),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x2929),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x292a),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x292b),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x292c),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x292f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x294d),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9 */\n+\t{ PCI_VDEVICE(INTEL, 0x294e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH9M */\n+\t{ PCI_VDEVICE(INTEL, 0x502a),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Tolapai */\n+\t{ PCI_VDEVICE(INTEL, 0x502b),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Tolapai */\n+\t{ PCI_VDEVICE(INTEL, 0x3a05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH10 */\n+\t{ PCI_VDEVICE(INTEL, 0x3a22),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH10 */\n+\t{ PCI_VDEVICE(INTEL, 0x3a25),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ICH10 */\n+\t{ PCI_VDEVICE(INTEL, 0x3b22),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x3b23),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x3b24),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x3b25),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x3b29),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x3b2b),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x3b2c),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x3b2f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PCH AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b0),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b1),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b2),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b3),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b4),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b5),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b6),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19b7),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19bE),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19bF),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c0),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c1),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c2),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c3),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c4),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c5),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c6),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19c7),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19cE),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x19cF),\n+\t .driver_data = board_ahci }, /* DNV AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1c02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1c03),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1c04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1c05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1c06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1c07),\n+\t .driver_data = board_ahci_pcs_quirk }, /* CPT RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1d02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PBG AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1d04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PBG RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1d06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* PBG RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x2323),\n+\t .driver_data = board_ahci_pcs_quirk }, /* DH89xxCC AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1e02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther Point AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1e03),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1e04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1e05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1e06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1e07),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1e0e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Panther Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx Point AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8c03),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8c04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c07),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c0e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx Point RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c0f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x9c03),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x9c04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c07),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c0e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c0f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lynx LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9dd3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Cannon Lake PCH-LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1f22),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1f23),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1f24),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f25),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f26),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f27),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f2e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f2f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f32),\n+\t .driver_data = board_ahci_avn }, /* Avoton AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1f33),\n+\t .driver_data = board_ahci_avn }, /* Avoton AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x1f34),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f35),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f36),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f37),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f3e),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x1f3f),\n+\t .driver_data = board_ahci_avn }, /* Avoton RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x2823),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg/Lewisburg AHCI*/\n+\t{ PCI_VDEVICE(INTEL, 0x2826),\n+\t .driver_data = board_ahci_pcs_quirk }, /* *burg SATA0 'RAID' */\n+\t{ PCI_VDEVICE(INTEL, 0x2827),\n+\t .driver_data = board_ahci_pcs_quirk }, /* *burg SATA1 'RAID' */\n+\t{ PCI_VDEVICE(INTEL, 0x282f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* *burg SATA2 'RAID' */\n+\t{ PCI_VDEVICE(INTEL, 0x43d4),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x43d5),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x43d6),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x43d7),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Rocket Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d02),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8d04),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d06),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d0e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d62),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8d64),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d66),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8d6e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wellsburg RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x23a3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Coleto Creek AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x9c83),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wildcat LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x9c85),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c87),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9c8f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Wildcat LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c82),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8c83),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x8c84),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c85),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c86),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c87),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c8e),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x8c8f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* 9 Series M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9d03),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x9d05),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x9d07),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise LP RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa102),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise Point-H AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0xa103),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise M AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0xa105),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa106),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa107),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise M RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa10f),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Sunrise Point-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa182),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg AHCI*/\n+\t{ PCI_VDEVICE(INTEL, 0xa186),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa1d2),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa1d6),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa202),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg AHCI*/\n+\t{ PCI_VDEVICE(INTEL, 0xa206),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa252),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa256),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Lewisburg RAID*/\n+\t{ PCI_VDEVICE(INTEL, 0xa356),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Cannon Lake PCH-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x06d7),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Comet Lake-H RAID */\n+\t{ PCI_VDEVICE(INTEL, 0xa386),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Comet Lake PCH-V RAID */\n+\t{ PCI_VDEVICE(INTEL, 0x0f22),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Bay Trail AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x0f23),\n+\t .driver_data = board_ahci_pcs_quirk_no_devslp }, /* Bay Trail AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x22a3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Cherry Tr. AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x5ae3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* ApolloLake AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x34d3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Ice Lake LP AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x02d3),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Comet Lake PCH-U AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x02d7),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Comet Lake PCH RAID */\n \t/* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */\n-\t{ PCI_VDEVICE(INTEL, 0x4b63), board_ahci_pcs_quirk }, /* Elkhart Lake AHCI */\n+\t{ PCI_VDEVICE(INTEL, 0x4b63),\n+\t .driver_data = board_ahci_pcs_quirk }, /* Elkhart Lake AHCI */\n \n \t/* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */\n-\t{ PCI_VDEVICE(JMICRON, 0x0582), board_ahci_jmb585 },\n-\t{ PCI_VDEVICE(JMICRON, 0x0585), board_ahci_jmb585 },\n+\t{ PCI_VDEVICE(JMICRON, 0x0582),\n+\t .driver_data = board_ahci_jmb585 },\n+\t{ PCI_VDEVICE(JMICRON, 0x0585),\n+\t .driver_data = board_ahci_jmb585 },\n \n \t/* JMicron 360/1/3/5/6, match class to avoid IDE function */\n-\t{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci_ign_iferr },\n+\t{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID),\n+\t .class = PCI_CLASS_STORAGE_SATA_AHCI,\n+\t .class_mask = 0xffffff,\n+\t .driver_data = board_ahci_ign_iferr },\n \t/* JMicron 362B and 362C have an AHCI function with IDE class code */\n-\t{ PCI_VDEVICE(JMICRON, 0x2362), board_ahci_ign_iferr },\n-\t{ PCI_VDEVICE(JMICRON, 0x236f), board_ahci_ign_iferr },\n+\t{ PCI_VDEVICE(JMICRON, 0x2362),\n+\t .driver_data = board_ahci_ign_iferr },\n+\t{ PCI_VDEVICE(JMICRON, 0x236f),\n+\t .driver_data = board_ahci_ign_iferr },\n \t/* May need to update quirk_jmicron_async_suspend() for additions */\n \n \t/* ATI */\n-\t{ PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */\n-\t{ PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, /* ATI SB700/800 */\n-\t{ PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700 }, /* ATI SB700/800 */\n-\t{ PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700 }, /* ATI SB700/800 */\n-\t{ PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700 }, /* ATI SB700/800 */\n-\t{ PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700 }, /* ATI SB700/800 */\n-\t{ PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4380),\n+\t .driver_data = board_ahci_sb600 }, /* ATI SB600 */\n+\t{ PCI_VDEVICE(ATI, 0x4390),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4391),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4392),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4393),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4394),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n+\t{ PCI_VDEVICE(ATI, 0x4395),\n+\t .driver_data = board_ahci_sb700 }, /* ATI SB700/800 */\n \n \t/* Amazon's Annapurna Labs support */\n \t{ PCI_DEVICE(PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031),\n-\t\t.class = PCI_CLASS_STORAGE_SATA_AHCI,\n-\t\t.class_mask = 0xffffff,\n-\t\tboard_ahci_al },\n+\t .class = PCI_CLASS_STORAGE_SATA_AHCI,\n+\t .class_mask = 0xffffff,\n+\t .driver_data = board_ahci_al },\n \t/* AMD */\n-\t{ PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */\n-\t{ PCI_VDEVICE(AMD, 0x7801), board_ahci_no_debounce_delay }, /* AMD Hudson-2 (AHCI mode) */\n-\t{ PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */\n-\t{ PCI_VDEVICE(AMD, 0x7901), board_ahci }, /* AMD Green Sardine */\n+\t{ PCI_VDEVICE(AMD, 0x7800),\n+\t .driver_data = board_ahci }, /* AMD Hudson-2 */\n+\t{ PCI_VDEVICE(AMD, 0x7801),\n+\t .driver_data = board_ahci_no_debounce_delay }, /* AMD Hudson-2 (AHCI mode) */\n+\t{ PCI_VDEVICE(AMD, 0x7900),\n+\t .driver_data = board_ahci }, /* AMD CZ */\n+\t{ PCI_VDEVICE(AMD, 0x7901),\n+\t .driver_data = board_ahci }, /* AMD Green Sardine */\n \t/* AMD is using RAID class only for ahci controllers */\n-\t{ PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci },\n+\t{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_ANY_ID),\n+\t .class = PCI_CLASS_STORAGE_RAID << 8,\n+\t .class_mask = 0xffffff,\n+\t .driver_data = board_ahci },\n \n \t/* Dell S140/S150 */\n-\t{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_SUBVENDOR_ID_DELL, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci_pcs_quirk },\n+\t{ PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCI_ANY_ID,\n+\t\t\t PCI_SUBVENDOR_ID_DELL, PCI_ANY_ID),\n+\t .class = PCI_CLASS_STORAGE_RAID << 8,\n+\t .class_mask = 0xffffff,\n+\t .driver_data = board_ahci_pcs_quirk },\n \n \t/* VIA */\n-\t{ PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */\n-\t{ PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */\n+\t{ PCI_VDEVICE(VIA, 0x3349),\n+\t .driver_data = board_ahci_vt8251 }, /* VIA VT8251 */\n+\t{ PCI_VDEVICE(VIA, 0x6287),\n+\t .driver_data = board_ahci_vt8251 }, /* VIA VT8251 */\n \n \t/* NVIDIA */\n-\t{ PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65 },\t/* MCP65 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0550), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0551), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0552), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0553), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0554), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0555), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0556), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0557), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0558), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0559), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x055a), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x055b), board_ahci_mcp67 },\t/* MCP67 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0580), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0581), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0582), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0583), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0584), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0585), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0586), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0587), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0588), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0589), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058a), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058b), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058c), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058d), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058e), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x058f), board_ahci_mcp_linux },\t/* Linux ID */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f0), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f1), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f2), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f3), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f4), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f5), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f6), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f7), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f8), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07f9), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07fa), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x07fb), board_ahci_mcp73 },\t/* MCP73 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad0), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad1), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad2), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad3), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad4), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad5), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad6), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad7), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad8), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ad9), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ada), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0adb), board_ahci_mcp77 },\t/* MCP77 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab4), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab5), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab6), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab7), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab8), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0ab9), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0aba), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0abb), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0abc), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0abd), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0abe), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0abf), board_ahci_mcp79 },\t/* MCP79 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d84), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d85), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d86), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d87), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d88), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d89), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8a), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8b), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8c), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8d), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8e), board_ahci_mcp89 },\t/* MCP89 */\n-\t{ PCI_VDEVICE(NVIDIA, 0x0d8f), board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x044c),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x044d),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x044e),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x044f),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x045c),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x045d),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x045e),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x045f),\n+\t .driver_data = board_ahci_mcp65 },\t/* MCP65 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0550),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0551),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0552),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0553),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0554),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0555),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0556),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0557),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0558),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0559),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x055a),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x055b),\n+\t .driver_data = board_ahci_mcp67 },\t/* MCP67 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0580),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0581),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0582),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0583),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0584),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0585),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0586),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0587),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0588),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0589),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058a),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058b),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058c),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058d),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058e),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x058f),\n+\t .driver_data = board_ahci_mcp_linux },\t/* Linux ID */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f0),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f1),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f2),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f3),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f4),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f5),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f6),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f7),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f8),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07f9),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07fa),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x07fb),\n+\t .driver_data = board_ahci_mcp73 },\t/* MCP73 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad0),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad1),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad2),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad3),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad4),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad5),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad6),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad7),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad8),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ad9),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ada),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0adb),\n+\t .driver_data = board_ahci_mcp77 },\t/* MCP77 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab4),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab5),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab6),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab7),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab8),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0ab9),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0aba),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0abb),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0abc),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0abd),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0abe),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0abf),\n+\t .driver_data = board_ahci_mcp79 },\t/* MCP79 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d84),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d85),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d86),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d87),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d88),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d89),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8a),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8b),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8c),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8d),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8e),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n+\t{ PCI_VDEVICE(NVIDIA, 0x0d8f),\n+\t .driver_data = board_ahci_mcp89 },\t/* MCP89 */\n \n \t/* SiS */\n-\t{ PCI_VDEVICE(SI, 0x1184), board_ahci },\t\t/* SiS 966 */\n-\t{ PCI_VDEVICE(SI, 0x1185), board_ahci },\t\t/* SiS 968 */\n-\t{ PCI_VDEVICE(SI, 0x0186), board_ahci },\t\t/* SiS 968 */\n+\t{ PCI_VDEVICE(SI, 0x1184),\n+\t .driver_data = board_ahci },\t\t/* SiS 966 */\n+\t{ PCI_VDEVICE(SI, 0x1185),\n+\t .driver_data = board_ahci },\t\t/* SiS 968 */\n+\t{ PCI_VDEVICE(SI, 0x0186),\n+\t .driver_data = board_ahci },\t\t/* SiS 968 */\n \n \t/* ST Microelectronics */\n-\t{ PCI_VDEVICE(STMICRO, 0xCC06), board_ahci },\t\t/* ST ConneXt */\n+\t{ PCI_VDEVICE(STMICRO, 0xCC06),\n+\t .driver_data = board_ahci },\t\t/* ST ConneXt */\n \n \t/* Marvell */\n-\t{ PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },\t/* 6145 */\n-\t{ PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },\t/* 6121 */\n+\t{ PCI_VDEVICE(MARVELL, 0x6145),\n+\t .driver_data = board_ahci_mv },\t/* 6145 */\n+\t{ PCI_VDEVICE(MARVELL, 0x6121),\n+\t .driver_data = board_ahci_mv },\t/* 6121 */\n \t{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9123),\n \t .class = PCI_CLASS_STORAGE_SATA_AHCI,\n \t .class_mask = 0xffffff,\n@@ -624,39 +906,57 @@ static const struct pci_device_id ahci_pci_tbl[] = {\n \t .driver_data = board_ahci_yes_fbs },\n \n \t/* Promise */\n-\t{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },\t/* PDC42819 */\n-\t{ PCI_VDEVICE(PROMISE, 0x3781), board_ahci }, /* FastTrak TX8660 ahci-mode */\n+\t{ PCI_VDEVICE(PROMISE, 0x3f20),\n+\t .driver_data = board_ahci },\t/* PDC42819 */\n+\t{ PCI_VDEVICE(PROMISE, 0x3781),\n+\t .driver_data = board_ahci }, /* FastTrak TX8660 ahci-mode */\n \n \t/* ASMedia */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci_43bit_dma },\t/* ASM1060 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci_43bit_dma },\t/* ASM1060 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci_43bit_dma },\t/* ASM1061 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci_43bit_dma },\t/* ASM1061/1062 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0621), board_ahci_43bit_dma },\t/* ASM1061R */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0622), board_ahci_43bit_dma },\t/* ASM1062R */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x0624), board_ahci_43bit_dma },\t/* ASM1062+JMB575 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x1062), board_ahci },\t/* ASM1062A */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x1064), board_ahci },\t/* ASM1064 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x1164), board_ahci }, /* ASM1164 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x1165), board_ahci }, /* ASM1165 */\n-\t{ PCI_VDEVICE(ASMEDIA, 0x1166), board_ahci }, /* ASM1166 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0601),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1060 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0602),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1060 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0611),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1061 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0612),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1061/1062 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0621),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1061R */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0622),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1062R */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x0624),\n+\t .driver_data = board_ahci_43bit_dma },\t/* ASM1062+JMB575 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x1062),\n+\t .driver_data = board_ahci },\t/* ASM1062A */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x1064),\n+\t .driver_data = board_ahci },\t/* ASM1064 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x1164),\n+\t .driver_data = board_ahci }, /* ASM1164 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x1165),\n+\t .driver_data = board_ahci }, /* ASM1165 */\n+\t{ PCI_VDEVICE(ASMEDIA, 0x1166),\n+\t .driver_data = board_ahci }, /* ASM1166 */\n \n \t/*\n \t * Samsung SSDs found on some macbooks. NCQ times out if MSI is\n \t * enabled. https://bugzilla.kernel.org/show_bug.cgi?id=60731\n \t */\n-\t{ PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_no_msi },\n-\t{ PCI_VDEVICE(SAMSUNG, 0xa800), board_ahci_no_msi },\n+\t{ PCI_VDEVICE(SAMSUNG, 0x1600),\n+\t .driver_data = board_ahci_no_msi },\n+\t{ PCI_VDEVICE(SAMSUNG, 0xa800),\n+\t .driver_data = board_ahci_no_msi },\n \n \t/* Enmotus */\n-\t{ PCI_DEVICE(0x1c44, 0x8000), board_ahci },\n+\t{ PCI_DEVICE(0x1c44, 0x8000),\n+\t .driver_data = board_ahci },\n \n \t/* Loongson */\n-\t{ PCI_VDEVICE(LOONGSON, 0x7a08), board_ahci },\n+\t{ PCI_VDEVICE(LOONGSON, 0x7a08),\n+\t .driver_data = board_ahci },\n \n \t/* Generic, PCI class code for AHCI */\n-\t{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },\n+\t{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff),\n+\t .driver_data = board_ahci },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c\nindex 495fa096dd65..fac1266f7fa6 100644\n--- a/drivers/ata/ata_piix.c\n+++ b/drivers/ata/ata_piix.c\n@@ -154,184 +154,186 @@ static unsigned int in_module_init = 1;\n \n static const struct pci_device_id piix_pci_tbl[] = {\n \t/* Intel PIIX3 for the 430HX etc */\n-\t{ 0x8086, 0x7010, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_mwdma },\n+\t{ PCI_DEVICE(0x8086, 0x7010), .driver_data = piix_pata_mwdma },\n \t/* VMware ICH4 */\n-\t{ 0x8086, 0x7111, 0x15ad, 0x1976, 0, 0, piix_pata_vmw },\n+\t{ PCI_DEVICE_SUB(0x8086, 0x7111, 0x15ad, 0x1976), .driver_data = piix_pata_vmw },\n \t/* Intel PIIX4 for the 430TX/440BX/MX chipset: UDMA 33 */\n \t/* Also PIIX4E (fn3 rev 2) and PIIX4M (fn3 rev 3) */\n-\t{ 0x8086, 0x7111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },\n+\t{ PCI_DEVICE(0x8086, 0x7111), .driver_data = piix_pata_33 },\n \t/* Intel PIIX4 */\n-\t{ 0x8086, 0x7199, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },\n+\t{ PCI_DEVICE(0x8086, 0x7199), .driver_data = piix_pata_33 },\n \t/* Intel PIIX4 */\n-\t{ 0x8086, 0x7601, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },\n+\t{ PCI_DEVICE(0x8086, 0x7601), .driver_data = piix_pata_33 },\n \t/* Intel PIIX */\n-\t{ 0x8086, 0x84CA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },\n+\t{ PCI_DEVICE(0x8086, 0x84CA), .driver_data = piix_pata_33 },\n \t/* Intel ICH (i810, i815, i840) UDMA 66*/\n-\t{ 0x8086, 0x2411, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_66 },\n+\t{ PCI_DEVICE(0x8086, 0x2411), .driver_data = ich_pata_66 },\n \t/* Intel ICH0 : UDMA 33*/\n-\t{ 0x8086, 0x2421, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_33 },\n+\t{ PCI_DEVICE(0x8086, 0x2421), .driver_data = ich_pata_33 },\n \t/* Intel ICH2M */\n-\t{ 0x8086, 0x244A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x244A), .driver_data = ich_pata_100 },\n \t/* Intel ICH2 (i810E2, i845, 850, 860) UDMA 100 */\n-\t{ 0x8086, 0x244B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x244B), .driver_data = ich_pata_100 },\n \t/* Intel ICH3M */\n-\t{ 0x8086, 0x248A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x248A), .driver_data = ich_pata_100 },\n \t/* Intel ICH3 (E7500/1) UDMA 100 */\n-\t{ 0x8086, 0x248B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x248B), .driver_data = ich_pata_100 },\n \t/* Intel ICH4-L */\n-\t{ 0x8086, 0x24C1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x24C1), .driver_data = ich_pata_100 },\n \t/* Intel ICH4 (i845GV, i845E, i852, i855) UDMA 100 */\n-\t{ 0x8086, 0x24CA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n-\t{ 0x8086, 0x24CB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x24CA), .driver_data = ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x24CB), .driver_data = ich_pata_100 },\n \t/* Intel ICH5 */\n-\t{ 0x8086, 0x24DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x24DB), .driver_data = ich_pata_100 },\n \t/* C-ICH (i810E2) */\n-\t{ 0x8086, 0x245B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x245B), .driver_data = ich_pata_100 },\n \t/* ESB (855GME/875P + 6300ESB) UDMA 100 */\n-\t{ 0x8086, 0x25A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x25A2), .driver_data = ich_pata_100 },\n \t/* ICH6 (and 6) (i915) UDMA 100 */\n-\t{ 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x266F), .driver_data = ich_pata_100 },\n \t/* ICH7/7-R (i945, i975) UDMA 100*/\n-\t{ 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },\n-\t{ 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },\n+\t{ PCI_DEVICE(0x8086, 0x27DF), .driver_data = ich_pata_100_nomwdma1 },\n+\t{ PCI_DEVICE(0x8086, 0x269E), .driver_data = ich_pata_100_nomwdma1 },\n \t/* ICH8 Mobile PATA Controller */\n-\t{ 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },\n+\t{ PCI_DEVICE(0x8086, 0x2850), .driver_data = ich_pata_100 },\n \n \t/* SATA ports */\n \n \t/* 82801EB (ICH5) */\n-\t{ 0x8086, 0x24d1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },\n+\t{ PCI_DEVICE(0x8086, 0x24d1), .driver_data = ich5_sata },\n \t/* 82801EB (ICH5) */\n-\t{ 0x8086, 0x24df, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },\n+\t{ PCI_DEVICE(0x8086, 0x24df), .driver_data = ich5_sata },\n \t/* 6300ESB (ICH5 variant with broken PCS present bits) */\n-\t{ 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },\n+\t{ PCI_DEVICE(0x8086, 0x25a3), .driver_data = ich5_sata },\n \t/* 6300ESB pretending RAID */\n-\t{ 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata },\n+\t{ PCI_DEVICE(0x8086, 0x25b0), .driver_data = ich5_sata },\n \t/* 82801FB/FW (ICH6/ICH6W) */\n-\t{ 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2651), .driver_data = ich6_sata },\n \t/* 82801FR/FRW (ICH6R/ICH6RW) */\n-\t{ 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2652), .driver_data = ich6_sata },\n \t/* 82801FBM ICH6M (ICH6R with only port 0 and 2 implemented).\n \t * Attach iff the controller is in IDE mode. */\n-\t{ 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_IDE << 8, 0xffff00, ich6m_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2653),\n+\t .class = PCI_CLASS_STORAGE_IDE << 8,\n+\t .class_mask = 0xffff00,\n+\t .driver_data = ich6m_sata },\n \t/* 82801GB/GR/GH (ICH7, identical to ICH6) */\n-\t{ 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },\n+\t{ PCI_DEVICE(0x8086, 0x27c0), .driver_data = ich6_sata },\n \t/* 82801GBM/GHM (ICH7M, identical to ICH6M) */\n-\t{ 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6m_sata },\n+\t{ PCI_DEVICE(0x8086, 0x27c4), .driver_data = ich6m_sata },\n \t/* Enterprise Southbridge 2 (631xESB/632xESB) */\n-\t{ 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2680), .driver_data = ich6_sata },\n \t/* SATA Controller 1 IDE (ICH8) */\n-\t{ 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2820), .driver_data = ich8_sata },\n \t/* SATA Controller 2 IDE (ICH8) */\n-\t{ 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2825), .driver_data = ich8_2port_sata },\n \t/* Mobile SATA Controller IDE (ICH8M), Apple */\n-\t{ 0x8086, 0x2828, 0x106b, 0x00a0, 0, 0, ich8m_apple_sata },\n-\t{ 0x8086, 0x2828, 0x106b, 0x00a1, 0, 0, ich8m_apple_sata },\n-\t{ 0x8086, 0x2828, 0x106b, 0x00a3, 0, 0, ich8m_apple_sata },\n+\t{ PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a0), .driver_data = ich8m_apple_sata },\n+\t{ PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a1), .driver_data = ich8m_apple_sata },\n+\t{ PCI_DEVICE_SUB(0x8086, 0x2828, 0x106b, 0x00a3), .driver_data = ich8m_apple_sata },\n \t/* Mobile SATA Controller IDE (ICH8M) */\n-\t{ 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2828), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (ICH9) */\n-\t{ 0x8086, 0x2920, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2920), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (ICH9) */\n-\t{ 0x8086, 0x2921, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2921), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (ICH9) */\n-\t{ 0x8086, 0x2926, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2926), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (ICH9M) */\n-\t{ 0x8086, 0x2928, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2928), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (ICH9M) */\n-\t{ 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x292d), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (ICH9M) */\n-\t{ 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x292e), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (Tolapai) */\n-\t{ 0x8086, 0x5028, PCI_ANY_ID, PCI_ANY_ID, 0, 0, tolapai_sata },\n+\t{ PCI_DEVICE(0x8086, 0x5028), .driver_data = tolapai_sata },\n \t/* SATA Controller IDE (ICH10) */\n-\t{ 0x8086, 0x3a00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3a00), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (ICH10) */\n-\t{ 0x8086, 0x3a06, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3a06), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (ICH10) */\n-\t{ 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3a20), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (ICH10) */\n-\t{ 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3a26), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b20), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b21), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b26), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b28, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b28), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b2d), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (PCH) */\n-\t{ 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },\n+\t{ PCI_DEVICE(0x8086, 0x3b2e), .driver_data = ich8_sata },\n \t/* SATA Controller IDE (CPT) */\n-\t{ 0x8086, 0x1c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1c00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (CPT) */\n-\t{ 0x8086, 0x1c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1c01), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (CPT) */\n-\t{ 0x8086, 0x1c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1c08), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (CPT) */\n-\t{ 0x8086, 0x1c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1c09), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (PBG) */\n-\t{ 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1d00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (PBG) */\n-\t{ 0x8086, 0x1d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1d08), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Panther Point) */\n-\t{ 0x8086, 0x1e00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1e00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Panther Point) */\n-\t{ 0x8086, 0x1e01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1e01), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Panther Point) */\n-\t{ 0x8086, 0x1e08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1e08), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Panther Point) */\n-\t{ 0x8086, 0x1e09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1e09), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Lynx Point) */\n-\t{ 0x8086, 0x8c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Lynx Point) */\n-\t{ 0x8086, 0x8c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c01), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Lynx Point) */\n-\t{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c08), .driver_data = ich8_2port_sata_snb },\n \t/* SATA Controller IDE (Lynx Point) */\n-\t{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x8c09), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Lynx Point-LP) */\n-\t{ 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x9c00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Lynx Point-LP) */\n-\t{ 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x9c01), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Lynx Point-LP) */\n-\t{ 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x9c08), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Lynx Point-LP) */\n-\t{ 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x9c09), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (DH89xxCC) */\n-\t{ 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x2326), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Avoton) */\n-\t{ 0x8086, 0x1f20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1f20), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Avoton) */\n-\t{ 0x8086, 0x1f21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x1f21), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Avoton) */\n-\t{ 0x8086, 0x1f30, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1f30), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Avoton) */\n-\t{ 0x8086, 0x1f31, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x1f31), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (Wellsburg) */\n-\t{ 0x8086, 0x8d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8d00), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Wellsburg) */\n-\t{ 0x8086, 0x8d08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8d08), .driver_data = ich8_2port_sata_snb },\n \t/* SATA Controller IDE (Wellsburg) */\n-\t{ 0x8086, 0x8d60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8d60), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (Wellsburg) */\n-\t{ 0x8086, 0x8d68, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x8d68), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (BayTrail) */\n-\t{ 0x8086, 0x0F20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },\n-\t{ 0x8086, 0x0F21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },\n+\t{ PCI_DEVICE(0x8086, 0x0F20), .driver_data = ich8_2port_sata_byt },\n+\t{ PCI_DEVICE(0x8086, 0x0F21), .driver_data = ich8_2port_sata_byt },\n \t/* SATA Controller IDE (Coleto Creek) */\n-\t{ 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },\n+\t{ PCI_DEVICE(0x8086, 0x23a6), .driver_data = ich8_2port_sata },\n \t/* SATA Controller IDE (9 Series) */\n-\t{ 0x8086, 0x8c88, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c88), .driver_data = ich8_2port_sata_snb },\n \t/* SATA Controller IDE (9 Series) */\n-\t{ 0x8086, 0x8c89, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c89), .driver_data = ich8_2port_sata_snb },\n \t/* SATA Controller IDE (9 Series) */\n-\t{ 0x8086, 0x8c80, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c80), .driver_data = ich8_sata_snb },\n \t/* SATA Controller IDE (9 Series) */\n-\t{ 0x8086, 0x8c81, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },\n+\t{ PCI_DEVICE(0x8086, 0x8c81), .driver_data = ich8_sata_snb },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c\nindex 23fff10af2ac..a4f0f81844a1 100644\n--- a/drivers/ata/pata_acpi.c\n+++ b/drivers/ata/pata_acpi.c\n@@ -257,7 +257,10 @@ static int pacpi_init_one (struct pci_dev *pdev, const struct pci_device_id *id)\n }\n \n static const struct pci_device_id pacpi_pci_tbl[] = {\n-\t{ PCI_ANY_ID,\t\tPCI_ANY_ID,\t\t\t PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 1},\n+\t{\n+\t\tPCI_DEVICE_CLASS(PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL),\n+\t\t.driver_data = 1, /* is this used at all? */\n+\t},\n \t{ }\t/* terminate list */\n };\n \ndiff --git a/drivers/ata/pata_amd.c b/drivers/ata/pata_amd.c\nindex a2fecadc927d..b8ae3eb0992b 100644\n--- a/drivers/ata/pata_amd.c\n+++ b/drivers/ata/pata_amd.c\n@@ -597,27 +597,27 @@ static int amd_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id amd[] = {\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_COBRA_7401),\t\t0 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_VIPER_7409),\t\t1 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_VIPER_7411),\t\t3 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_OPUS_7441),\t\t4 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_8111_IDE),\t\t5 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_IDE),\t7 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE2_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE3_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE),\t8 },\n-\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE),\t8 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_CS5536_IDE),\t\t9 },\n-\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_CS5536_DEV_IDE),\t9 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_COBRA_7401),\t\t.driver_data = 0 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_VIPER_7409),\t\t.driver_data = 1 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_VIPER_7411),\t\t.driver_data = 3 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_OPUS_7441),\t\t.driver_data = 4 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_8111_IDE),\t\t.driver_data = 5 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_IDE),\t.driver_data = 7 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE2_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE3_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(NVIDIA,\tPCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE),\t.driver_data = 8 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_CS5536_IDE),\t\t.driver_data = 9 },\n+\t{ PCI_VDEVICE(AMD,\tPCI_DEVICE_ID_AMD_CS5536_DEV_IDE),\t.driver_data = 9 },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c\nindex 6160414172a3..989c9a84da43 100644\n--- a/drivers/ata/pata_artop.c\n+++ b/drivers/ata/pata_artop.c\n@@ -421,11 +421,11 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id)\n }\n \n static const struct pci_device_id artop_pci_tbl[] = {\n-\t{ PCI_VDEVICE(ARTOP, 0x0005), 0 },\n-\t{ PCI_VDEVICE(ARTOP, 0x0006), 1 },\n-\t{ PCI_VDEVICE(ARTOP, 0x0007), 1 },\n-\t{ PCI_VDEVICE(ARTOP, 0x0008), 2 },\n-\t{ PCI_VDEVICE(ARTOP, 0x0009), 2 },\n+\t{ PCI_VDEVICE(ARTOP, 0x0005), .driver_data = 0 },\n+\t{ PCI_VDEVICE(ARTOP, 0x0006), .driver_data = 1 },\n+\t{ PCI_VDEVICE(ARTOP, 0x0007), .driver_data = 1 },\n+\t{ PCI_VDEVICE(ARTOP, 0x0008), .driver_data = 2 },\n+\t{ PCI_VDEVICE(ARTOP, 0x0009), .driver_data = 2 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/pata_atp867x.c b/drivers/ata/pata_atp867x.c\nindex 308f86f9e2f0..f3c79037cc33 100644\n--- a/drivers/ata/pata_atp867x.c\n+++ b/drivers/ata/pata_atp867x.c\n@@ -526,8 +526,8 @@ static int atp867x_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id atp867x_pci_tbl[] = {\n-\t{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867A),\t0 },\n-\t{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867B),\t0 },\n+\t{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867A) },\n+\t{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867B) },\n \t{ },\n };\n \ndiff --git a/drivers/ata/pata_cmd640.c b/drivers/ata/pata_cmd640.c\nindex 45a7217b136e..78bfded51d3e 100644\n--- a/drivers/ata/pata_cmd640.c\n+++ b/drivers/ata/pata_cmd640.c\n@@ -248,7 +248,7 @@ static int cmd640_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id cmd640[] = {\n-\t{ PCI_VDEVICE(CMD, 0x640), 0 },\n+\t{ PCI_VDEVICE(CMD, 0x0640) },\n \t{ },\n };\n \ndiff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c\nindex fafea2b79145..ec9203ebdd2e 100644\n--- a/drivers/ata/pata_cmd64x.c\n+++ b/drivers/ata/pata_cmd64x.c\n@@ -506,10 +506,10 @@ static int cmd64x_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id cmd64x[] = {\n-\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_643), 0 },\n-\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_646), 1 },\n-\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_648), 5 },\n-\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_649), 6 },\n+\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_643), .driver_data = 0 },\n+\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_646), .driver_data = 1 },\n+\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_648), .driver_data = 5 },\n+\t{ PCI_VDEVICE(CMD, PCI_DEVICE_ID_CMD_649), .driver_data = 6 },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pata_jmicron.c b/drivers/ata/pata_jmicron.c\nindex b885f33e8980..d18286cbca1b 100644\n--- a/drivers/ata/pata_jmicron.c\n+++ b/drivers/ata/pata_jmicron.c\n@@ -148,8 +148,11 @@ static int jmicron_init_one (struct pci_dev *pdev, const struct pci_device_id *i\n }\n \n static const struct pci_device_id jmicron_pci_tbl[] = {\n-\t{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,\n-\t PCI_CLASS_STORAGE_IDE << 8, 0xffff00, 0 },\n+\t{\n+\t\tPCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID),\n+\t\t.class = PCI_CLASS_STORAGE_IDE << 8,\n+\t\t.class_mask = 0xffff00\n+\t},\n \t{ }\t/* terminate list */\n };\n \ndiff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c\nindex 9eefdc5df5df..88bbba3c6230 100644\n--- a/drivers/ata/pata_macio.c\n+++ b/drivers/ata/pata_macio.c\n@@ -1368,12 +1368,12 @@ static struct macio_driver pata_macio_driver =\n };\n \n static const struct pci_device_id pata_macio_pci_match[] = {\n-\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA),\t0 },\n-\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100),\t0 },\n-\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100),\t0 },\n-\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_SH_ATA),\t0 },\n-\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID2_ATA),\t0 },\n-\t{},\n+\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA) },\n+\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100) },\n+\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100) },\n+\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_SH_ATA) },\n+\t{ PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID2_ATA) },\n+\t{ },\n };\n \n static struct pci_driver pata_macio_pci_driver = {\ndiff --git a/drivers/ata/pata_ninja32.c b/drivers/ata/pata_ninja32.c\nindex 76a91013d27d..4eaacd958612 100644\n--- a/drivers/ata/pata_ninja32.c\n+++ b/drivers/ata/pata_ninja32.c\n@@ -166,12 +166,12 @@ static int ninja32_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id ninja32[] = {\n-\t{ 0x10FC, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n-\t{ 0x1145, 0x8008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n-\t{ 0x1145, 0xf008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n-\t{ 0x1145, 0xf021, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n-\t{ 0x1145, 0xf024, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n-\t{ 0x1145, 0xf02C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },\n+\t{ PCI_DEVICE(0x10FC, 0x0003) },\n+\t{ PCI_DEVICE(0x1145, 0x8008) },\n+\t{ PCI_DEVICE(0x1145, 0xf008) },\n+\t{ PCI_DEVICE(0x1145, 0xf021) },\n+\t{ PCI_DEVICE(0x1145, 0xf024) },\n+\t{ PCI_DEVICE(0x1145, 0xf02C) },\n \t{ },\n };\n \ndiff --git a/drivers/ata/pata_opti.c b/drivers/ata/pata_opti.c\nindex 3db1b95d1404..d1a002e0a229 100644\n--- a/drivers/ata/pata_opti.c\n+++ b/drivers/ata/pata_opti.c\n@@ -174,8 +174,8 @@ static int opti_init_one(struct pci_dev *dev, const struct pci_device_id *id)\n }\n \n static const struct pci_device_id opti[] = {\n-\t{ PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), 0 },\n-\t{ PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 1 },\n+\t{ PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), .driver_data = 0 },\n+\t{ PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), .driver_data = 1 },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c\nindex ae914dcb0c83..d0af901bc2b6 100644\n--- a/drivers/ata/pata_pdc2027x.c\n+++ b/drivers/ata/pata_pdc2027x.c\n@@ -100,13 +100,13 @@ static const struct pdc2027x_udma_timing {\n };\n \n static const struct pci_device_id pdc2027x_pci_tbl[] = {\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20268), PDC_UDMA_100 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20269), PDC_UDMA_133 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20270), PDC_UDMA_100 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20271), PDC_UDMA_133 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20275), PDC_UDMA_133 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20276), PDC_UDMA_133 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20277), PDC_UDMA_133 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20268), .driver_data = PDC_UDMA_100 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20269), .driver_data = PDC_UDMA_133 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20270), .driver_data = PDC_UDMA_100 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20271), .driver_data = PDC_UDMA_133 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20275), .driver_data = PDC_UDMA_133 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20276), .driver_data = PDC_UDMA_133 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20277), .driver_data = PDC_UDMA_133 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c\nindex a32723e46357..6d206593bad1 100644\n--- a/drivers/ata/pata_pdc202xx_old.c\n+++ b/drivers/ata/pata_pdc202xx_old.c\n@@ -362,11 +362,11 @@ static int pdc202xx_init_one(struct pci_dev *dev, const struct pci_device_id *id\n }\n \n static const struct pci_device_id pdc202xx[] = {\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20246), 0 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20262), 1 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20263), 1 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20265), 2 },\n-\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20267), 2 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20246), .driver_data = 0 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20262), .driver_data = 1 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20263), .driver_data = 1 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20265), .driver_data = 2 },\n+\t{ PCI_VDEVICE(PROMISE, PCI_DEVICE_ID_PROMISE_20267), .driver_data = 2 },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pata_sch.c b/drivers/ata/pata_sch.c\nindex 8356f1f2a025..fadb5377371b 100644\n--- a/drivers/ata/pata_sch.c\n+++ b/drivers/ata/pata_sch.c\n@@ -42,7 +42,7 @@ static void sch_set_dmamode(struct ata_port *ap, struct ata_device *adev);\n \n static const struct pci_device_id sch_pci_tbl[] = {\n \t/* Intel SCH PATA Controller */\n-\t{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_SCH_IDE), 0 },\n+\t{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_SCH_IDE) },\n \t{ }\t/* terminate list */\n };\n \ndiff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c\nindex 4edddf6bcc15..cbac034fee58 100644\n--- a/drivers/ata/pata_serverworks.c\n+++ b/drivers/ata/pata_serverworks.c\n@@ -467,11 +467,11 @@ static int serverworks_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id serverworks[] = {\n-\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE), 0},\n-\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE), 2},\n-\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE), 2},\n-\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2), 2},\n-\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE), 2},\n+\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE), .driver_data = 0 },\n+\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE), .driver_data = 2 },\n+\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE), .driver_data = 2 },\n+\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2), .driver_data = 2 },\n+\t{ PCI_VDEVICE(SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000IDE), .driver_data = 2 },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c\nindex a8c9cf685b4b..9309f5796633 100644\n--- a/drivers/ata/pata_via.c\n+++ b/drivers/ata/pata_via.c\n@@ -675,14 +675,14 @@ static int via_reinit_one(struct pci_dev *pdev)\n #endif\n \n static const struct pci_device_id via[] = {\n-\t{ PCI_VDEVICE(VIA, 0x0415), },\n-\t{ PCI_VDEVICE(VIA, 0x0571), },\n-\t{ PCI_VDEVICE(VIA, 0x0581), },\n-\t{ PCI_VDEVICE(VIA, 0x1571), },\n-\t{ PCI_VDEVICE(VIA, 0x3164), },\n-\t{ PCI_VDEVICE(VIA, 0x5324), },\n-\t{ PCI_VDEVICE(VIA, 0xC409), VIA_IDFLAG_SINGLE },\n-\t{ PCI_VDEVICE(VIA, 0x9001), VIA_IDFLAG_SINGLE },\n+\t{ PCI_VDEVICE(VIA, 0x0415), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0x0571), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0x0581), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0x1571), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0x3164), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0x5324), .driver_data = 0 },\n+\t{ PCI_VDEVICE(VIA, 0xC409), .driver_data = VIA_IDFLAG_SINGLE },\n+\t{ PCI_VDEVICE(VIA, 0x9001), .driver_data = VIA_IDFLAG_SINGLE },\n \n \t{ },\n };\ndiff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c\nindex 17a5a59861c3..be61351716e0 100644\n--- a/drivers/ata/pdc_adma.c\n+++ b/drivers/ata/pdc_adma.c\n@@ -157,7 +157,7 @@ static struct ata_port_info adma_port_info[] = {\n };\n \n static const struct pci_device_id adma_ata_pci_tbl[] = {\n-\t{ PCI_VDEVICE(PDC, 0x1841), board_1841_idx },\n+\t{ PCI_VDEVICE(PDC, 0x1841), .driver_data = board_1841_idx },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c\nindex ffb396f61731..c32582559b11 100644\n--- a/drivers/ata/sata_mv.c\n+++ b/drivers/ata/sata_mv.c\n@@ -4273,32 +4273,32 @@ static int mv_pci_device_resume(struct pci_dev *pdev);\n #endif\n \n static const struct pci_device_id mv_pci_tbl[] = {\n-\t{ PCI_VDEVICE(MARVELL, 0x5040), chip_504x },\n-\t{ PCI_VDEVICE(MARVELL, 0x5041), chip_504x },\n-\t{ PCI_VDEVICE(MARVELL, 0x5080), chip_5080 },\n-\t{ PCI_VDEVICE(MARVELL, 0x5081), chip_508x },\n+\t{ PCI_VDEVICE(MARVELL, 0x5040), .driver_data = chip_504x },\n+\t{ PCI_VDEVICE(MARVELL, 0x5041), .driver_data = chip_504x },\n+\t{ PCI_VDEVICE(MARVELL, 0x5080), .driver_data = chip_5080 },\n+\t{ PCI_VDEVICE(MARVELL, 0x5081), .driver_data = chip_508x },\n \t/* RocketRAID 1720/174x have different identifiers */\n-\t{ PCI_VDEVICE(TTI, 0x1720), chip_6042 },\n-\t{ PCI_VDEVICE(TTI, 0x1740), chip_6042 },\n-\t{ PCI_VDEVICE(TTI, 0x1742), chip_6042 },\n+\t{ PCI_VDEVICE(TTI, 0x1720), .driver_data = chip_6042 },\n+\t{ PCI_VDEVICE(TTI, 0x1740), .driver_data = chip_6042 },\n+\t{ PCI_VDEVICE(TTI, 0x1742), .driver_data = chip_6042 },\n \n-\t{ PCI_VDEVICE(MARVELL, 0x6040), chip_604x },\n-\t{ PCI_VDEVICE(MARVELL, 0x6041), chip_604x },\n-\t{ PCI_VDEVICE(MARVELL, 0x6042), chip_6042 },\n-\t{ PCI_VDEVICE(MARVELL, 0x6080), chip_608x },\n-\t{ PCI_VDEVICE(MARVELL, 0x6081), chip_608x },\n+\t{ PCI_VDEVICE(MARVELL, 0x6040), .driver_data = chip_604x },\n+\t{ PCI_VDEVICE(MARVELL, 0x6041), .driver_data = chip_604x },\n+\t{ PCI_VDEVICE(MARVELL, 0x6042), .driver_data = chip_6042 },\n+\t{ PCI_VDEVICE(MARVELL, 0x6080), .driver_data = chip_608x },\n+\t{ PCI_VDEVICE(MARVELL, 0x6081), .driver_data = chip_608x },\n \n-\t{ PCI_VDEVICE(ADAPTEC2, 0x0241), chip_604x },\n+\t{ PCI_VDEVICE(ADAPTEC2, 0x0241), .driver_data = chip_604x },\n \n \t/* Adaptec 1430SA */\n-\t{ PCI_VDEVICE(ADAPTEC2, 0x0243), chip_7042 },\n+\t{ PCI_VDEVICE(ADAPTEC2, 0x0243), .driver_data = chip_7042 },\n \n \t/* Marvell 7042 support */\n-\t{ PCI_VDEVICE(MARVELL, 0x7042), chip_7042 },\n+\t{ PCI_VDEVICE(MARVELL, 0x7042), .driver_data = chip_7042 },\n \n \t/* Highpoint RocketRAID PCIe series */\n-\t{ PCI_VDEVICE(TTI, 0x2300), chip_7042 },\n-\t{ PCI_VDEVICE(TTI, 0x2310), chip_7042 },\n+\t{ PCI_VDEVICE(TTI, 0x2300), .driver_data = chip_7042 },\n+\t{ PCI_VDEVICE(TTI, 0x2310), .driver_data = chip_7042 },\n \n \t{ }\t\t\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c\nindex 841e7de2bba6..74b3b90f7d0f 100644\n--- a/drivers/ata/sata_nv.c\n+++ b/drivers/ata/sata_nv.c\n@@ -344,20 +344,20 @@ enum nv_host_type\n };\n \n static const struct pci_device_id nv_pci_tbl[] = {\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA), NFORCE2 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA), NFORCE3 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2), NFORCE3 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA), CK804 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2), CK804 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA), CK804 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2), CK804 },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), MCP5x },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), MCP5x },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), MCP5x },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), MCP5x },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC },\n-\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA), .driver_data = NFORCE2 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA), .driver_data = NFORCE3 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2), .driver_data = NFORCE3 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA), .driver_data = CK804 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2), .driver_data = CK804 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA), .driver_data = CK804 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2), .driver_data = CK804 },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), .driver_data = MCP5x },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), .driver_data = MCP5x },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), .driver_data = MCP5x },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), .driver_data = MCP5x },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), .driver_data = GENERIC },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), .driver_data = GENERIC },\n+\t{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), .driver_data = GENERIC },\n \n \t{ } /* terminate list */\n };\ndiff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c\nindex 2a005aede123..6b984f531371 100644\n--- a/drivers/ata/sata_promise.c\n+++ b/drivers/ata/sata_promise.c\n@@ -281,25 +281,25 @@ static const struct ata_port_info pdc_port_info[] = {\n };\n \n static const struct pci_device_id pdc_ata_pci_tbl[] = {\n-\t{ PCI_VDEVICE(PROMISE, 0x3371), board_2037x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3373), board_2037x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3375), board_2037x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3376), board_2037x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3570), board_2057x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3571), board_2057x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3574), board_2057x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3577), board_2057x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3d73), board_2057x },\n-\t{ PCI_VDEVICE(PROMISE, 0x3d75), board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3371), .driver_data = board_2037x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3373), .driver_data = board_2037x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3375), .driver_data = board_2037x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3376), .driver_data = board_2037x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3570), .driver_data = board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3571), .driver_data = board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3574), .driver_data = board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3577), .driver_data = board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3d73), .driver_data = board_2057x },\n+\t{ PCI_VDEVICE(PROMISE, 0x3d75), .driver_data = board_2057x },\n \n-\t{ PCI_VDEVICE(PROMISE, 0x3318), board_20319 },\n-\t{ PCI_VDEVICE(PROMISE, 0x3319), board_20319 },\n-\t{ PCI_VDEVICE(PROMISE, 0x3515), board_40518 },\n-\t{ PCI_VDEVICE(PROMISE, 0x3519), board_40518 },\n-\t{ PCI_VDEVICE(PROMISE, 0x3d17), board_40518 },\n-\t{ PCI_VDEVICE(PROMISE, 0x3d18), board_40518 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3318), .driver_data = board_20319 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3319), .driver_data = board_20319 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3515), .driver_data = board_40518 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3519), .driver_data = board_40518 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3d17), .driver_data = board_40518 },\n+\t{ PCI_VDEVICE(PROMISE, 0x3d18), .driver_data = board_40518 },\n \n-\t{ PCI_VDEVICE(PROMISE, 0x6629), board_20619 },\n+\t{ PCI_VDEVICE(PROMISE, 0x6629), .driver_data = board_20619 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c\nindex cfb9b5b61cd7..c568bd845a25 100644\n--- a/drivers/ata/sata_qstor.c\n+++ b/drivers/ata/sata_qstor.c\n@@ -146,7 +146,7 @@ static const struct ata_port_info qs_port_info[] = {\n };\n \n static const struct pci_device_id qs_ata_pci_tbl[] = {\n-\t{ PCI_VDEVICE(PDC, 0x2068), board_2068_idx },\n+\t{ PCI_VDEVICE(PDC, 0x2068), .driver_data = board_2068_idx },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c\nindex 1b6dc950a42a..e2f3f1281415 100644\n--- a/drivers/ata/sata_sil.c\n+++ b/drivers/ata/sata_sil.c\n@@ -112,13 +112,13 @@ static void sil_thaw(struct ata_port *ap);\n \n \n static const struct pci_device_id sil_pci_tbl[] = {\n-\t{ PCI_VDEVICE(CMD, 0x3112), sil_3112 },\n-\t{ PCI_VDEVICE(CMD, 0x0240), sil_3112 },\n-\t{ PCI_VDEVICE(CMD, 0x3512), sil_3512 },\n-\t{ PCI_VDEVICE(CMD, 0x3114), sil_3114 },\n-\t{ PCI_VDEVICE(ATI, 0x436e), sil_3112 },\n-\t{ PCI_VDEVICE(ATI, 0x4379), sil_3112_no_sata_irq },\n-\t{ PCI_VDEVICE(ATI, 0x437a), sil_3112_no_sata_irq },\n+\t{ PCI_VDEVICE(CMD, 0x3112), .driver_data = sil_3112 },\n+\t{ PCI_VDEVICE(CMD, 0x0240), .driver_data = sil_3112 },\n+\t{ PCI_VDEVICE(CMD, 0x3512), .driver_data = sil_3512 },\n+\t{ PCI_VDEVICE(CMD, 0x3114), .driver_data = sil_3114 },\n+\t{ PCI_VDEVICE(ATI, 0x436e), .driver_data = sil_3112 },\n+\t{ PCI_VDEVICE(ATI, 0x4379), .driver_data = sil_3112_no_sata_irq },\n+\t{ PCI_VDEVICE(ATI, 0x437a), .driver_data = sil_3112_no_sata_irq },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c\nindex d642ece9f07a..366ab45d3828 100644\n--- a/drivers/ata/sata_sil24.c\n+++ b/drivers/ata/sata_sil24.c\n@@ -351,13 +351,13 @@ static int sil24_port_resume(struct ata_port *ap);\n #endif\n \n static const struct pci_device_id sil24_pci_tbl[] = {\n-\t{ PCI_VDEVICE(CMD, 0x3124), BID_SIL3124 },\n-\t{ PCI_VDEVICE(INTEL, 0x3124), BID_SIL3124 },\n-\t{ PCI_VDEVICE(CMD, 0x3132), BID_SIL3132 },\n-\t{ PCI_VDEVICE(CMD, 0x0242), BID_SIL3132 },\n-\t{ PCI_VDEVICE(CMD, 0x0244), BID_SIL3132 },\n-\t{ PCI_VDEVICE(CMD, 0x3131), BID_SIL3131 },\n-\t{ PCI_VDEVICE(CMD, 0x3531), BID_SIL3131 },\n+\t{ PCI_VDEVICE(CMD, 0x3124), .driver_data = BID_SIL3124 },\n+\t{ PCI_VDEVICE(INTEL, 0x3124), .driver_data = BID_SIL3124 },\n+\t{ PCI_VDEVICE(CMD, 0x3132), .driver_data = BID_SIL3132 },\n+\t{ PCI_VDEVICE(CMD, 0x0242), .driver_data = BID_SIL3132 },\n+\t{ PCI_VDEVICE(CMD, 0x0244), .driver_data = BID_SIL3132 },\n+\t{ PCI_VDEVICE(CMD, 0x3131), .driver_data = BID_SIL3131 },\n+\t{ PCI_VDEVICE(CMD, 0x3531), .driver_data = BID_SIL3131 },\n \n \t{ } /* terminate list */\n };\ndiff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c\nindex b8b6d9eff3b8..e0c5597e5509 100644\n--- a/drivers/ata/sata_sis.c\n+++ b/drivers/ata/sata_sis.c\n@@ -51,12 +51,12 @@ static int sis_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);\n static int sis_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);\n \n static const struct pci_device_id sis_pci_tbl[] = {\n-\t{ PCI_VDEVICE(SI, 0x0180), sis_180 },\t/* SiS 964/180 */\n-\t{ PCI_VDEVICE(SI, 0x0181), sis_180 },\t/* SiS 964/180 */\n-\t{ PCI_VDEVICE(SI, 0x0182), sis_180 },\t/* SiS 965/965L */\n-\t{ PCI_VDEVICE(SI, 0x0183), sis_180 },\t/* SiS 965/965L */\n-\t{ PCI_VDEVICE(SI, 0x1182), sis_180 },\t/* SiS 966/680 */\n-\t{ PCI_VDEVICE(SI, 0x1183), sis_180 },\t/* SiS 966/966L/968/680 */\n+\t{ PCI_VDEVICE(SI, 0x0180), .driver_data = sis_180 },\t/* SiS 964/180 */\n+\t{ PCI_VDEVICE(SI, 0x0181), .driver_data = sis_180 },\t/* SiS 964/180 */\n+\t{ PCI_VDEVICE(SI, 0x0182), .driver_data = sis_180 },\t/* SiS 965/965L */\n+\t{ PCI_VDEVICE(SI, 0x0183), .driver_data = sis_180 },\t/* SiS 965/965L */\n+\t{ PCI_VDEVICE(SI, 0x1182), .driver_data = sis_180 },\t/* SiS 966/680 */\n+\t{ PCI_VDEVICE(SI, 0x1183), .driver_data = sis_180 },\t/* SiS 966/966L/968/680 */\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_svw.c b/drivers/ata/sata_svw.c\nindex c5d6aa36c9c3..4792f2930039 100644\n--- a/drivers/ata/sata_svw.c\n+++ b/drivers/ata/sata_svw.c\n@@ -500,13 +500,13 @@ static int k2_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *en\n * controller\n * */\n static const struct pci_device_id k2_sata_pci_tbl[] = {\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x0240), chip_svw4 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x0241), chip_svw8 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x0242), chip_svw4 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x024a), chip_svw4 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x024b), chip_svw4 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x0410), chip_svw42 },\n-\t{ PCI_VDEVICE(SERVERWORKS, 0x0411), chip_svw43 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x0240), .driver_data = chip_svw4 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x0241), .driver_data = chip_svw8 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x0242), .driver_data = chip_svw4 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x024a), .driver_data = chip_svw4 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x024b), .driver_data = chip_svw4 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x0410), .driver_data = chip_svw42 },\n+\t{ PCI_VDEVICE(SERVERWORKS, 0x0411), .driver_data = chip_svw43 },\n \n \t{ }\n };\ndiff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c\nindex 0986ebd1eb4e..befd4d8b4773 100644\n--- a/drivers/ata/sata_sx4.c\n+++ b/drivers/ata/sata_sx4.c\n@@ -267,7 +267,7 @@ static const struct ata_port_info pdc_port_info[] = {\n };\n \n static const struct pci_device_id pdc_sata_pci_tbl[] = {\n-\t{ PCI_VDEVICE(PROMISE, 0x6622), board_20621 },\n+\t{ PCI_VDEVICE(PROMISE, 0x6622), .driver_data = board_20621 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c\nindex 44985796cc47..5065acb4a708 100644\n--- a/drivers/ata/sata_uli.c\n+++ b/drivers/ata/sata_uli.c\n@@ -45,9 +45,9 @@ static int uli_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);\n static int uli_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);\n \n static const struct pci_device_id uli_pci_tbl[] = {\n-\t{ PCI_VDEVICE(AL, 0x5289), uli_5289 },\n-\t{ PCI_VDEVICE(AL, 0x5287), uli_5287 },\n-\t{ PCI_VDEVICE(AL, 0x5281), uli_5281 },\n+\t{ PCI_VDEVICE(AL, 0x5289), .driver_data = uli_5289 },\n+\t{ PCI_VDEVICE(AL, 0x5287), .driver_data = uli_5287 },\n+\t{ PCI_VDEVICE(AL, 0x5281), .driver_data = uli_5281 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c\nindex 68e9003ec2d4..3712c3bbd453 100644\n--- a/drivers/ata/sata_via.c\n+++ b/drivers/ata/sata_via.c\n@@ -85,14 +85,14 @@ static void vt6421_set_dma_mode(struct ata_port *ap, struct ata_device *adev);\n static void vt6421_error_handler(struct ata_port *ap);\n \n static const struct pci_device_id svia_pci_tbl[] = {\n-\t{ PCI_VDEVICE(VIA, 0x5337), vt6420 },\n-\t{ PCI_VDEVICE(VIA, 0x0591), vt6420 }, /* 2 sata chnls (Master) */\n-\t{ PCI_VDEVICE(VIA, 0x3149), vt6420 }, /* 2 sata chnls (Master) */\n-\t{ PCI_VDEVICE(VIA, 0x3249), vt6421 }, /* 2 sata chnls, 1 pata chnl */\n-\t{ PCI_VDEVICE(VIA, 0x5372), vt6420 },\n-\t{ PCI_VDEVICE(VIA, 0x7372), vt6420 },\n-\t{ PCI_VDEVICE(VIA, 0x5287), vt8251 }, /* 2 sata chnls (Master/Slave) */\n-\t{ PCI_VDEVICE(VIA, 0x9000), vt8251 },\n+\t{ PCI_VDEVICE(VIA, 0x5337), .driver_data = vt6420 },\n+\t{ PCI_VDEVICE(VIA, 0x0591), .driver_data = vt6420 }, /* 2 sata chnls (Master) */\n+\t{ PCI_VDEVICE(VIA, 0x3149), .driver_data = vt6420 }, /* 2 sata chnls (Master) */\n+\t{ PCI_VDEVICE(VIA, 0x3249), .driver_data = vt6421 }, /* 2 sata chnls, 1 pata chnl */\n+\t{ PCI_VDEVICE(VIA, 0x5372), .driver_data = vt6420 },\n+\t{ PCI_VDEVICE(VIA, 0x7372), .driver_data = vt6420 },\n+\t{ PCI_VDEVICE(VIA, 0x5287), .driver_data = vt8251 }, /* 2 sata chnls (Master/Slave) */\n+\t{ PCI_VDEVICE(VIA, 0x9000), .driver_data = vt8251 },\n \n \t{ }\t/* terminate list */\n };\ndiff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c\nindex a53a2dfc1e17..606284a6d387 100644\n--- a/drivers/ata/sata_vsc.c\n+++ b/drivers/ata/sata_vsc.c\n@@ -400,11 +400,15 @@ static int vsc_sata_init_one(struct pci_dev *pdev,\n }\n \n static const struct pci_device_id vsc_sata_pci_tbl[] = {\n-\t{ PCI_VENDOR_ID_VITESSE, 0x7174,\n-\t PCI_ANY_ID, PCI_ANY_ID, 0x10600, 0xFFFFFF, 0 },\n-\t{ PCI_VENDOR_ID_INTEL, 0x3200,\n-\t PCI_ANY_ID, PCI_ANY_ID, 0x10600, 0xFFFFFF, 0 },\n-\n+\t{\n+\t\tPCI_DEVICE(PCI_VENDOR_ID_VITESSE, 0x7174),\n+\t\t.class = 0x10600,\n+\t\t.class_mask = 0xFFFFFF,\n+\t}, {\n+\t\tPCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3200),\n+\t\t.class = 0x10600,\n+\t\t.class_mask = 0xFFFFFF,\n+\t},\n \t{ }\t/* terminate list */\n };\n \n", "prefixes": [] }