diff options
| -rw-r--r-- | drivers/i2c/busses/scx200_acb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c index 454086affaa1..ced309ff056f 100644 --- a/drivers/i2c/busses/scx200_acb.c +++ b/drivers/i2c/busses/scx200_acb.c | |||
| @@ -307,8 +307,12 @@ static s32 scx200_acb_smbus_xfer(struct i2c_adapter *adapter, | |||
| 307 | buffer = (u8 *)&cur_word; | 307 | buffer = (u8 *)&cur_word; |
| 308 | break; | 308 | break; |
| 309 | 309 | ||
| 310 | case I2C_SMBUS_BLOCK_DATA: | 310 | case I2C_SMBUS_I2C_BLOCK_DATA: |
| 311 | if (rw == I2C_SMBUS_READ) | ||
| 312 | data->block[0] = I2C_SMBUS_BLOCK_MAX; /* For now */ | ||
| 311 | len = data->block[0]; | 313 | len = data->block[0]; |
| 314 | if (len == 0 || len > I2C_SMBUS_BLOCK_MAX) | ||
| 315 | return -EINVAL; | ||
| 312 | buffer = &data->block[1]; | 316 | buffer = &data->block[1]; |
| 313 | break; | 317 | break; |
| 314 | 318 | ||
| @@ -372,7 +376,7 @@ static u32 scx200_acb_func(struct i2c_adapter *adapter) | |||
| 372 | { | 376 | { |
| 373 | return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | | 377 | return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | |
| 374 | I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | | 378 | I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | |
| 375 | I2C_FUNC_SMBUS_BLOCK_DATA; | 379 | I2C_FUNC_SMBUS_I2C_BLOCK; |
| 376 | } | 380 | } |
| 377 | 381 | ||
| 378 | /* For now, we only handle combined mode (smbus) */ | 382 | /* For now, we only handle combined mode (smbus) */ |
