Commit cde4ff84 authored by Jean Delvare's avatar Jean Delvare Committed by Greg Kroah-Hartman

i2c-i801: Don't use the block buffer for I2C block writes

commit c074c39d upstream.

Experience has shown that the block buffer can only be used for SMBus
(not I2C) block transactions, even though the datasheet doesn't
mention this limitation.
Reported-by: default avatarFelix Rubinstein <felixru@gmail.com>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Cc: Oleg Ryjkov <oryjkov@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 93c676ec
...@@ -415,9 +415,11 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write, ...@@ -415,9 +415,11 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
data->block[0] = 32; /* max for SMBus block reads */ data->block[0] = 32; /* max for SMBus block reads */
} }
/* Experience has shown that the block buffer can only be used for
SMBus (not I2C) block transactions, even though the datasheet
doesn't mention this limitation. */
if ((i801_features & FEATURE_BLOCK_BUFFER) if ((i801_features & FEATURE_BLOCK_BUFFER)
&& !(command == I2C_SMBUS_I2C_BLOCK_DATA && command != I2C_SMBUS_I2C_BLOCK_DATA
&& read_write == I2C_SMBUS_READ)
&& i801_set_block_buffer_mode() == 0) && i801_set_block_buffer_mode() == 0)
result = i801_block_transaction_by_block(data, read_write, result = i801_block_transaction_by_block(data, read_write,
hwpec); hwpec);
......
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