diff options
| author | Andriy Gapon <avg@FreeBSD.org> | 2019-05-29 09:08:20 +0000 |
|---|---|---|
| committer | Andriy Gapon <avg@FreeBSD.org> | 2019-05-29 09:08:20 +0000 |
| commit | fec2f12ebdc35b3703360c1f99783f4d331e3d0a (patch) | |
| tree | 2cbabb41c3ffca7b4a37379d3caeff82d5783bd8 | |
| parent | 93a2d4c92f7b8008041cc5d6cf3052e7a6c106ff (diff) | |
Notes
| -rw-r--r-- | sys/dev/iicbus/iicbus.c | 6 | ||||
| -rw-r--r-- | sys/dev/iicbus/iicbus.h | 5 | ||||
| -rw-r--r-- | sys/dev/iicbus/iiconf.c | 10 |
3 files changed, 5 insertions, 16 deletions
diff --git a/sys/dev/iicbus/iicbus.c b/sys/dev/iicbus/iicbus.c index de30c0168901b..0795b99dcd691 100644 --- a/sys/dev/iicbus/iicbus.c +++ b/sys/dev/iicbus/iicbus.c @@ -194,9 +194,6 @@ iicbus_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) case IICBUS_IVAR_ADDR: *result = devi->addr; break; - case IICBUS_IVAR_NOSTOP: - *result = devi->nostop; - break; } return (0); } @@ -213,9 +210,6 @@ iicbus_write_ivar(device_t bus, device_t child, int which, uintptr_t value) if (devi->addr != 0) return (EINVAL); devi->addr = value; - case IICBUS_IVAR_NOSTOP: - devi->nostop = value; - break; } return (0); } diff --git a/sys/dev/iicbus/iicbus.h b/sys/dev/iicbus/iicbus.h index 018b25113d222..ec033d708aaa5 100644 --- a/sys/dev/iicbus/iicbus.h +++ b/sys/dev/iicbus/iicbus.h @@ -54,19 +54,16 @@ struct iicbus_ivar { uint32_t addr; struct resource_list rl; - bool nostop; }; enum { - IICBUS_IVAR_ADDR, /* Address or base address */ - IICBUS_IVAR_NOSTOP, /* nostop defaults */ + IICBUS_IVAR_ADDR /* Address or base address */ }; #define IICBUS_ACCESSOR(A, B, T) \ __BUS_ACCESSOR(iicbus, A, IICBUS, B, T) IICBUS_ACCESSOR(addr, ADDR, uint32_t) -IICBUS_ACCESSOR(nostop, NOSTOP, bool) #define IICBUS_LOCK(sc) mtx_lock(&(sc)->lock) #define IICBUS_UNLOCK(sc) mtx_unlock(&(sc)->lock) diff --git a/sys/dev/iicbus/iiconf.c b/sys/dev/iicbus/iiconf.c index 916baf2dba0cc..94ce3d18c70f8 100644 --- a/sys/dev/iicbus/iiconf.c +++ b/sys/dev/iicbus/iiconf.c @@ -427,7 +427,7 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) { int i, error, lenread, lenwrote, nkid, rpstart, addr; device_t *children, bus; - bool nostop, started; + bool started; if ((error = device_get_children(dev, &children, &nkid)) != 0) return (IIC_ERESOURCE); @@ -438,7 +438,6 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) bus = children[0]; rpstart = 0; free(children, M_TEMP); - nostop = iicbus_get_nostop(dev); started = false; for (i = 0, error = 0; i < nmsgs && error == 0; i++) { addr = msgs[i].slave; @@ -466,12 +465,11 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) if (error != 0) break; - if ((msgs[i].flags & IIC_M_NOSTOP) != 0 || - (nostop && i + 1 < nmsgs)) { - rpstart = 1; /* Next message gets repeated start */ - } else { + if (!(msgs[i].flags & IIC_M_NOSTOP)) { rpstart = 0; iicbus_stop(bus); + } else { + rpstart = 1; /* Next message gets repeated start */ } } if (error != 0 && started) |
