Hi Wolfram, On Fri, 2015-01-09 at 18:21 +0100, Wolfram Sang wrote: > > + */ > +struct i2c_adapter_quirks { > + u64 flags; > + int max_num_msgs; > + u16 max_write_len; > + u16 max_read_len; > + u16 max_comb_write_len; > + u16 max_comb_read_len; > +}; > + > +#define I2C_ADAPTER_QUIRK_COMB_WRITE_FIRST BIT(0) > +#define I2C_ADAPTER_QUIRK_COMB_READ_SECOND BIT(1) > +#define I2C_ADAPTER_QUIRK_COMB_WRITE_THEN_READ (I2C_ADAPTER_QUIRK_COMB_WRITE_FIRST | \ > + I2C_ADAPTER_QUIRK_COMB_READ_SECOND) > + > /* > * i2c_adapter is the structure used to identify a physical i2c bus along > * with the access algorithms necessary to access it. > @@ -472,6 +506,7 @@ struct i2c_adapter { > struct list_head userspace_clients; > > struct i2c_bus_recovery_info *bus_recovery_info; > + struct i2c_adapter_quirks *quirks; > }; > #define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev) > I suggest to add const. const struct i2c_adapter_quirks *quirks; also, in i2c-core.c, should modify: const struct i2c_adapter_quirks *q = adap->quirks;