diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/i2c/i2c.c | 13 | ||||
-rw-r--r-- | sys/dev/i2c/i2c_scan.c | 19 |
2 files changed, 17 insertions, 15 deletions
diff --git a/sys/dev/i2c/i2c.c b/sys/dev/i2c/i2c.c index be0a8dc710f..3db9c350972 100644 --- a/sys/dev/i2c/i2c.c +++ b/sys/dev/i2c/i2c.c @@ -1,4 +1,4 @@ -/* $OpenBSD: i2c.c,v 1.14 2006/02/26 20:24:46 deraadt Exp $ */ +/* $OpenBSD: i2c.c,v 1.15 2007/10/09 16:57:47 deraadt Exp $ */ /* $NetBSD: i2c.c,v 1.1 2003/09/30 00:35:31 thorpej Exp $ */ /* @@ -48,8 +48,6 @@ #define IICCF_ADDR 0 #define IICCF_SIZE 1 -#include "ipmi.h" - struct iic_softc { struct device sc_dev; i2c_tag_t sc_tag; @@ -130,15 +128,6 @@ iic_attach(struct device *parent, struct device *self, void *aux) sc->sc_tag = iba->iba_tag; -#if NIPMI > 0 - extern int ipmi_enabled; - - if (ipmi_enabled) { - printf(": disabled to avoid ipmi0 interactions\n"); - return; - } -#endif - printf("\n"); /* diff --git a/sys/dev/i2c/i2c_scan.c b/sys/dev/i2c/i2c_scan.c index 8ca6428feb2..3571ea4c933 100644 --- a/sys/dev/i2c/i2c_scan.c +++ b/sys/dev/i2c/i2c_scan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: i2c_scan.c,v 1.101 2007/10/07 14:26:41 deraadt Exp $ */ +/* $OpenBSD: i2c_scan.c,v 1.102 2007/10/09 16:57:47 deraadt Exp $ */ /* * Copyright (c) 2005 Theo de Raadt <deraadt@openbsd.org> @@ -20,6 +20,8 @@ * I2C bus scanning. */ +#include "ipmi.h" + #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> @@ -62,12 +64,14 @@ struct iicprobelist probe_addrs_eeprom[] = { char *iic_probe_sensor(struct device *, struct i2cbus_attach_args *, u_int8_t); char *iic_probe_eeprom(struct device *, struct i2cbus_attach_args *, u_int8_t); +#define PFLAG_SENSOR 1 static struct { struct iicprobelist *pl; char *(*probe)(struct device *, struct i2cbus_attach_args *, u_int8_t); + int flags; } probes[] = { - { probe_addrs_sensor, iic_probe_sensor }, - { probe_addrs_eeprom, iic_probe_eeprom }, + { probe_addrs_sensor, iic_probe_sensor, PFLAG_SENSOR }, + { probe_addrs_eeprom, iic_probe_eeprom, 0 }, { NULL, NULL } }; @@ -902,6 +906,15 @@ iic_scan(struct device *self, struct i2cbus_attach_args *iba) bzero(ignore_addrs, sizeof(ignore_addrs)); for (i = 0; probes[i].probe; i++) { +#if NIPMI > 0 + extern int ipmi_enabled; + + if ((probes[i].flags & PFLAG_SENSOR) && ipmi_enabled) { + printf("%s: skipping sensors to avoid ipmi0 interactions\n", + self->dv_xname); + continue; + } +#endif pl = probes[i].pl; for (j = 0; pl[j].start && pl[j].end; j++) { for (addr = pl[j].start; addr <= pl[j].end; addr++) { |