summaryrefslogtreecommitdiffstats
path: root/sys/dev/i2c
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2016-04-23 09:40:28 +0000
committerkettenis <kettenis@openbsd.org>2016-04-23 09:40:28 +0000
commit51cf21f2e07bba27fbddf27513612915b4d18b9c (patch)
tree0f8a4e109f7eacd67a9c8173f531f678b11d2488 /sys/dev/i2c
parentremove errant Pp; (diff)
downloadwireguard-openbsd-51cf21f2e07bba27fbddf27513612915b4d18b9c.tar.xz
wireguard-openbsd-51cf21f2e07bba27fbddf27513612915b4d18b9c.zip
Print a meaningful interrupt string for i2c devices.
Diffstat (limited to 'sys/dev/i2c')
-rw-r--r--sys/dev/i2c/i2cvar.h5
-rw-r--r--sys/dev/i2c/ihidev.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/i2c/i2cvar.h b/sys/dev/i2c/i2cvar.h
index 7f63349db12..bf9d06647ba 100644
--- a/sys/dev/i2c/i2cvar.h
+++ b/sys/dev/i2c/i2cvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: i2cvar.h,v 1.15 2016/04/10 16:43:17 kettenis Exp $ */
+/* $OpenBSD: i2cvar.h,v 1.16 2016/04/23 09:40:28 kettenis Exp $ */
/* $NetBSD: i2cvar.h,v 1.1 2003/09/30 00:35:31 thorpej Exp $ */
/*
@@ -93,6 +93,7 @@ typedef struct i2c_controller {
void *(*ic_intr_establish)(void *, void *, int, int (*)(void *),
void *, const char *);
+ const char *(*ic_intr_string)(void *, void *);
} *i2c_tag_t;
/* Used to attach the i2c framework to the controller. */
@@ -158,6 +159,8 @@ int iic_smbus_receive_byte(i2c_tag_t, i2c_addr_t, uint8_t *, int);
#define iic_intr_establish(ic, ih, level, func, arg, name) \
(*(ic)->ic_intr_establish)((ic)->ic_cookie, (ih), (level), \
(func), (arg), (name))
+#define iic_intr_string(ic, ih) \
+ (*(ic)->ic_intr_string)((ic)->ic_cookie, (ih))
void iic_ignore_addr(u_int8_t addr);
diff --git a/sys/dev/i2c/ihidev.c b/sys/dev/i2c/ihidev.c
index 57724b4003d..a416e34abec 100644
--- a/sys/dev/i2c/ihidev.c
+++ b/sys/dev/i2c/ihidev.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ihidev.c,v 1.11 2016/04/10 16:43:17 kettenis Exp $ */
+/* $OpenBSD: ihidev.c,v 1.12 2016/04/23 09:40:28 kettenis Exp $ */
/*
* HID-over-i2c driver
*
@@ -108,9 +108,8 @@ ihidev_attach(struct device *parent, struct device *self, void *aux)
sc->sc_addr = ia->ia_addr;
sc->sc_hid_desc_addr = ia->ia_size;
- /* XXX print proper interrupt string */
if (ia->ia_intr)
- printf(": interrupt");
+ printf(" %s", iic_intr_string(sc->sc_tag, ia->ia_intr));
if (ihidev_hid_command(sc, I2C_HID_CMD_DESCR, NULL) ||
ihidev_hid_desc_parse(sc)) {