hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/ethernet/mellanox/mlxsw/i2c.c
....@@ -47,6 +47,7 @@
4747 #define MLXSW_I2C_MBOX_SIZE_BITS 12
4848 #define MLXSW_I2C_ADDR_BUF_SIZE 4
4949 #define MLXSW_I2C_BLK_DEF 32
50
+#define MLXSW_I2C_BLK_MAX 100
5051 #define MLXSW_I2C_RETRY 5
5152 #define MLXSW_I2C_TIMEOUT_MSECS 5000
5253 #define MLXSW_I2C_MAX_DATA_SIZE 256
....@@ -428,7 +429,7 @@
428429 } else {
429430 /* No input mailbox is case of initialization query command. */
430431 reg_size = MLXSW_I2C_MAX_DATA_SIZE;
431
- num = reg_size / mlxsw_i2c->block_size;
432
+ num = DIV_ROUND_UP(reg_size, mlxsw_i2c->block_size);
432433
433434 if (mutex_lock_interruptible(&mlxsw_i2c->cmd.lock) < 0) {
434435 dev_err(&client->dev, "Could not acquire lock");
....@@ -576,7 +577,7 @@
576577 return -EOPNOTSUPP;
577578 }
578579
579
- mlxsw_i2c->block_size = max_t(u16, MLXSW_I2C_BLK_DEF,
580
+ mlxsw_i2c->block_size = min_t(u16, MLXSW_I2C_BLK_MAX,
580581 min_t(u16, quirks->max_read_len,
581582 quirks->max_write_len));
582583 } else {