[PATCH 26/31] hwmon: (pmbus/q54sj108a2) use 4-argument i2c_smbus_read_block_data()
From: Dmitry Torokhov
Date: Sat Oct 24 2026 - 23:13:24 EST
Pass the buffer size to i2c_smbus_read_block_data() in
q54sj108a2_debugfs_read() and q54sj108a2_probe().
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---
drivers/hwmon/pmbus/q54sj108a2.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c
index ecac405d7536..8ce1824249e7 100644
--- a/drivers/hwmon/pmbus/q54sj108a2.c
+++ b/drivers/hwmon/pmbus/q54sj108a2.c
@@ -120,22 +120,26 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
rc = snprintf(data, 3, "%02x", rc);
break;
case Q54SJ108A2_DEBUGFS_MFR_ID:
- rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_ID, data);
+ rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_ID,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
break;
case Q54SJ108A2_DEBUGFS_MFR_MODEL:
- rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_MODEL, data);
+ rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_MODEL,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
break;
case Q54SJ108A2_DEBUGFS_MFR_REVISION:
- rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_REVISION, data);
+ rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_REVISION,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
break;
case Q54SJ108A2_DEBUGFS_MFR_LOCATION:
- rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_LOCATION, data);
+ rc = i2c_smbus_read_block_data(psu->client, PMBUS_MFR_LOCATION,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
break;
@@ -147,7 +151,8 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
rc = snprintf(data, 3, "%02x", rc);
break;
case Q54SJ108A2_DEBUGFS_BLACKBOX_READ:
- rc = i2c_smbus_read_block_data(psu->client, READ_HISTORY_EVENTS, data);
+ rc = i2c_smbus_read_block_data(psu->client, READ_HISTORY_EVENTS,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
@@ -156,7 +161,8 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
out = data_char;
break;
case Q54SJ108A2_DEBUGFS_FLASH_KEY:
- rc = i2c_smbus_read_block_data(psu->client, PMBUS_FLASH_KEY_WRITE, data);
+ rc = i2c_smbus_read_block_data(psu->client, PMBUS_FLASH_KEY_WRITE,
+ I2C_SMBUS_BLOCK_MAX, data);
if (rc < 0)
return rc;
@@ -297,7 +303,8 @@ static int q54sj108a2_probe(struct i2c_client *client)
chip_id = (enum chips)(uintptr_t)i2c_get_match_data(client);
- ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, buf);
+ ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID,
+ sizeof(buf) - 1, buf);
if (ret < 0) {
dev_err(&client->dev, "Failed to read Manufacturer ID\n");
return ret;
@@ -311,7 +318,8 @@ static int q54sj108a2_probe(struct i2c_client *client)
/*
* The chips support reading PMBUS_MFR_MODEL.
*/
- ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, buf);
+ ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL,
+ sizeof(buf) - 1, buf);
if (ret < 0) {
dev_err(dev, "Failed to read Manufacturer Model\n");
return ret;
@@ -326,7 +334,8 @@ static int q54sj108a2_probe(struct i2c_client *client)
return -ENODEV;
}
- ret = i2c_smbus_read_block_data(client, PMBUS_MFR_REVISION, buf);
+ ret = i2c_smbus_read_block_data(client, PMBUS_MFR_REVISION,
+ sizeof(buf) - 1, buf);
if (ret < 0) {
dev_err(dev, "Failed to read Manufacturer Revision\n");
return ret;
--
2.56.0.257.gf7497c7d27-goog