> > > + if (msg->flags & I2C_M_RD) > > > + cmd |= I2C_CMD_READ; > > Since you support MANGLING, I'd think you can easily support > > I2C_M_REV_DIR_ADDR here, too? > > Hm, I don't really understand the purpose of that flag. From the docs: > > This toggles the Rd/Wr flag. That is, if you want to do a write, but > need to emit an Rd instead of a Wr, or vice versa, you set this > flag. For example: > S Addr Rd [A] Data [A] Data [A] ... [A] Data [A] P > > I don't think our hardware supports this type of operation. I'd think something like this should do: if (msg->flags & I2C_M_REV_DIR_ADDR) cmd ^= I2C_CMD_READ;
Attachment:
signature.asc
Description: PGP signature