diff mbox series

[net-next,v2,4/6] i2c: npcm7xx: Allow 255 byte block SMBus transfers

Message ID 20211111015548.2892849-5-matt@codeconstruct.com.au
State Superseded
Headers show
Series MCTP I2C driver | expand

Commit Message

Matt Johnston Nov. 11, 2021, 1:55 a.m. UTC
255 byte support has been tested on a npcm750 board

Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
---
 drivers/i2c/busses/i2c-npcm7xx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Tali Perry Nov. 11, 2021, 8:07 a.m. UTC | #1
On Thu, Nov 11, 2021 at 3:56 AM Matt Johnston <matt@codeconstruct.com.au> wrote:
>
> 255 byte support has been tested on a npcm750 board
>
> Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
> ---
>  drivers/i2c/busses/i2c-npcm7xx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c
> index 2ad166355ec9..6d60f65add85 100644
> --- a/drivers/i2c/busses/i2c-npcm7xx.c
> +++ b/drivers/i2c/busses/i2c-npcm7xx.c
> @@ -1399,7 +1399,7 @@ static void npcm_i2c_irq_master_handler_read(struct npcm_i2c *bus)
>                 if (bus->read_block_use) {
>                         /* first byte in block protocol is the size: */
>                         data = npcm_i2c_rd_byte(bus);
> -                       data = clamp_val(data, 1, I2C_SMBUS_BLOCK_MAX);
> +                       data = clamp_val(data, 1, I2C_SMBUS_V3_BLOCK_MAX);
>                         bus->rd_size = data + block_extra_bytes_size;
>                         bus->rd_buf[bus->rd_ind++] = data;
>
> @@ -2187,6 +2187,7 @@ static u32 npcm_i2c_functionality(struct i2c_adapter *adap)
>                I2C_FUNC_SMBUS_EMUL |
>                I2C_FUNC_SMBUS_BLOCK_DATA |
>                I2C_FUNC_SMBUS_PEC |
> +              I2C_FUNC_SMBUS_V3_BLOCK |
>                I2C_FUNC_SLAVE;
>  }
>
> --
> 2.32.0
>
Thanks for the patch, Matt !

Reviewed-by: Tali Perry <tali.perry1@gmail.com>
diff mbox series

Patch

diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c
index 2ad166355ec9..6d60f65add85 100644
--- a/drivers/i2c/busses/i2c-npcm7xx.c
+++ b/drivers/i2c/busses/i2c-npcm7xx.c
@@ -1399,7 +1399,7 @@  static void npcm_i2c_irq_master_handler_read(struct npcm_i2c *bus)
 		if (bus->read_block_use) {
 			/* first byte in block protocol is the size: */
 			data = npcm_i2c_rd_byte(bus);
-			data = clamp_val(data, 1, I2C_SMBUS_BLOCK_MAX);
+			data = clamp_val(data, 1, I2C_SMBUS_V3_BLOCK_MAX);
 			bus->rd_size = data + block_extra_bytes_size;
 			bus->rd_buf[bus->rd_ind++] = data;
 
@@ -2187,6 +2187,7 @@  static u32 npcm_i2c_functionality(struct i2c_adapter *adap)
 	       I2C_FUNC_SMBUS_EMUL |
 	       I2C_FUNC_SMBUS_BLOCK_DATA |
 	       I2C_FUNC_SMBUS_PEC |
+	       I2C_FUNC_SMBUS_V3_BLOCK |
 	       I2C_FUNC_SLAVE;
 }