]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
Translate iic hardware layer status values to errno return values.
authorian <ian@FreeBSD.org>
Sat, 10 Oct 2015 02:29:02 +0000 (02:29 +0000)
committerian <ian@FreeBSD.org>
Sat, 10 Oct 2015 02:29:02 +0000 (02:29 +0000)
sys/dev/iicbus/icee.c

index bb06aa36e11024d55d13a3e6c5038e3581710f2a..2f6e923c72e362935545df5e9fb55ae93b4f9aa3 100644 (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;