On Thu, Apr 26, 2012 at 01:37:19PM +0100, Mark Brown wrote: > Since there are uses for I2C_M_NOSTART which are much more sensible and > standard than most of the protocol mangling functionality (the main one > being gather writes to devices where something like a register address > needs to be inserted before a block of data) create a new I2C_FUNC_NOSTART > for this feature and update all the users to use it. > > In the case of regmap-i2c we remove the requirement for mangling as > I2C_M_NOSTART is the only mangling feature which is being used. > > Signed-off-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> In general, I like it. One thing below: > --- a/include/linux/i2c.h > +++ b/include/linux/i2c.h > @@ -540,7 +540,7 @@ struct i2c_msg { > __u16 flags; > #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ > #define I2C_M_RD 0x0001 /* read data, from slave to master */ > -#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_PROTOCOL_MANGLING */ > +#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */ > #define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */ > #define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ > #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ > @@ -568,6 +568,7 @@ struct i2c_msg { > #define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000 > #define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 /* I2C-like block xfer */ > #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */ > +#define I2C_FUNC_NOSTART 0x10000000 /* I2C_M_NOSTART */ In this file, the comment for MANGLING should be adapted, too. It says currently: #define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_NOSTART etc. */ NOSTART is now out of MANGLING. Also, I'd think the FUNC_NOSTART bit should be 0x08 and SMBUS_PEC 0x4000. This will be more intuitive, probably? Thanks, Wolfram -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Attachment:
signature.asc
Description: Digital signature