summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/ichiic.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/sys/dev/pci/ichiic.c b/sys/dev/pci/ichiic.c
index 91f4b930222..09b6df456cd 100644
--- a/sys/dev/pci/ichiic.c
+++ b/sys/dev/pci/ichiic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ichiic.c,v 1.13 2006/02/05 21:59:01 grange Exp $ */
+/* $OpenBSD: ichiic.c,v 1.14 2006/02/12 10:23:19 grange Exp $ */
/*
* Copyright (c) 2005, 2006 Alexander Yurchenko <grange@openbsd.org>
@@ -202,16 +202,6 @@ ichiic_i2c_exec(void *cookie, i2c_op_t op, i2c_addr_t addr,
DPRINTF(("%s: exec: op %d, addr 0x%x, cmdlen %d, len %d, flags 0x%x\n",
sc->sc_dev.dv_xname, op, addr, cmdlen, len, flags));
- /* Acquire bus semaphore */
- for (retries = 100; retries > 0; retries--) {
- st = bus_space_read_1(sc->sc_iot, sc->sc_ioh, ICH_SMB_HS);
- if (!(st & ICH_SMB_HS_INUSE))
- break;
- DELAY(ICHIIC_DELAY);
- }
- if (st & ICH_SMB_HS_INUSE)
- return (1);
-
/* Wait for bus to be idle */
for (retries = 100; retries > 0; retries--) {
st = bus_space_read_1(sc->sc_iot, sc->sc_ioh, ICH_SMB_HS);
@@ -222,13 +212,13 @@ ichiic_i2c_exec(void *cookie, i2c_op_t op, i2c_addr_t addr,
DPRINTF(("%s: exec: st 0x%b\n", sc->sc_dev.dv_xname, st,
ICH_SMB_HS_BITS));
if (st & ICH_SMB_HS_BUSY)
- goto fail;
+ return (1);
if (cold || sc->sc_poll)
flags |= I2C_F_POLL;
if (!I2C_OP_STOP_P(op) || cmdlen > 1 || len > 2)
- goto fail;
+ return (1);
/* Setup transfer */
sc->sc_i2c_xfer.op = op;
@@ -312,12 +302,6 @@ timeout:
sc->sc_dev.dv_xname, st, ICH_SMB_HS_BITS);
bus_space_write_1(sc->sc_iot, sc->sc_ioh, ICH_SMB_HS, st);
return (1);
-
-fail:
- /* Release bus semaphore */
- bus_space_write_1(sc->sc_iot, sc->sc_ioh, ICH_SMB_HS,
- ICH_SMB_HS_INUSE);
- return (1);
}
int