Re: [PATCH] regmap: Fix i2c word access when using SMBus access functions

From: Guenter Roeck
Date: Tue Feb 03 2015 - 09:22:04 EST


On 02/03/2015 03:42 AM, Mark Brown wrote:
On Mon, Feb 02, 2015 at 06:30:02AM -0800, Guenter Roeck wrote:
On 02/02/2015 03:56 AM, Mark Brown wrote:

Yes, we really ought to handle _NATIVE too (though the chances of it
being used with I2C are minimal, it's mostly for MMIO). This also feels

Well, we do; it is handled similar to the big endian case with the current
code. Do you think it should be handled differently ? If yes, how ?

Perhaps it just needs to be more explicit about how it's handling native
endian? I didn't spot it.

Thinking about it, we should actually reject requests for _NATIVE. SMBus
16 bit accesses are either little endian or big endian.

like it's something that should be being handled further up the stack in
the serialization code but given that there's direct functions for this
in the smbus code perhaps it's better here. Or perhaps the smbus
support ought to be transitioned to use the bus interface and set
reg_write() and reg_read() operations now that we can do that, it seems
like a better fit though it might break compatibility with wierd devices.

I thought about that, but since the smbus functions perform endianness
conversion it would mean that I would have to undo that conversion just
to have it done again.

No, the whole point is that by doing this you avoid any endianness
conversions or formatting in the framework at all so you can just use
the smbus functions to handle the formatting.

Ah, guess I got confused. The SMBus accesses are already using reg_read
and reg_write.

Thanks,
Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/