Translate iic hardware layer status values to errno return values.

This commit is contained in:
Ian Lepore 2015-10-10 02:29:02 +00:00
parent d0b70953fb
commit b16c6d237b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289105

View File

@ -180,8 +180,10 @@ icee_read(struct cdev *dev, struct uio *uio, int ioflag)
for (i = 0; i < 2; i++)
msgs[i].slave = slave;
error = iicbus_transfer(sc->sc_dev, msgs, 2);
if (error)
if (error) {
error = iic2errno(error);
break;
}
error = uiomove(data, len, uio);
if (error)
break;
@ -239,16 +241,20 @@ icee_write(struct cdev *dev, struct uio *uio, int ioflag)
if (error)
break;
error = iicbus_transfer(sc->sc_dev, wr, 1);
if (error)
if (error) {
error = iic2errno(error);
break;
}
/* Read after write to wait for write-done. */
waitlimit = 10000;
rd[0].slave = slave;
do {
error = iicbus_transfer(sc->sc_dev, rd, 1);
} while (waitlimit-- > 0 && error != 0);
if (error)
if (error) {
error = iic2errno(error);
break;
}
}
ICEE_UNLOCK(sc);
return error;