Home | History | Annotate | Download | only in i2c

Lines Matching refs:iie

925 iic_ioctl_exec(struct iic_softc *sc, i2c_ioctl_exec_t *iie, int flag)
933 if (iie->iie_addr > I2C_MAX_ADDR)
935 if (iie->iie_cmdlen > I2C_EXEC_MAX_CMDLEN ||
936 iie->iie_buflen > I2C_EXEC_MAX_BUFLEN)
938 if (iie->iie_cmd != NULL && iie->iie_cmdlen == 0)
940 if (iie->iie_buf != NULL && iie->iie_buflen == 0)
942 if (I2C_OP_WRITE_P(iie->iie_op) && (flag & FWRITE) == 0)
950 if (iie->iie_cmd != NULL) {
951 cmd = kmem_alloc(iie->iie_cmdlen, KM_SLEEP);
952 error = copyin(iie->iie_cmd, cmd, iie->iie_cmdlen);
957 if (iie->iie_buf != NULL) {
958 buf = kmem_alloc(iie->iie_buflen, KM_SLEEP);
959 if (I2C_OP_WRITE_P(iie->iie_op)) {
960 error = copyin(iie->iie_buf, buf, iie->iie_buflen);
967 error = iic_exec(ic, iie->iie_op, iie->iie_addr, cmd, iie->iie_cmdlen,
968 buf, iie->iie_buflen, 0);
978 if (!error && iie->iie_buf != NULL && I2C_OP_READ_P(iie->iie_op))
979 error = copyout(buf, iie->iie_buf, iie->iie_buflen);
982 kmem_free(buf, iie->iie_buflen);
985 kmem_free(cmd, iie->iie_cmdlen);