[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1902201616290.8597@fox.voss.local>
Date: Wed, 20 Feb 2019 16:18:04 +0100 (CET)
From: Nikolaus Voss <nv@...n.de>
To: Guenter Roeck <linux@...ck-us.net>
cc: Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv2] usb: typec: tps6598x: handle block writes separately
with plain-I2C adapters
On Wed, 20 Feb 2019, Guenter Roeck wrote:
> On 2/20/19 4:57 AM, Nikolaus Voss wrote:
>> Commit 1a2f474d328f handles block _reads_ separately with plain-I2C
>> adapters, but the problem described with regmap-i2c not handling
>> SMBus block transfers (i.e. read and writes) correctly also exists
>> with writes.
>>
>> As workaround, this patch adds a block write function the same way
>> 1a2f474d328f adds a block read function.
>>
>> Fixes: 1a2f474d328f ("usb: typec: tps6598x: handle block reads separately
>> with plain-I2C adapters")
>> Fixes: 0a4c005bd171 ("usb: typec: driver for TI TPS6598x USB Power Delivery
>> controllers")
>> Signed-off-by: Nikolaus Voss <nikolaus.voss@...wensteinmedical.de>
>> ---
>> v2: fix tps6598x_exec_cmd also
>> ---
>> drivers/usb/typec/tps6598x.c | 26 ++++++++++++++++++++------
>> 1 file changed, 20 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/usb/typec/tps6598x.c b/drivers/usb/typec/tps6598x.c
>> index c84c8c189e90..c54b73fb2a2f 100644
>> --- a/drivers/usb/typec/tps6598x.c
>> +++ b/drivers/usb/typec/tps6598x.c
>> @@ -110,6 +110,20 @@ tps6598x_block_read(struct tps6598x *tps, u8 reg, void
>> *val, size_t len)
>> return 0;
>> }
>> +static int tps6598x_block_write(struct tps6598x *tps, u8 reg,
>> + void *val, size_t len)
>> +{
>> + u8 data[len + 1];
>> +
>
> You should use TPS_MAX_LEN + 1 here to avoid the variable length array.
> See upstream commit 0bb95f80a38f8 ("Makefile: Globally enable VLA warning")
> and 8d361fa2c29dc ("usb: typec: tps6598x: Remove VLA usage"). Not sure if
> the WARN_ON introduced by 8d361fa2c29dc is really needed; I dislike
> unnecessary runtime checks.
Thanks for the pointer, I fixed this...
Nikolaus
Powered by blists - more mailing lists