Module Name:    src
Committed By:   thorpej
Date:           Fri Jan 29 15:49:55 UTC 2021

Modified Files:
        src/sys/dev/acpi: acpi_cppc.c acpi_ec.c acpi_fan.c acpi_ged.c
            acpi_lid.c acpi_pcd.c acpi_pmtr.c aibs_acpi.c amdccp_acpi.c
            apple_smc_acpi.c asus_acpi.c atppc_acpi.c attimer_acpi.c
            dalb_acpi.c ehci_acpi.c fdc_acpi.c fujbp_acpi.c fujhk_acpi.c
            genet_acpi.c hpacel_acpi.c hpet_acpi.c hpqlb_acpi.c ipmi_acpi.c
            joy_acpi.c lpt_acpi.c mpu_acpi.c pcppi_acpi.c plgpio_acpi.c
            qemufwcfg_acpi.c smbus_acpi.c sony_acpi.c spic_acpi.c
            thinkpad_acpi.c ug_acpi.c vald_acpi.c valz_acpi.c virtio_acpi.c
            vmbus_acpi.c xhci_acpi.c
        src/sys/dev/acpi/wmi: wmi_acpi.c

Log Message:
Use acpi_compatible_match().


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/acpi/acpi_cppc.c \
    src/sys/dev/acpi/acpi_pcd.c src/sys/dev/acpi/qemufwcfg_acpi.c
cvs rdiff -u -r1.84 -r1.85 src/sys/dev/acpi/acpi_ec.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/acpi/acpi_fan.c \
    src/sys/dev/acpi/acpi_pmtr.c src/sys/dev/acpi/spic_acpi.c \
    src/sys/dev/acpi/valz_acpi.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/acpi/acpi_ged.c
cvs rdiff -u -r1.44 -r1.45 src/sys/dev/acpi/acpi_lid.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/acpi/aibs_acpi.c \
    src/sys/dev/acpi/plgpio_acpi.c src/sys/dev/acpi/ug_acpi.c \
    src/sys/dev/acpi/virtio_acpi.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/acpi/amdccp_acpi.c \
    src/sys/dev/acpi/apple_smc_acpi.c src/sys/dev/acpi/ehci_acpi.c \
    src/sys/dev/acpi/fujbp_acpi.c src/sys/dev/acpi/fujhk_acpi.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/acpi/asus_acpi.c
cvs rdiff -u -r1.21 -r1.22 src/sys/dev/acpi/atppc_acpi.c
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/acpi/attimer_acpi.c \
    src/sys/dev/acpi/smbus_acpi.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/acpi/dalb_acpi.c
cvs rdiff -u -r1.45 -r1.46 src/sys/dev/acpi/fdc_acpi.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/acpi/genet_acpi.c \
    src/sys/dev/acpi/ipmi_acpi.c src/sys/dev/acpi/vmbus_acpi.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/acpi/hpacel_acpi.c \
    src/sys/dev/acpi/vald_acpi.c
cvs rdiff -u -r1.11 -r1.12 src/sys/dev/acpi/hpet_acpi.c \
    src/sys/dev/acpi/joy_acpi.c
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/acpi/hpqlb_acpi.c \
    src/sys/dev/acpi/xhci_acpi.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/acpi/lpt_acpi.c
cvs rdiff -u -r1.15 -r1.16 src/sys/dev/acpi/mpu_acpi.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/acpi/pcppi_acpi.c
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/acpi/sony_acpi.c
cvs rdiff -u -r1.48 -r1.49 src/sys/dev/acpi/thinkpad_acpi.c
cvs rdiff -u -r1.16 -r1.17 src/sys/dev/acpi/wmi/wmi_acpi.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/acpi/acpi_cppc.c
diff -u src/sys/dev/acpi/acpi_cppc.c:1.1 src/sys/dev/acpi/acpi_cppc.c:1.2
--- src/sys/dev/acpi/acpi_cppc.c:1.1	Sun Dec 13 20:39:20 2020
+++ src/sys/dev/acpi/acpi_cppc.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_cppc.c,v 1.1 2020/12/13 20:39:20 jmcneill Exp $ */
+/* $NetBSD: acpi_cppc.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_cppc.c,v 1.1 2020/12/13 20:39:20 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_cppc.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -104,9 +104,9 @@ static ACPI_STATUS	cppc_write(struct cpp
 CFATTACH_DECL_NEW(acpicppc, sizeof(struct cppc_softc),
     cppc_match, cppc_attach, NULL, NULL);
 
-static const char * const compatible[] = {
-	"ACPI0007",	/* ACPI Processor Device */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ACPI0007" },	/* ACPI Processor Device */
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -116,13 +116,8 @@ cppc_match(device_t parent, cfdata_t cf,
 	ACPI_HANDLE handle;
 	ACPI_STATUS rv;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE) {
+	if (acpi_compatible_match(aa, compat_data) == 0)
 		return 0;
-	}
-
-	if (acpi_match_hid(aa->aa_node->ad_devinfo, compatible) == 0) {
-		return 0;
-	}
 
 	rv = AcpiGetHandle(aa->aa_node->ad_handle, "_CPC", &handle);
 	if (ACPI_FAILURE(rv)) {
@@ -134,7 +129,7 @@ cppc_match(device_t parent, cfdata_t cf,
 	}
 
 	/* When CPPC and P-states/T-states are both available, prefer CPPC */
-	return 20;
+	return ACPI_MATCHSCORE_CID_MAX + 1;
 }
 
 static void
Index: src/sys/dev/acpi/acpi_pcd.c
diff -u src/sys/dev/acpi/acpi_pcd.c:1.1 src/sys/dev/acpi/acpi_pcd.c:1.2
--- src/sys/dev/acpi/acpi_pcd.c:1.1	Mon Dec  7 10:57:41 2020
+++ src/sys/dev/acpi/acpi_pcd.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_pcd.c,v 1.1 2020/12/07 10:57:41 jmcneill Exp $ */
+/* $NetBSD: acpi_pcd.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_pcd.c,v 1.1 2020/12/07 10:57:41 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_pcd.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -43,9 +43,9 @@ __KERNEL_RCSID(0, "$NetBSD: acpi_pcd.c,v
 #include <dev/acpi/acpireg.h>
 #include <dev/acpi/acpivar.h>
 
-static const char * const compatible[] = {
-	"ACPI0010",	/* Processor Container Device */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ACPI0010" },	/* Processor Container Device */
+	DEVICE_COMPAT_EOL
 };
 
 static int	acpi_pcd_match(device_t, cfdata_t, void *);
@@ -58,10 +58,7 @@ acpi_pcd_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/qemufwcfg_acpi.c
diff -u src/sys/dev/acpi/qemufwcfg_acpi.c:1.1 src/sys/dev/acpi/qemufwcfg_acpi.c:1.2
--- src/sys/dev/acpi/qemufwcfg_acpi.c:1.1	Sat Nov 25 16:31:03 2017
+++ src/sys/dev/acpi/qemufwcfg_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: qemufwcfg_acpi.c,v 1.1 2017/11/25 16:31:03 jmcneill Exp $ */
+/* $NetBSD: qemufwcfg_acpi.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: qemufwcfg_acpi.c,v 1.1 2017/11/25 16:31:03 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: qemufwcfg_acpi.c,v 1.2 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -53,9 +53,9 @@ CFATTACH_DECL_NEW(qemufwcfg_acpi, sizeof
     NULL
 );
 
-static const char * const fwcfg_acpi_ids[] = {
-	"QEMU0002",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "QEMU0002" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -63,10 +63,7 @@ fwcfg_acpi_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = opaque;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, fwcfg_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/acpi_ec.c
diff -u src/sys/dev/acpi/acpi_ec.c:1.84 src/sys/dev/acpi/acpi_ec.c:1.85
--- src/sys/dev/acpi/acpi_ec.c:1.84	Mon Jun 15 15:29:46 2020
+++ src/sys/dev/acpi/acpi_ec.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_ec.c,v 1.84 2020/06/15 15:29:46 jdolecek Exp $	*/
+/*	$NetBSD: acpi_ec.c,v 1.85 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2007 Joerg Sonnenberger <jo...@netbsd.org>.
@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.84 2020/06/15 15:29:46 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.85 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -101,9 +101,9 @@ ACPI_MODULE_NAME            ("acpi_ec")
 #define	EC_STATUS_SCI		0x20
 #define	EC_STATUS_SMI		0x40
 
-static const char * const ec_hid[] = {
-	"PNP0C09",
-	NULL,
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0C09" },
+	DEVICE_COMPAT_EOL
 };
 
 enum ec_state_t {
@@ -246,10 +246,7 @@ acpiec_match(device_t parent, cfdata_t m
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, ec_hid);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/acpi_fan.c
diff -u src/sys/dev/acpi/acpi_fan.c:1.8 src/sys/dev/acpi/acpi_fan.c:1.9
--- src/sys/dev/acpi/acpi_fan.c:1.8	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/acpi_fan.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_fan.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $ */
+/*	$NetBSD: acpi_fan.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2011 Jukka Ruohonen <jruoho...@iki.fi>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_fan.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_fan.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/module.h>
@@ -48,9 +48,9 @@ struct acpifan_softc {
 	envsys_data_t		 sc_sensor;
 };
 
-const char * const acpi_fan_ids[] = {
-	"PNP0C0B",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0C0B" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	acpifan_match(device_t, cfdata_t, void *);
@@ -71,10 +71,7 @@ acpifan_match(device_t parent, cfdata_t 
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, acpi_fan_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/acpi_pmtr.c
diff -u src/sys/dev/acpi/acpi_pmtr.c:1.8 src/sys/dev/acpi/acpi_pmtr.c:1.9
--- src/sys/dev/acpi/acpi_pmtr.c:1.8	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/acpi_pmtr.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_pmtr.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $ */
+/*	$NetBSD: acpi_pmtr.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2011 Jukka Ruohonen <jruoho...@iki.fi>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_pmtr.c,v 1.8 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_pmtr.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/module.h>
@@ -83,9 +83,9 @@ struct acpipmtr_softc {
 	kmutex_t		 sc_mtx;
 };
 
-const char * const acpi_pmtr_ids[] = {
-	"ACPI000D",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ACPI000D" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	acpipmtr_match(device_t, cfdata_t, void *);
@@ -109,10 +109,7 @@ acpipmtr_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, acpi_pmtr_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/spic_acpi.c
diff -u src/sys/dev/acpi/spic_acpi.c:1.8 src/sys/dev/acpi/spic_acpi.c:1.9
--- src/sys/dev/acpi/spic_acpi.c:1.8	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/spic_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: spic_acpi.c,v 1.8 2020/12/07 10:02:51 jmcneill Exp $	*/
+/*	$NetBSD: spic_acpi.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spic_acpi.c,v 1.8 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spic_acpi.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -53,9 +53,9 @@ struct spic_acpi_softc {
 	void *sc_ih;
 };
 
-static const char * const spic_acpi_ids[] = {
-	"SNY6001",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "SNY6001" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	spic_acpi_match(device_t, cfdata_t, void *);
@@ -70,10 +70,7 @@ spic_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return (0);
-
-	return (acpi_match_hid(aa->aa_node->ad_devinfo, spic_acpi_ids));
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/valz_acpi.c
diff -u src/sys/dev/acpi/valz_acpi.c:1.8 src/sys/dev/acpi/valz_acpi.c:1.9
--- src/sys/dev/acpi/valz_acpi.c:1.8	Thu Nov  9 23:51:54 2017
+++ src/sys/dev/acpi/valz_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: valz_acpi.c,v 1.8 2017/11/09 23:51:54 ryoon Exp $	*/
+/*	$NetBSD: valz_acpi.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: valz_acpi.c,v 1.8 2017/11/09 23:51:54 ryoon Exp $");
+__KERNEL_RCSID(0, "$NetBSD: valz_acpi.c,v 1.9 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -231,9 +231,9 @@ struct valz_acpi_softc {
 	struct acpi_devnode *sc_node;	/* our ACPI devnode */
 };
 
-static const char * const valz_acpi_hids[] = {
-	"TOS6208",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "TOS6208" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	valz_acpi_match(device_t, cfdata_t, void *);
@@ -274,10 +274,7 @@ valz_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return (0);
-
-	return (acpi_match_hid(aa->aa_node->ad_devinfo, valz_acpi_hids));
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/acpi_ged.c
diff -u src/sys/dev/acpi/acpi_ged.c:1.2 src/sys/dev/acpi/acpi_ged.c:1.3
--- src/sys/dev/acpi/acpi_ged.c:1.2	Fri Oct 23 11:00:09 2020
+++ src/sys/dev/acpi/acpi_ged.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_ged.c,v 1.2 2020/10/23 11:00:09 jmcneill Exp $ */
+/* $NetBSD: acpi_ged.c,v 1.3 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_ged.c,v 1.2 2020/10/23 11:00:09 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_ged.c,v 1.3 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -52,9 +52,9 @@ static int	acpi_ged_intr(void *);
 
 CFATTACH_DECL_NEW(acpiged, 0, acpi_ged_match, acpi_ged_attach, NULL, NULL);
 
-static const char * const compatible[] = {
-	"ACPI0013",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ACPI0013" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -62,10 +62,7 @@ acpi_ged_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/acpi_lid.c
diff -u src/sys/dev/acpi/acpi_lid.c:1.44 src/sys/dev/acpi/acpi_lid.c:1.45
--- src/sys/dev/acpi/acpi_lid.c:1.44	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/acpi_lid.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_lid.c,v 1.44 2015/04/23 23:23:00 pgoyette Exp $	*/
+/*	$NetBSD: acpi_lid.c,v 1.45 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*
  * Copyright 2001, 2003 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_lid.c,v 1.44 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_lid.c,v 1.45 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -61,9 +61,9 @@ struct acpilid_softc {
 	uint64_t		 sc_status;
 };
 
-static const char * const lid_hid[] = {
-	"PNP0C0D",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0C0D" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	acpilid_match(device_t, cfdata_t, void *);
@@ -85,10 +85,7 @@ acpilid_match(device_t parent, cfdata_t 
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, lid_hid);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/aibs_acpi.c
diff -u src/sys/dev/acpi/aibs_acpi.c:1.6 src/sys/dev/acpi/aibs_acpi.c:1.7
--- src/sys/dev/acpi/aibs_acpi.c:1.6	Thu Jun  1 02:45:09 2017
+++ src/sys/dev/acpi/aibs_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: aibs_acpi.c,v 1.6 2017/06/01 02:45:09 chs Exp $ */
+/* $NetBSD: aibs_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -47,7 +47,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aibs_acpi.c,v 1.6 2017/06/01 02:45:09 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aibs_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/kmem.h>
@@ -114,9 +114,9 @@ static void	aibs_sensor_limits(struct sy
 CFATTACH_DECL_NEW(aibs, sizeof(struct aibs_softc),
     aibs_match, aibs_attach, aibs_detach, NULL);
 
-static const char* const aibs_hid[] = {
-	"ATK0110",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ATK0110" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -124,10 +124,7 @@ aibs_match(device_t parent, cfdata_t mat
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, aibs_hid);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/plgpio_acpi.c
diff -u src/sys/dev/acpi/plgpio_acpi.c:1.6 src/sys/dev/acpi/plgpio_acpi.c:1.7
--- src/sys/dev/acpi/plgpio_acpi.c:1.6	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/plgpio_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: plgpio_acpi.c,v 1.6 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: plgpio_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: plgpio_acpi.c,v 1.6 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: plgpio_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -65,9 +65,9 @@ static int	plgpio_acpi_intr(void *);
 
 CFATTACH_DECL_NEW(plgpio_acpi, sizeof(struct plgpio_acpi_softc), plgpio_acpi_match, plgpio_acpi_attach, NULL, NULL);
 
-static const char * const compatible[] = {
-	"ARMH0061",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ARMH0061" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -75,10 +75,7 @@ plgpio_acpi_match(device_t parent, cfdat
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/ug_acpi.c
diff -u src/sys/dev/acpi/ug_acpi.c:1.6 src/sys/dev/acpi/ug_acpi.c:1.7
--- src/sys/dev/acpi/ug_acpi.c:1.6	Fri Mar  5 14:00:17 2010
+++ src/sys/dev/acpi/ug_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ug_acpi.c,v 1.6 2010/03/05 14:00:17 jruoho Exp $ */
+/* $NetBSD: ug_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2007 Mihai Chelaru <kef...@netbsd.ro>
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ug_acpi.c,v 1.6 2010/03/05 14:00:17 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ug_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -49,9 +49,9 @@ CFATTACH_DECL_NEW(ug_acpi, sizeof(struct
  * XXX: only uGuru 2005 for now
  */
 
-static const char* const ug_acpi_ids[] = {
-	"ABT2005",	/* uGuru 2005 */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ABT2005" },	/* uGuru 2005 */
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -59,10 +59,7 @@ ug_acpi_match(device_t parent, cfdata_t 
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, ug_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/virtio_acpi.c
diff -u src/sys/dev/acpi/virtio_acpi.c:1.6 src/sys/dev/acpi/virtio_acpi.c:1.7
--- src/sys/dev/acpi/virtio_acpi.c:1.6	Wed Jan 20 21:59:48 2021
+++ src/sys/dev/acpi/virtio_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: virtio_acpi.c,v 1.6 2021/01/20 21:59:48 reinoud Exp $ */
+/* $NetBSD: virtio_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: virtio_acpi.c,v 1.6 2021/01/20 21:59:48 reinoud Exp $");
+__KERNEL_RCSID(0, "$NetBSD: virtio_acpi.c,v 1.7 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -63,9 +63,9 @@ CFATTACH_DECL3_NEW(virtio_acpi, sizeof(s
     virtio_acpi_match, virtio_acpi_attach, virtio_acpi_detach, NULL,
     virtio_acpi_rescan, (void *)voidop, DVF_DETACH_SHUTDOWN);
 
-static const char * const compatible[] = {
-	"LNRO0005",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "LNRO0005" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -73,10 +73,7 @@ virtio_acpi_match(device_t parent, cfdat
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/amdccp_acpi.c
diff -u src/sys/dev/acpi/amdccp_acpi.c:1.4 src/sys/dev/acpi/amdccp_acpi.c:1.5
--- src/sys/dev/acpi/amdccp_acpi.c:1.4	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/amdccp_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: amdccp_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: amdccp_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2018 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdccp_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdccp_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -46,9 +46,9 @@ static void	amdccp_acpi_attach(device_t,
 CFATTACH_DECL_NEW(amdccp_acpi, sizeof(struct amdccp_softc),
     amdccp_acpi_match, amdccp_acpi_attach, NULL, NULL);
 
-static const char * const compatible[] = {
-	"AMDI0C00",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "AMDI0C00" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -56,10 +56,7 @@ amdccp_acpi_match(device_t parent, cfdat
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/apple_smc_acpi.c
diff -u src/sys/dev/acpi/apple_smc_acpi.c:1.4 src/sys/dev/acpi/apple_smc_acpi.c:1.5
--- src/sys/dev/acpi/apple_smc_acpi.c:1.4	Mon May 22 14:07:00 2017
+++ src/sys/dev/acpi/apple_smc_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: apple_smc_acpi.c,v 1.4 2017/05/22 14:07:00 riastradh Exp $	*/
+/*	$NetBSD: apple_smc_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*
  * Apple System Management Controller: ACPI Attachment
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: apple_smc_acpi.c,v 1.4 2017/05/22 14:07:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: apple_smc_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -68,9 +68,9 @@ CFATTACH_DECL2_NEW(apple_smc_acpi, sizeo
     apple_smc_acpi_rescan,
     apple_smc_acpi_child_detached);
 
-static const char *const apple_smc_ids[] = {
-	"APP0001",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "APP0001" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -78,13 +78,7 @@ apple_smc_acpi_match(device_t parent, cf
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	if (!acpi_match_hid(aa->aa_node->ad_devinfo, apple_smc_ids))
-		return 0;
-
-	return 1;
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/ehci_acpi.c
diff -u src/sys/dev/acpi/ehci_acpi.c:1.4 src/sys/dev/acpi/ehci_acpi.c:1.5
--- src/sys/dev/acpi/ehci_acpi.c:1.4	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/ehci_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ehci_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: ehci_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -49,10 +49,14 @@ __KERNEL_RCSID(0, "$NetBSD: ehci_acpi.c,
 #include <dev/acpi/acpi_intr.h>
 #include <dev/acpi/acpi_usb.h>
 
-static const char * const compatible[] = {
-	"PNP0D20",	/* EHCI-compliant USB controller without standard debug */
-	"PNP0D25",	/* EHCI-compliant USB controller with standard debug */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	/* EHCI-compliant USB controller without standard debug */
+	{ .compat = "PNP0D20" },
+
+	/* EHCI-compliant USB controller with standard debug */
+	{ .compat = "PNP0D25" },
+
+	DEVICE_COMPAT_EOL
 };
 
 struct ehci_acpi_softc {
@@ -74,10 +78,7 @@ ehci_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/fujbp_acpi.c
diff -u src/sys/dev/acpi/fujbp_acpi.c:1.4 src/sys/dev/acpi/fujbp_acpi.c:1.5
--- src/sys/dev/acpi/fujbp_acpi.c:1.4	Tue Feb 25 18:30:09 2014
+++ src/sys/dev/acpi/fujbp_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fujbp_acpi.c,v 1.4 2014/02/25 18:30:09 pooka Exp $ */
+/*	$NetBSD: fujbp_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fujbp_acpi.c,v 1.4 2014/02/25 18:30:09 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fujbp_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -126,9 +126,9 @@ struct fujitsu_bp_softc {
 	uint8_t			 sc_brightness_nlevels;
 };
 
-static const char * const fujitsu_bp_hid[] = {
-	"FUJ02B1",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "FUJ02B1" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	fujitsu_bp_match(device_t, cfdata_t, void *);
@@ -160,10 +160,7 @@ fujitsu_bp_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, fujitsu_bp_hid);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/fujhk_acpi.c
diff -u src/sys/dev/acpi/fujhk_acpi.c:1.4 src/sys/dev/acpi/fujhk_acpi.c:1.5
--- src/sys/dev/acpi/fujhk_acpi.c:1.4	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/fujhk_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fujhk_acpi.c,v 1.4 2015/04/23 23:23:00 pgoyette Exp $ */
+/*	$NetBSD: fujhk_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fujhk_acpi.c,v 1.4 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fujhk_acpi.c,v 1.5 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -86,9 +86,9 @@ struct fujitsu_hk_softc {
 	char			 sc_smpsw_name[FUJITSU_HK_PSW_COUNT][16];
 };
 
-static const char * const fujitsu_hk_hid[] = {
-	"FUJ02E3",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "FUJ02E3" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	fujitsu_hk_match(device_t, cfdata_t, void *);
@@ -117,10 +117,7 @@ fujitsu_hk_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, fujitsu_hk_hid);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/asus_acpi.c
diff -u src/sys/dev/acpi/asus_acpi.c:1.26 src/sys/dev/acpi/asus_acpi.c:1.27
--- src/sys/dev/acpi/asus_acpi.c:1.26	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/asus_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: asus_acpi.c,v 1.26 2015/04/23 23:23:00 pgoyette Exp $ */
+/* $NetBSD: asus_acpi.c,v 1.27 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2007, 2008, 2009 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: asus_acpi.c,v 1.26 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: asus_acpi.c,v 1.27 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -105,9 +105,9 @@ static bool	asus_get_fan_speed(struct as
 CFATTACH_DECL_NEW(asus, sizeof(struct asus_softc),
     asus_match, asus_attach, asus_detach, NULL);
 
-static const char * const asus_ids[] = {
-	"ASUS010",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "ASUS010" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -115,10 +115,7 @@ asus_match(device_t parent, cfdata_t mat
 {
 	struct acpi_attach_args *aa = opaque;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, asus_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/atppc_acpi.c
diff -u src/sys/dev/acpi/atppc_acpi.c:1.21 src/sys/dev/acpi/atppc_acpi.c:1.22
--- src/sys/dev/acpi/atppc_acpi.c:1.21	Sun Dec 13 08:20:56 2020
+++ src/sys/dev/acpi/atppc_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atppc_acpi.c,v 1.21 2020/12/13 08:20:56 martin Exp $ */
+/* $NetBSD: atppc_acpi.c,v 1.22 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atppc_acpi.c,v 1.21 2020/12/13 08:20:56 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atppc_acpi.c,v 1.22 2021/01/29 15:49:55 thorpej Exp $");
 
 #include "opt_atppc.h"
 
@@ -64,9 +64,9 @@ CFATTACH_DECL_NEW(atppc_acpi, sizeof(str
  * Supported device IDs
  */
 
-static const char * const atppc_acpi_ids[] = {
-	"PNP04??",	/* Standard AT printer port */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP04??" },	/* Standard AT printer port */
+	DEVICE_COMPAT_EOL
 };
 
 static int atppc_acpi_dma_start(struct atppc_softc *, void *, u_int,
@@ -85,10 +85,7 @@ atppc_acpi_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, atppc_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/attimer_acpi.c
diff -u src/sys/dev/acpi/attimer_acpi.c:1.14 src/sys/dev/acpi/attimer_acpi.c:1.15
--- src/sys/dev/acpi/attimer_acpi.c:1.14	Fri Mar  5 14:00:17 2010
+++ src/sys/dev/acpi/attimer_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: attimer_acpi.c,v 1.14 2010/03/05 14:00:17 jruoho Exp $ */
+/* $NetBSD: attimer_acpi.c,v 1.15 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: attimer_acpi.c,v 1.14 2010/03/05 14:00:17 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: attimer_acpi.c,v 1.15 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -80,9 +80,9 @@ CFATTACH_DECL3_NEW(attimer_acpi, sizeof(
  * Supported device IDs
  */
 
-static const char * const attimer_acpi_ids[] = {
-	"PNP0100",	/* AT Timer */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0100" },	/* AT Timer */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -93,10 +93,7 @@ attimer_acpi_match(device_t parent, cfda
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, attimer_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*
Index: src/sys/dev/acpi/smbus_acpi.c
diff -u src/sys/dev/acpi/smbus_acpi.c:1.14 src/sys/dev/acpi/smbus_acpi.c:1.15
--- src/sys/dev/acpi/smbus_acpi.c:1.14	Sun Dec 22 23:23:32 2019
+++ src/sys/dev/acpi/smbus_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: smbus_acpi.c,v 1.14 2019/12/22 23:23:32 thorpej Exp $ */
+/* $NetBSD: smbus_acpi.c,v 1.15 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smbus_acpi.c,v 1.14 2019/12/22 23:23:32 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smbus_acpi.c,v 1.15 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -112,9 +112,9 @@ struct SMB_INFO {
 	struct SMB_DEVICE device[1];
 };
 
-static const char * const smbus_acpi_ids[] = {
-	"SMBUS01",	/* SMBus CMI v1.0 */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "SMBUS01" },	/* SMBus CMI v1.0 */
+	DEVICE_COMPAT_EOL
 };
 
 CFATTACH_DECL_NEW(acpismbus, sizeof(struct acpi_smbus_softc),
@@ -124,14 +124,13 @@ static int
 acpi_smbus_match(device_t parent, cfdata_t match, void *aux)
 {
 	struct acpi_attach_args *aa = aux;
+	int ret;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
+	ret = acpi_compatible_match(aa, compat_data);
+	if (ret == 0)
 		return 0;
 
-	if (acpi_match_hid(aa->aa_node->ad_devinfo, smbus_acpi_ids) == 0)
-		return 0;
-
-	return acpi_smbus_poll_alert(aa->aa_node->ad_handle, NULL);
+	return acpi_smbus_poll_alert(aa->aa_node->ad_handle, NULL) ? ret : 0;
 }
 
 static void

Index: src/sys/dev/acpi/dalb_acpi.c
diff -u src/sys/dev/acpi/dalb_acpi.c:1.18 src/sys/dev/acpi/dalb_acpi.c:1.19
--- src/sys/dev/acpi/dalb_acpi.c:1.18	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/dalb_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dalb_acpi.c,v 1.18 2015/04/23 23:23:00 pgoyette Exp $	*/
+/*	$NetBSD: dalb_acpi.c,v 1.19 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2008 Christoph Egger <ceg...@netbsd.org>
@@ -27,7 +27,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dalb_acpi.c,v 1.18 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dalb_acpi.c,v 1.19 2021/01/29 15:49:55 thorpej Exp $");
 
 /*
  * Direct Application Launch Button:
@@ -71,9 +71,9 @@ static void	acpi_dalb_get_runtime_hotkey
 CFATTACH_DECL_NEW(acpidalb, sizeof(struct acpi_dalb_softc),
     acpi_dalb_match, acpi_dalb_attach, acpi_dalb_detach, NULL);
 
-static const char * const acpi_dalb_ids[] = {
-        "PNP0C32", /* Direct Application Launch Button */
-        NULL
+static const struct device_compatible_entry compat_data[] = {
+        { .compat = "PNP0C32" }, /* Direct Application Launch Button */
+	DEVICE_COMPAT_EOL
 };
 
 #define DALB_SYSTEM_WAKEUP	0x02
@@ -84,10 +84,7 @@ acpi_dalb_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, acpi_dalb_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/fdc_acpi.c
diff -u src/sys/dev/acpi/fdc_acpi.c:1.45 src/sys/dev/acpi/fdc_acpi.c:1.46
--- src/sys/dev/acpi/fdc_acpi.c:1.45	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/fdc_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: fdc_acpi.c,v 1.45 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: fdc_acpi.c,v 1.46 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2002 Jared D. McNeill <jmcne...@invisible.ca>
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdc_acpi.c,v 1.45 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdc_acpi.c,v 1.46 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -73,9 +73,9 @@ CFATTACH_DECL_NEW(fdc_acpi, sizeof(struc
  * Supported device IDs
  */
 
-static const char * const fdc_acpi_ids[] = {
-	"PNP07??",	/* PC standard floppy disk controller */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP07??" }, /* PC standard floppy disk controller */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -86,10 +86,7 @@ fdc_acpi_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, fdc_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/genet_acpi.c
diff -u src/sys/dev/acpi/genet_acpi.c:1.3 src/sys/dev/acpi/genet_acpi.c:1.4
--- src/sys/dev/acpi/genet_acpi.c:1.3	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/genet_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: genet_acpi.c,v 1.3 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 #include "opt_net_mpsafe.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.3 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -55,9 +55,9 @@ __KERNEL_RCSID(0, "$NetBSD: genet_acpi.c
 #define	GENET_INTR_MPSAFE	false
 #endif
 
-static const char * const compatible[] = {
-	"BCM6E4E",	/* Broadcom GENET v5 */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "BCM6E4E" },	/* Broadcom GENET v5 */
+	DEVICE_COMPAT_EOL
 };
 
 static int	genet_acpi_match(device_t, cfdata_t, void *);
@@ -71,10 +71,7 @@ genet_acpi_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/ipmi_acpi.c
diff -u src/sys/dev/acpi/ipmi_acpi.c:1.3 src/sys/dev/acpi/ipmi_acpi.c:1.4
--- src/sys/dev/acpi/ipmi_acpi.c:1.3	Wed Jan 30 20:20:36 2019
+++ src/sys/dev/acpi/ipmi_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ipmi_acpi.c,v 1.3 2019/01/30 20:20:36 christos Exp $ */
+/* $NetBSD: ipmi_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipmi_acpi.c,v 1.3 2019/01/30 20:20:36 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipmi_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -58,9 +58,9 @@ CFATTACH_DECL3_NEW(ipmi_acpi, sizeof(ipm
     ipmi_acpi_match, ipmi_acpi_attach, ipmi_acpi_detach, NULL, NULL, NULL,
     DVF_DETACH_SHUTDOWN);
 
-static const char * const ipmi_ids[] = {
-	"IPI0001",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "IPI0001" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -68,13 +68,7 @@ ipmi_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = (struct acpi_attach_args *)opaque;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	if (!acpi_match_hid(aa->aa_node->ad_devinfo, ipmi_ids))
-		return 0;
-
-	return 1;
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/vmbus_acpi.c
diff -u src/sys/dev/acpi/vmbus_acpi.c:1.3 src/sys/dev/acpi/vmbus_acpi.c:1.4
--- src/sys/dev/acpi/vmbus_acpi.c:1.3	Sat Oct 24 08:57:06 2020
+++ src/sys/dev/acpi/vmbus_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmbus_acpi.c,v 1.3 2020/10/24 08:57:06 skrll Exp $	*/
+/*	$NetBSD: vmbus_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2018 Kimihiro Nonaka <non...@netbsd.org>
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vmbus_acpi.c,v 1.3 2020/10/24 08:57:06 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vmbus_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -52,27 +52,24 @@ struct vmbus_acpi_softc {
 CFATTACH_DECL_NEW(vmbus_acpi, sizeof(struct vmbus_acpi_softc),
     vmbus_acpi_match, vmbus_acpi_attach, vmbus_acpi_detach, NULL);
 
-static const char * const vmbus_acpi_ids[] = {
-	"VMBUS",
-	"VMBus",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "VMBUS" },
+	{ .compat = "VMBus" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
 vmbus_acpi_match(device_t parent, cfdata_t match, void *opaque)
 {
 	struct acpi_attach_args *aa = opaque;
+	int ret;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	if (!acpi_match_hid(aa->aa_node->ad_devinfo, vmbus_acpi_ids))
-		return 0;
+	ret = acpi_compatible_match(aa, compat_data);
 
 	if (!vmbus_match(parent, match, opaque))
 		return 0;
 
-	return 1;
+	return ret;
 }
 
 static void

Index: src/sys/dev/acpi/hpacel_acpi.c
diff -u src/sys/dev/acpi/hpacel_acpi.c:1.5 src/sys/dev/acpi/hpacel_acpi.c:1.6
--- src/sys/dev/acpi/hpacel_acpi.c:1.5	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/hpacel_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: hpacel_acpi.c,v 1.5 2015/04/23 23:23:00 pgoyette Exp $ */
+/*	$NetBSD: hpacel_acpi.c,v 1.6 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2009, 2011 Jukka Ruohonen <jruoho...@iki.fi>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpacel_acpi.c,v 1.5 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpacel_acpi.c,v 1.6 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/module.h>
@@ -144,9 +144,9 @@ struct hpacel_softc {
 	envsys_data_t		 sc_sensor[HPACEL_SENSOR_COUNT];
 };
 
-const char * const hpacel_ids[] = {
-	"HPQ0004",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "HPQ0004" },
+	DEVICE_COMPAT_EOL
 };
 
 static int		hpacel_match(device_t, cfdata_t, void *);
@@ -172,10 +172,7 @@ hpacel_match(device_t parent, cfdata_t m
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, hpacel_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/vald_acpi.c
diff -u src/sys/dev/acpi/vald_acpi.c:1.5 src/sys/dev/acpi/vald_acpi.c:1.6
--- src/sys/dev/acpi/vald_acpi.c:1.5	Thu Jul 14 04:19:26 2016
+++ src/sys/dev/acpi/vald_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vald_acpi.c,v 1.5 2016/07/14 04:19:26 msaitoh Exp $ */
+/*	$NetBSD: vald_acpi.c,v 1.6 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vald_acpi.c,v 1.5 2016/07/14 04:19:26 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vald_acpi.c,v 1.6 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -120,9 +120,9 @@ struct vald_acpi_softc {
 	ACPI_INTEGER sc_ac_status;	/* AC adaptor status when attach */
 };
 
-static const char * const vald_acpi_hids[] = {
-	"TOS6200",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "TOS6200" },
+	DEVICE_COMPAT_EOL
 };
 
 #define LIBRIGHT_HOLD	0x00
@@ -167,10 +167,7 @@ vald_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return (0);
-
-	return (acpi_match_hid(aa->aa_node->ad_devinfo, vald_acpi_hids));
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/hpet_acpi.c
diff -u src/sys/dev/acpi/hpet_acpi.c:1.11 src/sys/dev/acpi/hpet_acpi.c:1.12
--- src/sys/dev/acpi/hpet_acpi.c:1.11	Wed Jun 15 09:02:38 2011
+++ src/sys/dev/acpi/hpet_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hpet_acpi.c,v 1.11 2011/06/15 09:02:38 jruoho Exp $ */
+/* $NetBSD: hpet_acpi.c,v 1.12 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2011 Jukka Ruohonen
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpet_acpi.c,v 1.11 2011/06/15 09:02:38 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpet_acpi.c,v 1.12 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -52,9 +52,9 @@ static void		hpet_acpi_dev_attach(device
 static bus_addr_t	hpet_acpi_dev_addr(device_t, void *, bus_size_t *);
 static int		hpet_acpi_detach(device_t, int);
 
-static const char * const hpet_acpi_ids[] = {
-	"PNP0103",
-        NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0103" },
+	DEVICE_COMPAT_EOL
 };
 
 CFATTACH_DECL_NEW(hpet_acpi_tab, sizeof(struct hpet_softc),
@@ -148,11 +148,10 @@ hpet_acpi_dev_match(device_t parent, cfd
 	bus_space_tag_t bt;
 	bus_size_t len = 0;
 	bus_addr_t addr;
+	int ret;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	if (acpi_match_hid(aa->aa_node->ad_devinfo, hpet_acpi_ids) == 0)
+	ret = acpi_compatible_match(aa, compat_data);
+	if (ret == 0)
 		return 0;
 
 	addr = hpet_acpi_dev_addr(parent, aa, &len);
@@ -164,7 +163,7 @@ hpet_acpi_dev_match(device_t parent, cfd
 
 	if (bus_space_map(bt, addr, len, 0, &bh) == 0) {
 		bus_space_unmap(bt, bh, len);
-		return 1;
+		return ret;
 	}
 
 	return 0;
Index: src/sys/dev/acpi/joy_acpi.c
diff -u src/sys/dev/acpi/joy_acpi.c:1.11 src/sys/dev/acpi/joy_acpi.c:1.12
--- src/sys/dev/acpi/joy_acpi.c:1.11	Wed Nov 23 23:07:31 2011
+++ src/sys/dev/acpi/joy_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: joy_acpi.c,v 1.11 2011/11/23 23:07:31 jmcneill Exp $ */
+/* $NetBSD: joy_acpi.c,v 1.12 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2002 Jared D. McNeill <jmcne...@invisible.ca>
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: joy_acpi.c,v 1.11 2011/11/23 23:07:31 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: joy_acpi.c,v 1.12 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -55,9 +55,9 @@ CFATTACH_DECL_NEW(joy_acpi, sizeof(struc
  * Supported device IDs
  */
 
-static const char * const joy_acpi_ids[] = {
-	"PNPB02F",	/* Joystick/Game port */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNPB02F" },	/* Joystick/Game port */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -68,10 +68,7 @@ joy_acpi_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, joy_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/hpqlb_acpi.c
diff -u src/sys/dev/acpi/hpqlb_acpi.c:1.10 src/sys/dev/acpi/hpqlb_acpi.c:1.11
--- src/sys/dev/acpi/hpqlb_acpi.c:1.10	Thu Apr 23 23:23:00 2015
+++ src/sys/dev/acpi/hpqlb_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hpqlb_acpi.c,v 1.10 2015/04/23 23:23:00 pgoyette Exp $ */
+/* $NetBSD: hpqlb_acpi.c,v 1.11 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2008  Christoph Egger <ceg...@netbsd.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpqlb_acpi.c,v 1.10 2015/04/23 23:23:00 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpqlb_acpi.c,v 1.11 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -95,10 +95,10 @@ static bool hpqlb_resume(device_t, const
 CFATTACH_DECL_NEW(hpqlb, sizeof(struct hpqlb_softc),
     hpqlb_match, hpqlb_attach, hpqlb_detach, NULL);
 
-static const char * const hpqlb_ids[] = {
-	"HPQ0006",
-	"HPQ0007",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "HPQ0006" },
+	{ .compat = "HPQ0007" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -106,10 +106,7 @@ hpqlb_match(device_t parent, cfdata_t ma
 {
 	struct acpi_attach_args *aa = opaque;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, hpqlb_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void
Index: src/sys/dev/acpi/xhci_acpi.c
diff -u src/sys/dev/acpi/xhci_acpi.c:1.10 src/sys/dev/acpi/xhci_acpi.c:1.11
--- src/sys/dev/acpi/xhci_acpi.c:1.10	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/xhci_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: xhci_acpi.c,v 1.10 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: xhci_acpi.c,v 1.11 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci_acpi.c,v 1.10 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci_acpi.c,v 1.11 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -49,11 +49,17 @@ __KERNEL_RCSID(0, "$NetBSD: xhci_acpi.c,
 #include <dev/acpi/acpi_intr.h>
 #include <dev/acpi/acpi_usb.h>
 
-static const char * const compatible[] = {
-	"PNP0D10",	/* XHCI-compliant USB controller without standard debug */
-	"PNP0D15",	/* XHCI-compliant USB controller with standard debug */
-	"808622B7",	/* DesignWare Dual Role SuperSpeed USB controller */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	/* XHCI-compliant USB controller without standard debug */
+	{ .compat = "PNP0D10" },
+
+	/* XHCI-compliant USB controller with standard debug */
+	{ .compat = "PNP0D15" },
+
+	/* DesignWare Dual Role SuperSpeed USB controller */
+	{ .compat = "808622B7", },
+
+	DEVICE_COMPAT_EOL
 };
 
 struct xhci_acpi_softc {
@@ -75,10 +81,7 @@ xhci_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Index: src/sys/dev/acpi/lpt_acpi.c
diff -u src/sys/dev/acpi/lpt_acpi.c:1.22 src/sys/dev/acpi/lpt_acpi.c:1.23
--- src/sys/dev/acpi/lpt_acpi.c:1.22	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/lpt_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lpt_acpi.c,v 1.22 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: lpt_acpi.c,v 1.23 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2002 Jared D. McNeill <jmcne...@invisible.ca>
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lpt_acpi.c,v 1.22 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lpt_acpi.c,v 1.23 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -54,9 +54,9 @@ CFATTACH_DECL_NEW(lpt_acpi, sizeof(struc
  * Supported device IDs
  */
 
-static const char * const lpt_acpi_ids[] = {
-	"PNP04??",	/* Standard LPT printer port */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP04??" },	/* Standard LPT printer port */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -67,10 +67,7 @@ lpt_acpi_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, lpt_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/mpu_acpi.c
diff -u src/sys/dev/acpi/mpu_acpi.c:1.15 src/sys/dev/acpi/mpu_acpi.c:1.16
--- src/sys/dev/acpi/mpu_acpi.c:1.15	Mon Dec  7 10:02:51 2020
+++ src/sys/dev/acpi/mpu_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mpu_acpi.c,v 1.15 2020/12/07 10:02:51 jmcneill Exp $ */
+/* $NetBSD: mpu_acpi.c,v 1.16 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2002 Jared D. McNeill <jmcne...@invisible.ca>
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mpu_acpi.c,v 1.15 2020/12/07 10:02:51 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mpu_acpi.c,v 1.16 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -58,9 +58,9 @@ CFATTACH_DECL_NEW(mpu_acpi, sizeof(struc
  * Supported device IDs
  */
 
-static const char * const mpu_acpi_ids[] = {
-	"PNPB006",	/* Roland MPU-401 (compatible) MIDI UART */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNPB006" }, /* Roland MPU-401 (compatible) MIDI UART */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -71,10 +71,7 @@ mpu_acpi_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, mpu_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/pcppi_acpi.c
diff -u src/sys/dev/acpi/pcppi_acpi.c:1.12 src/sys/dev/acpi/pcppi_acpi.c:1.13
--- src/sys/dev/acpi/pcppi_acpi.c:1.12	Fri Mar  5 14:00:17 2010
+++ src/sys/dev/acpi/pcppi_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pcppi_acpi.c,v 1.12 2010/03/05 14:00:17 jruoho Exp $ */
+/* $NetBSD: pcppi_acpi.c,v 1.13 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*
  * Copyright (c) 2002 Jared D. McNeill <jmcne...@invisible.ca>
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcppi_acpi.c,v 1.12 2010/03/05 14:00:17 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcppi_acpi.c,v 1.13 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -53,9 +53,9 @@ CFATTACH_DECL_NEW(pcppi_acpi, sizeof(str
  * Supported device IDs
  */
 
-static const char * const pcppi_acpi_ids[] = {
-	"PNP0800",	/* AT-style speaker sound */
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0800" },	/* AT-style speaker sound */
+	DEVICE_COMPAT_EOL
 };
 
 /*
@@ -66,10 +66,7 @@ pcppi_acpi_match(device_t parent, cfdata
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, pcppi_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 /*

Index: src/sys/dev/acpi/sony_acpi.c
diff -u src/sys/dev/acpi/sony_acpi.c:1.23 src/sys/dev/acpi/sony_acpi.c:1.24
--- src/sys/dev/acpi/sony_acpi.c:1.23	Thu Jul  7 06:55:41 2016
+++ src/sys/dev/acpi/sony_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: sony_acpi.c,v 1.23 2016/07/07 06:55:41 msaitoh Exp $	*/
+/*	$NetBSD: sony_acpi.c,v 1.24 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sony_acpi.c,v 1.23 2016/07/07 06:55:41 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sony_acpi.c,v 1.24 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/sysctl.h>
@@ -74,9 +74,9 @@ struct sony_acpi_softc {
 	} sc_pmstate;
 };
 
-static const char * const sony_acpi_ids[] = {
-	"SNY5001",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "SNY5001" },
+	DEVICE_COMPAT_EOL
 };
 
 static int	sony_acpi_match(device_t, cfdata_t, void *);
@@ -99,10 +99,7 @@ sony_acpi_match(device_t parent, cfdata_
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, sony_acpi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static int

Index: src/sys/dev/acpi/thinkpad_acpi.c
diff -u src/sys/dev/acpi/thinkpad_acpi.c:1.48 src/sys/dev/acpi/thinkpad_acpi.c:1.49
--- src/sys/dev/acpi/thinkpad_acpi.c:1.48	Sun May 17 11:32:51 2020
+++ src/sys/dev/acpi/thinkpad_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: thinkpad_acpi.c,v 1.48 2020/05/17 11:32:51 mlelstv Exp $ */
+/* $NetBSD: thinkpad_acpi.c,v 1.49 2021/01/29 15:49:55 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.48 2020/05/17 11:32:51 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.49 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -161,10 +161,10 @@ CFATTACH_DECL3_NEW(thinkpad, sizeof(thin
     thinkpad_match, thinkpad_attach, thinkpad_detach, NULL, NULL, NULL,
     DVF_DETACH_SHUTDOWN);
 
-static const char * const thinkpad_ids[] = {
-	"IBM0068",
-	"LEN0068",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "IBM0068" },
+	{ .compat = "LEN0068" },
+	DEVICE_COMPAT_EOL
 };
 
 static int
@@ -172,11 +172,10 @@ thinkpad_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = (struct acpi_attach_args *)opaque;
 	ACPI_INTEGER ver;
+	int ret;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	if (!acpi_match_hid(aa->aa_node->ad_devinfo, thinkpad_ids))
+	ret = acpi_compatible_match(aa, compat_data);
+	if (ret == 0)
 		return 0;
 
 	/* We only support hotkey version 0x0100 */
@@ -188,7 +187,7 @@ thinkpad_match(device_t parent, cfdata_t
 		return 0;
 
 	/* Cool, looks like we're good to go */
-	return 1;
+	return ret;
 }
 
 static void

Index: src/sys/dev/acpi/wmi/wmi_acpi.c
diff -u src/sys/dev/acpi/wmi/wmi_acpi.c:1.16 src/sys/dev/acpi/wmi/wmi_acpi.c:1.17
--- src/sys/dev/acpi/wmi/wmi_acpi.c:1.16	Sun Dec  3 17:34:50 2017
+++ src/sys/dev/acpi/wmi/wmi_acpi.c	Fri Jan 29 15:49:55 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: wmi_acpi.c,v 1.16 2017/12/03 17:34:50 bouyer Exp $	*/
+/*	$NetBSD: wmi_acpi.c,v 1.17 2021/01/29 15:49:55 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2009, 2010 Jukka Ruohonen <jruoho...@iki.fi>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.16 2017/12/03 17:34:50 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.17 2021/01/29 15:49:55 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -77,10 +77,10 @@ static ACPI_STATUS	acpi_wmi_enable_event
 static ACPI_STATUS	acpi_wmi_enable_collection(ACPI_HANDLE, const char *, bool);
 static bool		acpi_wmi_input(struct wmi_t *, uint8_t, uint8_t);
 
-const char * const acpi_wmi_ids[] = {
-	"PNP0C14",
-	"pnp0c14",
-	NULL
+static const struct device_compatible_entry compat_data[] = {
+	{ .compat = "PNP0C14" },
+	{ .compat = "pnp0c14" },
+	DEVICE_COMPAT_EOL
 };
 
 CFATTACH_DECL2_NEW(acpiwmi, sizeof(struct acpi_wmi_softc),
@@ -92,10 +92,7 @@ acpi_wmi_match(device_t parent, cfdata_t
 {
 	struct acpi_attach_args *aa = aux;
 
-	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
-		return 0;
-
-	return acpi_match_hid(aa->aa_node->ad_devinfo, acpi_wmi_ids);
+	return acpi_compatible_match(aa, compat_data);
 }
 
 static void

Reply via email to