summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authormlelstv <mlelstv@NetBSD.org>2021-06-13 09:48:04 +0000
committermlelstv <mlelstv@NetBSD.org>2021-06-13 09:48:04 +0000
commit4febe4741fddb19b3a50a7e4f5d8d8cded135d0b (patch)
treeca7aa2007b07626d70171ae8fdee6ae7a04e68c2 /sys/dev
parentac9b8f24526d8fe3a6c9538a97af6cee85ebac75 (diff)
iic_acquire_bus can fail
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/i2c/lm_i2c.c10
-rw-r--r--sys/dev/i2c/spdmem_i2c.c12
2 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/i2c/lm_i2c.c b/sys/dev/i2c/lm_i2c.c
index b651363d41b..dbbe0a7e77e 100644
--- a/sys/dev/i2c/lm_i2c.c
+++ b/sys/dev/i2c/lm_i2c.c
@@ -1,4 +1,4 @@
-/* $NetBSD: lm_i2c.c,v 1.6 2020/06/24 19:11:49 jdolecek Exp $ */
+/* $NetBSD: lm_i2c.c,v 1.7 2021/06/13 09:48:44 mlelstv Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lm_i2c.c,v 1.6 2020/06/24 19:11:49 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lm_i2c.c,v 1.7 2021/06/13 09:48:44 mlelstv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -119,7 +119,8 @@ lm_i2c_readreg(struct lm_softc *lmsc, int reg)
struct lm_i2c_softc *sc = (struct lm_i2c_softc *)lmsc;
uint8_t cmd, data;
- iic_acquire_bus(sc->sc_tag, 0);
+ if (iic_acquire_bus(sc->sc_tag, 0))
+ return 0;
cmd = reg;
iic_exec(sc->sc_tag, I2C_OP_READ_WITH_STOP,
@@ -137,7 +138,8 @@ lm_i2c_writereg(struct lm_softc *lmsc, int reg, uint8_t val)
struct lm_i2c_softc *sc = (struct lm_i2c_softc *)lmsc;
uint8_t cmd, data;
- iic_acquire_bus(sc->sc_tag, 0);
+ if (iic_acquire_bus(sc->sc_tag, 0))
+ return;
cmd = reg;
data = val;
diff --git a/sys/dev/i2c/spdmem_i2c.c b/sys/dev/i2c/spdmem_i2c.c
index 0e53cd86b24..1b191181b69 100644
--- a/sys/dev/i2c/spdmem_i2c.c
+++ b/sys/dev/i2c/spdmem_i2c.c
@@ -1,4 +1,4 @@
-/* $NetBSD: spdmem_i2c.c,v 1.21 2021/01/27 02:29:48 thorpej Exp $ */
+/* $NetBSD: spdmem_i2c.c,v 1.22 2021/06/13 09:48:04 mlelstv Exp $ */
/*
* Copyright (c) 2007 Nicolas Joly
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.21 2021/01/27 02:29:48 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.22 2021/06/13 09:48:04 mlelstv Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -107,7 +107,9 @@ spdmem_reset_page(struct spdmem_i2c_softc *sc)
reg = 0;
- iic_acquire_bus(sc->sc_tag, 0);
+ rv = iic_acquire_bus(sc->sc_tag, 0);
+ if (rv)
+ return rv;
/*
* Try to read byte 0 and 2. If it failed, it's not spdmem or a device
@@ -265,7 +267,9 @@ spdmem_i2c_read(struct spdmem_softc *softc, uint16_t addr, uint8_t *val)
reg = addr & 0xff;
- iic_acquire_bus(sc->sc_tag, 0);
+ rv = iic_acquire_bus(sc->sc_tag, 0);
+ if (rv)
+ return rv;
if (addr & 0x100) {
rv = iic_exec(sc->sc_tag, I2C_OP_WRITE_WITH_STOP, sc->sc_page1,