Module Name: src
Committed By: thorpej
Date: Tue Jun 26 06:03:57 UTC 2018
Modified Files:
src/sys/arch/macppc/dev: deq.c smusat.c
src/sys/arch/sparc64/dev: pcf8591_envctrl.c
src/sys/dev/i2c: adadc.c adm1021.c adm1026.c as3722.c at24cxx.c
axp20x.c axp22x.c axppmic.c dbcool.c ds1307.c dstemp.c fcu.c
ihidev.c lm75.c lm87.c max77620.c pcf8563.c sy8106a.c tcagpio.c
tcakp.c titemp.c tsl256x.c
src/sys/kern: subr_autoconf.c
src/sys/sys: device.h
Log Message:
In my quest to make device_compatible_entry (and associated goo)
super-general, it turns out I also made it a little to cumbersome
to use (if my tired fingers are any indication). So, this is a
course-correction -- one string per entry (like of_compat_data,
which it will soon replace), and remove the over-verbose macros.
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/macppc/dev/deq.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/macppc/dev/smusat.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/sparc64/dev/pcf8591_envctrl.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/i2c/adadc.c src/sys/dev/i2c/axp22x.c \
src/sys/dev/i2c/fcu.c src/sys/dev/i2c/max77620.c \
src/sys/dev/i2c/tsl256x.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/i2c/adm1021.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/i2c/adm1026.c src/sys/dev/i2c/ihidev.c
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/i2c/as3722.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/i2c/at24cxx.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/i2c/axp20x.c
cvs rdiff -u -r1.13 -r1.14 src/sys/dev/i2c/axppmic.c
cvs rdiff -u -r1.51 -r1.52 src/sys/dev/i2c/dbcool.c
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/i2c/ds1307.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/i2c/dstemp.c src/sys/dev/i2c/sy8106a.c \
src/sys/dev/i2c/tcagpio.c
cvs rdiff -u -r1.32 -r1.33 src/sys/dev/i2c/lm75.c
cvs rdiff -u -r1.9 -r1.10 src/sys/dev/i2c/lm87.c
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/i2c/pcf8563.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/i2c/tcakp.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/i2c/titemp.c
cvs rdiff -u -r1.261 -r1.262 src/sys/kern/subr_autoconf.c
cvs rdiff -u -r1.154 -r1.155 src/sys/sys/device.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/macppc/dev/deq.c
diff -u src/sys/arch/macppc/dev/deq.c:1.15 src/sys/arch/macppc/dev/deq.c:1.16
--- src/sys/arch/macppc/dev/deq.c:1.15 Mon Jun 18 17:07:07 2018
+++ src/sys/arch/macppc/dev/deq.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: deq.c,v 1.15 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: deq.c,v 1.16 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (C) 2005 Michael Lorenz
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: deq.c,v 1.15 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: deq.c,v 1.16 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -52,18 +52,13 @@ static int deq_match(device_t, struct cf
CFATTACH_DECL_NEW(deq, sizeof(struct deq_softc),
deq_match, deq_attach, NULL, NULL);
-static const char * deq_compats[] = {
- "deq",
- "tas3004",
- "pcm3052",
- "cs8416",
- "codec",
- NULL
-};
-
-static const struct device_compatible_entry deq_compat_data[] = {
- DEVICE_COMPAT_ENTRY(deq_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "deq", 0 },
+ { "tas3004", 0 },
+ { "pcm3052", 0 },
+ { "cs8416", 0 },
+ { "codec", 0 },
+ { NULL, 0 }
};
int
@@ -72,7 +67,7 @@ deq_match(device_t parent, struct cfdata
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, cf, deq_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
/* This driver is direct-config only. */
Index: src/sys/arch/macppc/dev/smusat.c
diff -u src/sys/arch/macppc/dev/smusat.c:1.5 src/sys/arch/macppc/dev/smusat.c:1.6
--- src/sys/arch/macppc/dev/smusat.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/arch/macppc/dev/smusat.c Tue Jun 26 06:03:57 2018
@@ -105,15 +105,10 @@ static int smusat_sysctl_sensor_value(SY
CFATTACH_DECL_NEW(smusat, sizeof(struct smusat_softc),
smusat_match, smusat_attach, NULL, NULL);
-static const char * smusat_compats[] = {
- "sat",
- "smu-sat",
- NULL
-};
-
-static const struct device_compatible_entry smusat_compat_data[] = {
- DEVICE_COMPAT_ENTRY(smusat_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "sat", 0 },
+ { "smu-sat", 0 },
+ { NULL, 0 }
};
static int
@@ -122,7 +117,7 @@ smusat_match(device_t parent, struct cfd
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, cf, smusat_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
if (ia->ia_addr == 0x58)
Index: src/sys/arch/sparc64/dev/pcf8591_envctrl.c
diff -u src/sys/arch/sparc64/dev/pcf8591_envctrl.c:1.8 src/sys/arch/sparc64/dev/pcf8591_envctrl.c:1.9
--- src/sys/arch/sparc64/dev/pcf8591_envctrl.c:1.8 Mon Jun 18 17:07:07 2018
+++ src/sys/arch/sparc64/dev/pcf8591_envctrl.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: pcf8591_envctrl.c,v 1.8 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: pcf8591_envctrl.c,v 1.9 2018/06/26 06:03:57 thorpej Exp $ */
/* $OpenBSD: pcf8591_envctrl.c,v 1.6 2007/10/25 21:17:20 kettenis Exp $ */
/*
@@ -19,7 +19,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcf8591_envctrl.c,v 1.8 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcf8591_envctrl.c,v 1.9 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -69,14 +69,9 @@ static void ecadc_get_limits(struct sysm
CFATTACH_DECL_NEW(ecadc, sizeof(struct ecadc_softc),
ecadc_match, ecadc_attach, NULL, NULL);
-static const char * ecadc_compats[] = {
- "ecadc",
- NULL
-};
-
-static const struct device_compatible_entry ecadc_compat_data[] = {
- DEVICE_COMPAT_ENTRY(ecadc_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ecadc", 0 },
+ { NULL, 0 }
};
static int
@@ -85,7 +80,7 @@ ecadc_match(device_t parent, cfdata_t cf
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, cf, ecadc_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
/* This driver is direct-config only. */
Index: src/sys/dev/i2c/adadc.c
diff -u src/sys/dev/i2c/adadc.c:1.5 src/sys/dev/i2c/adadc.c:1.6
--- src/sys/dev/i2c/adadc.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/adadc.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: adadc.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: adadc.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2018 Michael Lorenz
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adadc.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adadc.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -93,14 +93,9 @@ static void adadc_sensors_refresh(struct
CFATTACH_DECL_NEW(adadc, sizeof(struct adadc_softc),
adadc_match, adadc_attach, NULL, NULL);
-static const char * adadc_compats[] = {
- "ad7417",
- NULL
-};
-
-static const struct device_compatible_entry adadc_compat_data[] = {
- DEVICE_COMPAT_ENTRY(adadc_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ad7417", 0 },
+ { NULL, 0 }
};
/* calibaration table from Darwin via Linux */
@@ -112,7 +107,7 @@ adadc_match(device_t parent, cfdata_t ma
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, adadc_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/*
Index: src/sys/dev/i2c/axp22x.c
diff -u src/sys/dev/i2c/axp22x.c:1.5 src/sys/dev/i2c/axp22x.c:1.6
--- src/sys/dev/i2c/axp22x.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/axp22x.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: axp22x.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: axp22x.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2014 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: axp22x.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: axp22x.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -40,14 +40,9 @@ __KERNEL_RCSID(0, "$NetBSD: axp22x.c,v 1
#include <dev/sysmon/sysmonvar.h>
-static const char *compatible[] = {
- "x-powers,axp221",
- NULL
-};
-
-static const struct device_compatible_entry axp22x_compat_data[] = {
- DEVICE_COMPAT_ENTRY(compatible),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "x-powers,axp221", 0 },
+ { NULL, 0 }
};
#define AXP_TEMP_MON_REG 0x56 /* 2 bytes */
@@ -76,7 +71,7 @@ axp22x_match(device_t parent, cfdata_t m
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, axp22x_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/* This device is direct-config only. */
Index: src/sys/dev/i2c/fcu.c
diff -u src/sys/dev/i2c/fcu.c:1.5 src/sys/dev/i2c/fcu.c:1.6
--- src/sys/dev/i2c/fcu.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/fcu.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: fcu.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: fcu.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2018 Michael Lorenz
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fcu.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fcu.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -115,14 +115,9 @@ static void fcu_adjust(void *);
CFATTACH_DECL_NEW(fcu, sizeof(struct fcu_softc),
fcu_match, fcu_attach, NULL, NULL);
-static const char * fcu_compats[] = {
- "fcu",
- NULL
-};
-
-static const struct device_compatible_entry fcu_compat_data[] = {
- DEVICE_COMPAT_ENTRY(fcu_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "fcu", 0 },
+ { NULL, 0 }
};
static int
@@ -131,7 +126,7 @@ fcu_match(device_t parent, cfdata_t matc
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, fcu_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
if (ia->ia_addr == 0x2f)
Index: src/sys/dev/i2c/max77620.c
diff -u src/sys/dev/i2c/max77620.c:1.5 src/sys/dev/i2c/max77620.c:1.6
--- src/sys/dev/i2c/max77620.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/max77620.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: max77620.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: max77620.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: max77620.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: max77620.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -66,14 +66,9 @@ struct max77620_pin {
bool pin_actlo;
};
-static const char * max77620_compats[] = {
- "maxim,max77620",
- NULL
-};
-
-static const struct device_compatible_entry max77620_compat_data[] = {
- DEVICE_COMPAT_ENTRY(max77620_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "maxim,max77620", 0 },
+ { NULL, 0 }
};
static uint8_t
@@ -265,8 +260,7 @@ max77620_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, max77620_compat_data,
- &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
return 0;
Index: src/sys/dev/i2c/tsl256x.c
diff -u src/sys/dev/i2c/tsl256x.c:1.5 src/sys/dev/i2c/tsl256x.c:1.6
--- src/sys/dev/i2c/tsl256x.c:1.5 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/tsl256x.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: tsl256x.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: tsl256x.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2018 Jason R. Thorpe
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tsl256x.c,v 1.5 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tsl256x.c,v 1.6 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -78,15 +78,10 @@ static void tsllux_attach(device_t, devi
CFATTACH_DECL_NEW(tsllux, sizeof(struct tsllux_softc),
tsllux_match, tsllux_attach, NULL, NULL);
-static const char *tsllux_compats[] = {
- "amstaos,tsl2560",
- "amstaos,tsl2561",
- NULL
-};
-
static const struct device_compatible_entry tsllux_compat_data[] = {
- DEVICE_COMPAT_ENTRY(tsllux_compats),
- DEVICE_COMPAT_TERMINATOR
+ { "amstaos,tsl2560", 0 },
+ { "amstaos,tsl2561", 0 },
+ { NULL, 0 }
};
static int tsllux_read1(struct tsllux_softc *, uint8_t, uint8_t *);
Index: src/sys/dev/i2c/adm1021.c
diff -u src/sys/dev/i2c/adm1021.c:1.18 src/sys/dev/i2c/adm1021.c:1.19
--- src/sys/dev/i2c/adm1021.c:1.18 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/adm1021.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: adm1021.c,v 1.18 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: adm1021.c,v 1.19 2018/06/26 06:03:57 thorpej Exp $ */
/* $OpenBSD: adm1021.c,v 1.27 2007/06/24 05:34:35 dlg Exp $ */
/*
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adm1021.c,v 1.18 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adm1021.c,v 1.19 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -151,16 +151,11 @@ CFATTACH_DECL_NEW(admtemp, sizeof(struct
admtemp_match, admtemp_attach, NULL, NULL);
/* XXX: add flags for compats to admtemp_setflags() */
-static const char * admtemp_compats[] = {
- "i2c-max1617",
- "max6642",
- "max6690",
- NULL
-};
-
-static const struct device_compatible_entry admtemp_compat_data[] = {
- DEVICE_COMPAT_ENTRY(admtemp_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "i2c-max1617", 0 },
+ { "max6642", 0 },
+ { "max6690", 0 },
+ { NULL, 0 }
};
int
@@ -169,7 +164,7 @@ admtemp_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, admtemp_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/*
Index: src/sys/dev/i2c/adm1026.c
diff -u src/sys/dev/i2c/adm1026.c:1.4 src/sys/dev/i2c/adm1026.c:1.5
--- src/sys/dev/i2c/adm1026.c:1.4 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/adm1026.c Tue Jun 26 06:03:57 2018
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adm1026.c,v 1.4 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adm1026.c,v 1.5 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -122,14 +122,9 @@ static int adm1026_write_reg(struct adm1
CFATTACH_DECL_NEW(adm1026hm, sizeof(struct adm1026_softc),
adm1026_match, adm1026_attach, adm1026_detach, NULL);
-static const char * adm1026_compats[] = {
- "i2c-adm1026",
- NULL
-};
-
-static const struct device_compatible_entry adm1026_compat_data[] = {
- DEVICE_COMPAT_ENTRY(adm1026_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "i2c-adm1026", 0 },
+ { NULL, 0 }
};
static int
@@ -143,7 +138,7 @@ adm1026_match(device_t parent, cfdata_t
sc.sc_address = ia->ia_addr;
sc.sc_iic_flags = 0;
- if (iic_use_direct_match(ia, cf, adm1026_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
if ((ia->ia_addr & ADM1026_ADDRMASK) == ADM1026_ADDR &&
Index: src/sys/dev/i2c/ihidev.c
diff -u src/sys/dev/i2c/ihidev.c:1.4 src/sys/dev/i2c/ihidev.c:1.5
--- src/sys/dev/i2c/ihidev.c:1.4 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/ihidev.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ihidev.c,v 1.4 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: ihidev.c,v 1.5 2018/06/26 06:03:57 thorpej Exp $ */
/* $OpenBSD ihidev.c,v 1.13 2017/04/08 02:57:23 deraadt Exp $ */
/*-
@@ -54,7 +54,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ihidev.c,v 1.4 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ihidev.c,v 1.5 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -120,14 +120,9 @@ static int ihidev_maxrepid(void *, int);
static int ihidev_print(void *, const char *);
static int ihidev_submatch(device_t, cfdata_t, const int *, void *);
-static const char *ihidev_compats[] = {
- "hid-over-i2c",
- NULL
-};
-
-static const struct device_compatible_entry ihidev_compat_data[] = {
- DEVICE_COMPAT_ENTRY(ihidev_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "hid-over-i2c", 0 },
+ { NULL, 0 }
};
static int
@@ -136,7 +131,7 @@ ihidev_match(device_t parent, cfdata_t m
struct i2c_attach_args * const ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, ihidev_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return I2C_MATCH_DIRECT_COMPATIBLE;
return 0;
Index: src/sys/dev/i2c/as3722.c
diff -u src/sys/dev/i2c/as3722.c:1.14 src/sys/dev/i2c/as3722.c:1.15
--- src/sys/dev/i2c/as3722.c:1.14 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/as3722.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: as3722.c,v 1.14 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: as3722.c,v 1.15 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -29,7 +29,7 @@
#include "opt_fdt.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: as3722.c,v 1.14 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: as3722.c,v 1.15 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -222,14 +222,9 @@ CFATTACH_DECL_NEW(as3722reg, sizeof(stru
as3722reg_match, as3722reg_attach, NULL, NULL);
#endif
-static const char * as3722_compats[] = {
- "ams,as3722",
- NULL
-};
-
-static const struct device_compatible_entry as3722_compat_data[] = {
- DEVICE_COMPAT_ENTRY(as3722_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ams,as3722", 0 },
+ { NULL, 0 }
};
static int
@@ -239,7 +234,7 @@ as3722_match(device_t parent, cfdata_t m
uint8_t reg, id1;
int error, match_result;
- if (iic_use_direct_match(ia, match, as3722_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
if (ia->ia_addr != AS3722_I2C_ADDR)
Index: src/sys/dev/i2c/at24cxx.c
diff -u src/sys/dev/i2c/at24cxx.c:1.27 src/sys/dev/i2c/at24cxx.c:1.28
--- src/sys/dev/i2c/at24cxx.c:1.27 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/at24cxx.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: at24cxx.c,v 1.27 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: at24cxx.c,v 1.28 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.27 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.28 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -111,14 +111,6 @@ const struct cdevsw seeprom_cdevsw = {
static int seeprom_wait_idle(struct seeprom_softc *);
-static const char * seeprom_compats[] = {
- "i2c-at24c64",
- "i2c-at34c02",
- "atmel,24c02",
- "atmel,24c16",
- NULL
-};
-
static const struct seeprom_size {
const char *name;
int size;
@@ -127,9 +119,13 @@ static const struct seeprom_size {
{ "atmel,24c16", 2048 },
};
-static const struct device_compatible_entry seeprom_compat_data[] = {
- DEVICE_COMPAT_ENTRY(seeprom_compats),
- DEVICE_COMPAT_TERMINATOR
+/* XXXJRT collapse seeprom_size stuff into compat_data; see also ofw code */
+static const struct device_compatible_entry compat_data[] = {
+ { "i2c-at24c64", 0 },
+ { "i2c-at34c02", 0 },
+ { "atmel,24c02", 0 },
+ { "atmel,24c16", 0 },
+ { NULL, 0 }
};
static int
@@ -138,7 +134,7 @@ seeprom_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, cf, seeprom_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
if ((ia->ia_addr & AT24CXX_ADDRMASK) == AT24CXX_ADDR)
Index: src/sys/dev/i2c/axp20x.c
diff -u src/sys/dev/i2c/axp20x.c:1.12 src/sys/dev/i2c/axp20x.c:1.13
--- src/sys/dev/i2c/axp20x.c:1.12 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/axp20x.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: axp20x.c,v 1.12 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: axp20x.c,v 1.13 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2014-2017 Jared McNeill <[email protected]>
@@ -29,7 +29,7 @@
#include "opt_fdt.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: axp20x.c,v 1.12 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: axp20x.c,v 1.13 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -214,14 +214,9 @@ static void axp20x_fdt_attach(struct axp
CFATTACH_DECL_NEW(axp20x, sizeof(struct axp20x_softc),
axp20x_match, axp20x_attach, NULL, NULL);
-static const char * compatible[] = {
- "x-powers,axp209",
- NULL
-};
-
-static const struct device_compatible_entry axp20x_compat_data[] = {
- DEVICE_COMPAT_ENTRY(compatible),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "x-powers,axp209", 0 },
+ { NULL, 0 }
};
static int
@@ -230,7 +225,7 @@ axp20x_match(device_t parent, cfdata_t m
struct i2c_attach_args * const ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, axp20x_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/* This device is direct-config only. */
Index: src/sys/dev/i2c/axppmic.c
diff -u src/sys/dev/i2c/axppmic.c:1.13 src/sys/dev/i2c/axppmic.c:1.14
--- src/sys/dev/i2c/axppmic.c:1.13 Tue Jun 26 04:32:35 2018
+++ src/sys/dev/i2c/axppmic.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: axppmic.c,v 1.13 2018/06/26 04:32:35 thorpej Exp $ */
+/* $NetBSD: axppmic.c,v 1.14 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2014-2018 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: axppmic.c,v 1.13 2018/06/26 04:32:35 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: axppmic.c,v 1.14 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -264,7 +264,6 @@ struct axpreg_attach_args {
i2c_addr_t reg_addr;
};
-static const char *axp803_compatstrings[] = { "x-powers,axp803", NULL };
static const struct axppmic_config axp803_config = {
.name = "AXP803",
.controls = axp803_ctrls,
@@ -283,8 +282,6 @@ static const struct axppmic_config axp80
.chargestirq = AXPPMIC_IRQ(4, __BITS(1,0)),
};
-static const char *axp805_compatstrings[] = { "x-powers,axp805",
- "x-powers,axp806", NULL };
static const struct axppmic_config axp805_config = {
.name = "AXP805/806",
.controls = axp805_ctrls,
@@ -293,10 +290,11 @@ static const struct axppmic_config axp80
.poklirq = AXPPMIC_IRQ(2, __BIT(0)),
};
-static const struct device_compatible_entry axppmic_compat_data[] = {
- DEVICE_COMPAT_ENTRY_WITH_DATA(axp803_compatstrings, &axp803_config),
- DEVICE_COMPAT_ENTRY_WITH_DATA(axp805_compatstrings, &axp805_config),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "x-powers,axp803", (uintptr_t)&axp803_config },
+ { "x-powers,axp805", (uintptr_t)&axp805_config },
+ { "x-powers,axp806", (uintptr_t)&axp805_config },
+ { NULL, 0 }
};
static int
@@ -682,7 +680,7 @@ axppmic_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, axppmic_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/* This device is direct-config only. */
@@ -702,9 +700,9 @@ axppmic_attach(device_t parent, device_t
uint32_t irq_mask;
void *ih;
- (void) iic_compatible_match(ia, axppmic_compat_data, &dce);
+ (void) iic_compatible_match(ia, compat_data, &dce);
KASSERT(dce != NULL);
- c = DEVICE_COMPAT_ENTRY_GET_PTR(dce);
+ c = (void *)dce->data;
sc->sc_dev = self;
sc->sc_i2c = ia->ia_tag;
Index: src/sys/dev/i2c/dbcool.c
diff -u src/sys/dev/i2c/dbcool.c:1.51 src/sys/dev/i2c/dbcool.c:1.52
--- src/sys/dev/i2c/dbcool.c:1.51 Fri Jun 22 15:48:57 2018
+++ src/sys/dev/i2c/dbcool.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: dbcool.c,v 1.51 2018/06/22 15:48:57 martin Exp $ */
+/* $NetBSD: dbcool.c,v 1.52 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.51 2018/06/22 15:48:57 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.52 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -731,17 +731,12 @@ static char dbcool_cur_behav[16];
CFATTACH_DECL_NEW(dbcool, sizeof(struct dbcool_softc),
dbcool_match, dbcool_attach, dbcool_detach, NULL);
-static const char * dbcool_compats[] = {
- "i2c-adm1031",
- "adt7467",
- "adt7460",
- "adm1030",
- NULL
-};
-
-static const struct device_compatible_entry dbcool_compat_data[] = {
- DEVICE_COMPAT_ENTRY(dbcool_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "i2c-adm1031", 0 },
+ { "adt7467", 0 },
+ { "adt7460", 0 },
+ { "adm1030", 0 },
+ { NULL, 0 }
};
int
@@ -756,7 +751,7 @@ dbcool_match(device_t parent, cfdata_t c
dc.dc_writereg = dbcool_writereg;
int match_result;
- if (iic_use_direct_match(ia, cf, dbcool_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
if ((ia->ia_addr & DBCOOL_ADDRMASK) != DBCOOL_ADDR)
Index: src/sys/dev/i2c/ds1307.c
diff -u src/sys/dev/i2c/ds1307.c:1.28 src/sys/dev/i2c/ds1307.c:1.29
--- src/sys/dev/i2c/ds1307.c:1.28 Tue Jun 26 04:32:35 2018
+++ src/sys/dev/i2c/ds1307.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ds1307.c,v 1.28 2018/06/26 04:32:35 thorpej Exp $ */
+/* $NetBSD: ds1307.c,v 1.29 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.28 2018/06/26 04:32:35 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.29 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -75,7 +75,6 @@ struct dsrtc_model {
#define DSRTC_FLAG_CLOCK_HOLD_REVERSED 0x20
};
-static const char *ds1307_compats[] = { "dallas,ds1307", "maxim,ds1307", NULL };
static const i2c_addr_t ds1307_valid_addrs[] = { DS1307_ADDR, 0 };
static const struct dsrtc_model ds1307_model = {
.dm_valid_addrs = ds1307_valid_addrs,
@@ -89,7 +88,6 @@ static const struct dsrtc_model ds1307_m
.dm_flags = DSRTC_FLAG_BCD | DSRTC_FLAG_CLOCK_HOLD,
};
-static const char *ds1339_compats[] = { "dallas,ds1339", "maxim,ds1339", NULL };
static const struct dsrtc_model ds1339_model = {
.dm_valid_addrs = ds1307_valid_addrs,
.dm_model = 1339,
@@ -98,7 +96,6 @@ static const struct dsrtc_model ds1339_m
.dm_flags = DSRTC_FLAG_BCD,
};
-static const char *ds1340_compats[] = { "dallas,ds1340", "maxim,ds1340", NULL };
static const struct dsrtc_model ds1340_model = {
.dm_valid_addrs = ds1307_valid_addrs,
.dm_model = 1340,
@@ -109,7 +106,6 @@ static const struct dsrtc_model ds1340_m
.dm_flags = DSRTC_FLAG_BCD,
};
-static const char *ds1672_compats[] = { "dallas,ds1672", "maxim,ds1672", NULL };
static const struct dsrtc_model ds1672_model = {
.dm_valid_addrs = ds1307_valid_addrs,
.dm_model = 1672,
@@ -120,7 +116,6 @@ static const struct dsrtc_model ds1672_m
.dm_flags = 0,
};
-static const char *ds3231_compats[] = { "dallas,ds3231", "maxim,ds3231", NULL };
static const struct dsrtc_model ds3231_model = {
.dm_valid_addrs = ds1307_valid_addrs,
.dm_model = 3231,
@@ -129,7 +124,6 @@ static const struct dsrtc_model ds3231_m
.dm_flags = DSRTC_FLAG_BCD | DSRTC_FLAG_TEMP,
};
-static const char *ds3232_compats[] = { "dallas,ds3232", "maxim,ds3232", NULL };
static const struct dsrtc_model ds3232_model = {
.dm_valid_addrs = ds1307_valid_addrs,
.dm_model = 3232,
@@ -145,8 +139,6 @@ static const struct dsrtc_model ds3232_m
.dm_flags = DSRTC_FLAG_BCD,
};
- /* XXX vendor prefix */
-static const char *mcp7940_compats[] = { "microchip,mcp7940", NULL };
static const i2c_addr_t mcp7940_valid_addrs[] = { MCP7940_ADDR, 0 };
static const struct dsrtc_model mcp7940_model = {
.dm_valid_addrs = mcp7940_valid_addrs,
@@ -163,15 +155,28 @@ static const struct dsrtc_model mcp7940_
DSRTC_FLAG_VBATEN | DSRTC_FLAG_CLOCK_HOLD_REVERSED,
};
-static const struct device_compatible_entry dsrtc_compat_data[] = {
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds1307_compats, &ds1307_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds1339_compats, &ds1339_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds1340_compats, &ds1340_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds1672_compats, &ds1672_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds3231_compats, &ds3231_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(ds3232_compats, &ds3232_model),
- DEVICE_COMPAT_ENTRY_WITH_DATA(mcp7940_compats, &mcp7940_model),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "dallas,ds1307", (uintptr_t)&ds1307_model },
+ { "maxim,ds1307", (uintptr_t)&ds1307_model },
+
+ { "dallas,ds1339", (uintptr_t)&ds1339_model },
+ { "maxim,ds1339", (uintptr_t)&ds1339_model },
+
+ { "dallas,ds1340", (uintptr_t)&ds1340_model },
+ { "maxim,ds1340", (uintptr_t)&ds1340_model },
+
+ { "dallas,ds1672", (uintptr_t)&ds1672_model },
+ { "maxim,ds1672", (uintptr_t)&ds1672_model },
+
+ { "dallas,ds3231", (uintptr_t)&ds3231_model },
+ { "maxim,ds3231", (uintptr_t)&ds3231_model },
+
+ { "dallas,ds3232", (uintptr_t)&ds3232_model },
+ { "maxim,ds3232", (uintptr_t)&ds3232_model },
+
+ { "microchip,mcp7940", (uintptr_t)&mcp7940_model },
+
+ { NULL, 0 }
};
struct dsrtc_softc {
@@ -234,9 +239,8 @@ dsrtc_model_by_number(u_int model)
if (model == 0)
return &ds1307_model;
- for (dce = dsrtc_compat_data;
- DEVICE_COMPAT_ENTRY_IS_TERMINATOR(dce) == false; dce++) {
- dm = DEVICE_COMPAT_ENTRY_GET_PTR(dce);
+ for (dce = compat_data; dce->compat != NULL; dce++) {
+ dm = (void *)dce->data;
if (dm->dm_model == model)
return dm;
}
@@ -249,8 +253,8 @@ dsrtc_model_by_compat(const struct i2c_a
const struct dsrtc_model *dm = NULL;
const struct device_compatible_entry *dce;
- if (iic_compatible_match(ia, dsrtc_compat_data, &dce))
- dm = DEVICE_COMPAT_ENTRY_GET_PTR(dce);
+ if (iic_compatible_match(ia, compat_data, &dce))
+ dm = (void *)dce->data;
return dm;
}
@@ -273,7 +277,7 @@ dsrtc_match(device_t parent, cfdata_t cf
const struct dsrtc_model *dm;
int match_result;
- if (iic_use_direct_match(ia, cf, dsrtc_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
dm = dsrtc_model_by_number(cf->cf_flags & 0xffff);
Index: src/sys/dev/i2c/dstemp.c
diff -u src/sys/dev/i2c/dstemp.c:1.3 src/sys/dev/i2c/dstemp.c:1.4
--- src/sys/dev/i2c/dstemp.c:1.3 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/dstemp.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: dstemp.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: dstemp.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2018 Michael Lorenz
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dstemp.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dstemp.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -72,14 +72,9 @@ static void dstemp_sensors_refresh(struc
CFATTACH_DECL_NEW(dstemp, sizeof(struct dstemp_softc),
dstemp_match, dstemp_attach, NULL, NULL);
-static const char * dstemp_compats[] = {
- "ds1631",
- NULL
-};
-
-static const struct device_compatible_entry dstemp_compat_data[] = {
- DEVICE_COMPAT_ENTRY(dstemp_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ds1631", 0 },
+ { NULL, 0 }
};
static int
@@ -88,7 +83,7 @@ dstemp_match(device_t parent, cfdata_t m
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, dstemp_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
if ((ia->ia_addr & 0xf8) == 0x48)
Index: src/sys/dev/i2c/sy8106a.c
diff -u src/sys/dev/i2c/sy8106a.c:1.3 src/sys/dev/i2c/sy8106a.c:1.4
--- src/sys/dev/i2c/sy8106a.c:1.3 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/sy8106a.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sy8106a.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: sy8106a.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sy8106a.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sy8106a.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -59,14 +59,9 @@ struct sy8106a_softc {
u_int sc_ramp_delay;
};
-static const char * compatible[] = {
- "silergy,sy8106a",
- NULL
-};
-
-static const struct device_compatible_entry sy8106a_compat_data[] = {
- DEVICE_COMPAT_ENTRY(compatible),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "silergy,sy8106a", 0 },
+ { NULL, 0 }
};
static uint8_t
@@ -192,7 +187,7 @@ sy8106a_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, sy8106a_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
return 0;
Index: src/sys/dev/i2c/tcagpio.c
diff -u src/sys/dev/i2c/tcagpio.c:1.3 src/sys/dev/i2c/tcagpio.c:1.4
--- src/sys/dev/i2c/tcagpio.c:1.3 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/tcagpio.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: tcagpio.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: tcagpio.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcagpio.c,v 1.3 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcagpio.c,v 1.4 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -68,14 +68,9 @@ struct tcagpio_pin {
bool pin_actlo;
};
-static const char * compatible[] = {
- "ti,tca9539",
- NULL
-};
-
-static const struct device_compatible_entry tcagpio_compat_data[] = {
- DEVICE_COMPAT_ENTRY(compatible),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ti,tca9539", 0 },
+ { NULL, 0 }
};
static uint8_t
@@ -253,7 +248,7 @@ tcagpio_match(device_t parent, cfdata_t
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, tcagpio_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
return 0;
Index: src/sys/dev/i2c/lm75.c
diff -u src/sys/dev/i2c/lm75.c:1.32 src/sys/dev/i2c/lm75.c:1.33
--- src/sys/dev/i2c/lm75.c:1.32 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/lm75.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: lm75.c,v 1.32 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: lm75.c,v 1.33 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lm75.c,v 1.32 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lm75.c,v 1.33 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -101,19 +101,14 @@ static void lmtemp_setlim_lm77(struct sy
static void lmtemp_setup_sysctl(struct lmtemp_softc *);
static int sysctl_lm75_temp(SYSCTLFN_ARGS);
-static const char * lmtemp_compats[] = {
- "i2c-lm75",
- "ds1775",
+static const struct device_compatible_entry compat_data[] = {
+ { "i2c-lm75", 0 },
+ { "ds1775", 0 },
/*
* see XXX in _attach() below: add code once non-lm75 matches are
* added here!
*/
- NULL
-};
-
-static const struct device_compatible_entry lmtemp_compat_data[] = {
- DEVICE_COMPAT_ENTRY(lmtemp_compats),
- DEVICE_COMPAT_TERMINATOR
+ { NULL, 0 }
};
enum {
@@ -153,7 +148,7 @@ lmtemp_match(device_t parent, cfdata_t c
struct i2c_attach_args *ia = aux;
int i, match_result;
- if (iic_use_direct_match(ia, cf, lmtemp_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
/*
Index: src/sys/dev/i2c/lm87.c
diff -u src/sys/dev/i2c/lm87.c:1.9 src/sys/dev/i2c/lm87.c:1.10
--- src/sys/dev/i2c/lm87.c:1.9 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/lm87.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: lm87.c,v 1.9 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: lm87.c,v 1.10 2018/06/26 06:03:57 thorpej Exp $ */
/* $OpenBSD: lm87.c,v 1.20 2008/11/10 05:19:48 cnst Exp $ */
/*
@@ -18,7 +18,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lm87.c,v 1.9 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lm87.c,v 1.10 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -135,18 +135,13 @@ void lmenv_refresh(struct sysmon_envsys
CFATTACH_DECL_NEW(lmenv, sizeof(struct lmenv_softc),
lmenv_match, lmenv_attach, NULL, NULL);
-static const char * lmenv_compats[] = {
- "lm87",
- "lm87cimt",
- "adm9240",
- "lm81",
- "ds1780",
- NULL
-};
-
-static const struct device_compatible_entry lmenv_compat_data[] = {
- DEVICE_COMPAT_ENTRY(lmenv_compats),
- DEVICE_COMPAT_TERMINATOR,
+static const struct device_compatible_entry compat_data[] = {
+ { "lm87", 0 },
+ { "lm87cimt", 0 },
+ { "adm9240", 0 },
+ { "lm81", 0 },
+ { "ds1780", 0 },
+ { NULL, 0 }
};
int
@@ -156,7 +151,7 @@ lmenv_match(device_t parent, cfdata_t ma
u_int8_t cmd, val;
int error, i, match_result;
- if (iic_use_direct_match(ia, match, lmenv_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
/*
Index: src/sys/dev/i2c/pcf8563.c
diff -u src/sys/dev/i2c/pcf8563.c:1.10 src/sys/dev/i2c/pcf8563.c:1.11
--- src/sys/dev/i2c/pcf8563.c:1.10 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/pcf8563.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: pcf8563.c,v 1.10 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: pcf8563.c,v 1.11 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 2011 Jonathan A. Kollasch
@@ -32,7 +32,7 @@
#endif
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.10 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.11 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -48,15 +48,10 @@ __KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v
#include <dev/fdt/fdtvar.h>
#endif
-static const char *compatible[] = {
- "nxp,pcf8563",
- "pcf8563rtc",
- NULL
-};
-
-static const struct device_compatible_entry pcf8563rtc_compat_data[] = {
- DEVICE_COMPAT_ENTRY(compatible),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "nxp,pcf8563", 0 },
+ { "pcf8563rtc", 0 },
+ { NULL, 0 }
};
struct pcf8563rtc_softc {
@@ -83,7 +78,7 @@ pcf8563rtc_match(device_t parent, cfdata
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, cf, pcf8563rtc_compat_data, &match_result))
+ if (iic_use_direct_match(ia, cf, compat_data, &match_result))
return match_result;
/* indirect config - check typical address */
Index: src/sys/dev/i2c/tcakp.c
diff -u src/sys/dev/i2c/tcakp.c:1.8 src/sys/dev/i2c/tcakp.c:1.9
--- src/sys/dev/i2c/tcakp.c:1.8 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/tcakp.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: tcakp.c,v 1.8 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: tcakp.c,v 1.9 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -29,7 +29,7 @@
#include "opt_fdt.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcakp.c,v 1.8 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcakp.c,v 1.9 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -113,14 +113,9 @@ static int tcakp_write(struct tcakp_soft
CFATTACH_DECL_NEW(tcakp, sizeof(struct tcakp_softc),
tcakp_match, tcakp_attach, NULL, NULL);
-static const char * tcakp_compats[] = {
- "ti,tca8418",
- NULL
-};
-
-static const struct device_compatible_entry tcakp_compat_data[] = {
- DEVICE_COMPAT_ENTRY(tcakp_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ti,tca8418", 0 },
+ { NULL, 0 }
};
static u_int
@@ -323,7 +318,7 @@ tcakp_match(device_t parent, cfdata_t ma
struct i2c_attach_args *ia = aux;
int match_result;
- if (iic_use_direct_match(ia, match, tcakp_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
if (ia->ia_addr == 0x34)
Index: src/sys/dev/i2c/titemp.c
diff -u src/sys/dev/i2c/titemp.c:1.6 src/sys/dev/i2c/titemp.c:1.7
--- src/sys/dev/i2c/titemp.c:1.6 Mon Jun 18 17:07:07 2018
+++ src/sys/dev/i2c/titemp.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: titemp.c,v 1.6 2018/06/18 17:07:07 thorpej Exp $ */
+/* $NetBSD: titemp.c,v 1.7 2018/06/26 06:03:57 thorpej Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: titemp.c,v 1.6 2018/06/18 17:07:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: titemp.c,v 1.7 2018/06/26 06:03:57 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -84,14 +84,9 @@ static int titemp_read(struct titemp_sof
CFATTACH_DECL_NEW(titemp, sizeof(struct titemp_softc),
titemp_match, titemp_attach, NULL, NULL);
-static const char * titemp_compats[] = {
- "ti,tmp451",
- NULL
-};
-
-static const struct device_compatible_entry titemp_compat_data[] = {
- DEVICE_COMPAT_ENTRY(titemp_compats),
- DEVICE_COMPAT_TERMINATOR
+static const struct device_compatible_entry compat_data[] = {
+ { "ti,tmp451", 0 },
+ { NULL, 0 }
};
static int
@@ -101,7 +96,7 @@ titemp_match(device_t parent, cfdata_t m
uint8_t mfid;
int error, match_result;
- if (iic_use_direct_match(ia, match, titemp_compat_data, &match_result))
+ if (iic_use_direct_match(ia, match, compat_data, &match_result))
return match_result;
if (ia->ia_addr != 0x4c)
Index: src/sys/kern/subr_autoconf.c
diff -u src/sys/kern/subr_autoconf.c:1.261 src/sys/kern/subr_autoconf.c:1.262
--- src/sys/kern/subr_autoconf.c:1.261 Tue Jun 26 04:32:35 2018
+++ src/sys/kern/subr_autoconf.c Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_autoconf.c,v 1.261 2018/06/26 04:32:35 thorpej Exp $ */
+/* $NetBSD: subr_autoconf.c,v 1.262 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.261 2018/06/26 04:32:35 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.262 2018/06/26 06:03:57 thorpej Exp $");
#ifdef _KERNEL_OPT
#include "opt_ddb.h"
@@ -2275,29 +2275,6 @@ device_find_by_driver_unit(const char *n
}
/*
- * device_compatible_entry_matches:
- *
- * Helper function to determine if a device_compatible_entry
- * contains a match for the specified "compatible" string.
- */
-static bool
-device_compatible_entry_matches(const struct device_compatible_entry *dce,
- const char *compatible)
-{
- const char **cpp = DEVICE_COMPAT_ENTRY_GET_STRINGS(dce);
-
- if (dce == NULL || cpp == NULL)
- return false;
-
- for (; *cpp != NULL; cpp++) {
- if (strcmp(*cpp, compatible) == 0)
- return true;
- }
-
- return false;
-}
-
-/*
* device_compatible_match:
*
* Match a driver's "compatible" data against a device's
@@ -2324,10 +2301,8 @@ device_compatible_match(const char **dev
for (i = 0, match_weight = ndevice_compats - 1;
i < ndevice_compats;
i++, match_weight--) {
- for (dce = driver_compats;
- DEVICE_COMPAT_ENTRY_IS_TERMINATOR(dce) == false; dce++) {
- if (device_compatible_entry_matches(dce,
- device_compats[i])) {
+ for (dce = driver_compats; dce->compat != NULL; dce++) {
+ if (strcmp(dce->compat, device_compats[i]) == 0) {
KASSERT(match_weight >= 0);
if (matching_entryp)
*matching_entryp = dce;
Index: src/sys/sys/device.h
diff -u src/sys/sys/device.h:1.154 src/sys/sys/device.h:1.155
--- src/sys/sys/device.h:1.154 Tue Jun 26 04:32:35 2018
+++ src/sys/sys/device.h Tue Jun 26 06:03:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: device.h,v 1.154 2018/06/26 04:32:35 thorpej Exp $ */
+/* $NetBSD: device.h,v 1.155 2018/06/26 06:03:57 thorpej Exp $ */
/*
* Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -124,27 +124,9 @@ typedef struct cfattach *cfattach_t;
#if defined(_KERNEL) || defined(_KMEMUSER)
struct device_compatible_entry {
- const char ** dce_compat_strings;
- union {
- uintptr_t dceu_val;
- const void *dceu_ptr;
- } dce_un;
-};
-#define DEVICE_COMPAT_ENTRY_WITH_DATA(strings, opaque) \
- { .dce_compat_strings = (strings), \
- .dce_un.dceu_val = (uintptr_t)(opaque) }
-
-#define DEVICE_COMPAT_ENTRY(strings) \
- DEVICE_COMPAT_ENTRY_WITH_DATA(strings, 0)
-
-#define DEVICE_COMPAT_TERMINATOR \
- { .dce_compat_strings = NULL }
-
-#define DEVICE_COMPAT_ENTRY_GET_STRINGS(_dce) ((_dce)->dce_compat_strings)
-#define DEVICE_COMPAT_ENTRY_GET_NUM(_dce) ((_dce)->dce_un.dceu_val)
-#define DEVICE_COMPAT_ENTRY_GET_PTR(_dce) ((_dce)->dce_un.dceu_ptr)
-#define DEVICE_COMPAT_ENTRY_IS_TERMINATOR(_dce) \
- (((_dce) == NULL || (_dce)->dce_compat_strings == NULL) ? true : false)
+ const char *compat;
+ uintptr_t data;
+};
struct device_lock {
int dvl_nwait;