[PATCH V19 3/7] i2c: tegra: fix maximum transfer size

From: Sowjanya Komatineni
Date: Tue Feb 12 2019 - 14:06:56 EST


Tegra186 and prior supports maximum 4K bytes per packet transfer
including 12 bytes of packet header.

This patch fixes max write length limit to account packet header
size for transfers.

Cc: stable@xxxxxxxxxxxxxxx # 4.4+

Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx>
Signed-off-by: Sowjanya Komatineni <skomatineni@xxxxxxxxxx>
---
[V19] : Splitted maximum transfer limit patch into 2 separate patches to
allow this fix for old Tegra chips and next patch in this series for
Tegra194.
[V18] : Using Max of SZ_64K (65536) size for dma buffer instead of 65535
[V16/V17] : I2C core max message size is 65535. So, max_read_len of 65535 is NOP.
Removed it leaving max_write_len
[V15] : This is new patch in this series.


drivers/i2c/busses/i2c-tegra.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index a46446dbc48a..036cab795426 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -901,7 +901,7 @@ static const struct i2c_algorithm tegra_i2c_algo = {
static const struct i2c_adapter_quirks tegra_i2c_quirks = {
.flags = I2C_AQ_NO_ZERO_LEN,
.max_read_len = 4096,
- .max_write_len = 4096,
+ .max_write_len = 4096 - 12,
};

static const struct i2c_adapter_quirks tegra194_i2c_quirks = {
--
2.7.4