From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755313AbbBBK0m (ORCPT ); Mon, 2 Feb 2015 05:26:42 -0500 Received: from smtp-out-232.synserver.de ([212.40.185.232]:1052 "EHLO smtp-out-232.synserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754028AbbBBK0i (ORCPT ); Mon, 2 Feb 2015 05:26:38 -0500 X-SynServer-TrustedSrc: 1 X-SynServer-AuthUser: lars@metafoo.de X-SynServer-PPID: 25811 Message-ID: <54CF50CF.7040601@metafoo.de> Date: Mon, 02 Feb 2015 11:26:23 +0100 From: Lars-Peter Clausen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 MIME-Version: 1.0 To: Guenter Roeck , Mark Brown CC: Robert Rosengren , linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Jean Delvare Subject: Re: [PATCH] regmap: Fix i2c word access when using SMBus access functions References: <1422834481-6936-1-git-send-email-linux@roeck-us.net> In-Reply-To: <1422834481-6936-1-git-send-email-linux@roeck-us.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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)) >