Messages in this thread | | | Date | Mon, 02 Feb 2015 11:26:23 +0100 | From | Lars-Peter Clausen <> | Subject | Re: [PATCH] regmap: Fix i2c word access when using SMBus access functions |
| |
On 02/02/2015 12:48 AM, Guenter Roeck wrote: [...] > static int regmap_i2c_write(void *context, const void *data, size_t count) > { > struct device *dev = context; > @@ -180,7 +216,10 @@ static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c, > else if (config->val_bits == 16 && config->reg_bits == 8 && > i2c_check_functionality(i2c->adapter, > I2C_FUNC_SMBUS_WORD_DATA)) > - return ®map_smbus_word; > + if (config->val_format_endian == REGMAP_ENDIAN_LITTLE)
This should probably use regmap_get_val_endian() and maybe also handle REGMAP_ENDIAN_NATIVE.
> + return ®map_smbus_word; > + else > + return ®map_smbus_word_swapped; > else if (config->val_bits == 8 && config->reg_bits == 8 && > i2c_check_functionality(i2c->adapter, > I2C_FUNC_SMBUS_BYTE_DATA)) >
| |