Commit 931abcdc authored by David S. Miller's avatar David S. Miller

Merge branch 'mlxsw-fixes'

Petr Machata says:

====================
mlxsw: Assorted fixes

This patchset contains several fixes for the mlxsw driver.

Patch #1 - Fixes buffer size in I2C mailbox buffer.
Patch #2 - Sets limitation of chunk size in I2C transaction.
Patch #3 - Fixes module label names based on MTCAP sensor counter
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 786c96e9 3fc134a0
...@@ -405,7 +405,8 @@ mlxsw_hwmon_module_temp_label_show(struct device *dev, ...@@ -405,7 +405,8 @@ mlxsw_hwmon_module_temp_label_show(struct device *dev,
container_of(attr, struct mlxsw_hwmon_attr, dev_attr); container_of(attr, struct mlxsw_hwmon_attr, dev_attr);
return sprintf(buf, "front panel %03u\n", return sprintf(buf, "front panel %03u\n",
mlxsw_hwmon_attr->type_index); mlxsw_hwmon_attr->type_index + 1 -
mlxsw_hwmon_attr->mlxsw_hwmon_dev->sensor_count);
} }
static ssize_t static ssize_t
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#define MLXSW_I2C_MBOX_SIZE_BITS 12 #define MLXSW_I2C_MBOX_SIZE_BITS 12
#define MLXSW_I2C_ADDR_BUF_SIZE 4 #define MLXSW_I2C_ADDR_BUF_SIZE 4
#define MLXSW_I2C_BLK_DEF 32 #define MLXSW_I2C_BLK_DEF 32
#define MLXSW_I2C_BLK_MAX 100
#define MLXSW_I2C_RETRY 5 #define MLXSW_I2C_RETRY 5
#define MLXSW_I2C_TIMEOUT_MSECS 5000 #define MLXSW_I2C_TIMEOUT_MSECS 5000
#define MLXSW_I2C_MAX_DATA_SIZE 256 #define MLXSW_I2C_MAX_DATA_SIZE 256
...@@ -444,7 +445,7 @@ mlxsw_i2c_cmd(struct device *dev, u16 opcode, u32 in_mod, size_t in_mbox_size, ...@@ -444,7 +445,7 @@ mlxsw_i2c_cmd(struct device *dev, u16 opcode, u32 in_mod, size_t in_mbox_size,
} else { } else {
/* No input mailbox is case of initialization query command. */ /* No input mailbox is case of initialization query command. */
reg_size = MLXSW_I2C_MAX_DATA_SIZE; reg_size = MLXSW_I2C_MAX_DATA_SIZE;
num = reg_size / mlxsw_i2c->block_size; num = DIV_ROUND_UP(reg_size, mlxsw_i2c->block_size);
if (mutex_lock_interruptible(&mlxsw_i2c->cmd.lock) < 0) { if (mutex_lock_interruptible(&mlxsw_i2c->cmd.lock) < 0) {
dev_err(&client->dev, "Could not acquire lock"); dev_err(&client->dev, "Could not acquire lock");
...@@ -653,7 +654,7 @@ static int mlxsw_i2c_probe(struct i2c_client *client) ...@@ -653,7 +654,7 @@ static int mlxsw_i2c_probe(struct i2c_client *client)
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
mlxsw_i2c->block_size = max_t(u16, MLXSW_I2C_BLK_DEF, mlxsw_i2c->block_size = min_t(u16, MLXSW_I2C_BLK_MAX,
min_t(u16, quirks->max_read_len, min_t(u16, quirks->max_read_len,
quirks->max_write_len)); quirks->max_write_len));
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment