Because I want to clarify I2C_M_RECV len usage, this series updates the
documentation and some of its users. Patch 1 refactors the whole
documentation of 'i2c_msg', so all usage of I2C_M_* flags and their
conditions hopefully become clearer. Patch 2+3 remove some obvious
boilerplate in the UAPI headers while here. Patch 4 is a driver fix I
found while working on this series. Patch 5 introduces a new convenience
macro to enable SMBus transfers which need I2C_M_RECV_LEN. Then, some
drivers use the new macro, sometimes to remove boilerplate, sometimes
because these SMBus transfers have been forgotten before.
This series is the first part of a larger work to extend I2C_M_RECV_LEN
to allow larger transfer sizes (as specified in the SMBus 3.0 standard)
and to enable this on Renesas R-Car hardware.
Looking forward to comments and/or reviews; the driver patches are only
build-tested.
Happy hacking,
Wolfram
Wolfram Sang (8):
i2c: refactor documentation of struct i2c_msg
i2c: remove licence boilerplate from main UAPI header
i2c: remove licence boilerplate from i2c-dev UAPI header
i2c: octeon: check correct size of maximum RECV_LEN packet
i2c: uapi: add macro to describe support for all SMBus transfers
i2c: algo: bit: use new macro to specifiy capabilities
i2c: qup: advertise SMBus transfers using RECV_LEN
i2c: s3c2410: advertise SMBus transfers using RECV_LEN
drivers/i2c/algos/i2c-algo-bit.c | 4 +-
drivers/i2c/busses/i2c-octeon-core.c | 2 +-
drivers/i2c/busses/i2c-qup.c | 2 +-
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
include/uapi/linux/i2c-dev.h | 25 ++----
include/uapi/linux/i2c.h | 128 ++++++++++++++-------------
6 files changed, 76 insertions(+), 87 deletions(-)
--
2.29.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
This driver implements I2C_M_RECV_LEN, so it can advertise the SMBus
transfers needing it. This also enables client devices to check for the
RECV_LEN capability.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 3eafe0eb3e4c..62a903fbe912 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -781,7 +781,7 @@ static int s3c24xx_i2c_xfer(struct i2c_adapter *adap,
/* declare our i2c functionality */
static u32 s3c24xx_i2c_func(struct i2c_adapter *adap)
{
- return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_NOSTART |
+ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL_ALL | I2C_FUNC_NOSTART |
I2C_FUNC_PROTOCOL_MANGLING;
}
--
2.29.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sat, Jan 09, 2021 at 01:43:04PM +0100, Wolfram Sang wrote:
Because I want to clarify I2C_M_RECV len usage, this series updates the
documentation and some of its users. Patch 1 refactors the whole
documentation of 'i2c_msg', so all usage of I2C_M_* flags and their
conditions hopefully become clearer. Patch 2+3 remove some obvious
boilerplate in the UAPI headers while here. Patch 4 is a driver fix I
found while working on this series. Patch 5 introduces a new convenience
macro to enable SMBus transfers which need I2C_M_RECV_LEN. Then, some
drivers use the new macro, sometimes to remove boilerplate, sometimes
because these SMBus transfers have been forgotten before.
This series is the first part of a larger work to extend I2C_M_RECV_LEN
to allow larger transfer sizes (as specified in the SMBus 3.0 standard)
and to enable this on Renesas R-Car hardware.
Looking forward to comments and/or reviews; the driver patches are only
build-tested.
Happy hacking,
Wolfram
Wolfram Sang (8):
i2c: refactor documentation of struct i2c_msg
i2c: remove licence boilerplate from main UAPI header
i2c: remove licence boilerplate from i2c-dev UAPI header
i2c: octeon: check correct size of maximum RECV_LEN packet
i2c: uapi: add macro to describe support for all SMBus transfers
i2c: algo: bit: use new macro to specifiy capabilities
i2c: qup: advertise SMBus transfers using RECV_LEN
i2c: s3c2410: advertise SMBus transfers using RECV_LEN
drivers/i2c/algos/i2c-algo-bit.c | 4 +-
drivers/i2c/busses/i2c-octeon-core.c | 2 +-
drivers/i2c/busses/i2c-qup.c | 2 +-
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
Applied to for-next, thanks!