On Tue, Jun 26, 2018 at 2:51 PM, Loic Poulain <[email protected]> wrote:
> On 26 June 2018 at 13:02, Andy Shevchenko <[email protected]> wrote:
>> On Mon, Jun 25, 2018 at 3:35 PM, Loic Poulain <[email protected]>
>> wrote:
>>> + unsigned char *buf = val;
>>
>> Btw, not sure why you need this now...
>
> Not needed indeed, just wanted to avoid arithmetic on void pointer,
> but I can cast instead.
No need to cast either.
We rely (?) on GCC to allow pointer arithmetic on void pointers to
behave as char pointers.
(?) I don't know if it's deliberate choice, though a lot of code uses
pointer arithmetic against void pointers such if it would be a char
pointers.
In case you would like to keep it, the temporary variable looks the
best way (no ugly castings, please).
>>> +
>>> + if (bytes % 2) /* 16-bit eeprom */
>>> + return -EINVAL;
>>> +
>>> + while (bytes) {
>>> + int rv;
>>> +
>>> + rv = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
>>> + FTDI_SIO_WRITE_EEPROM_REQUEST,
>>> + FTDI_SIO_WRITE_EEPROM_REQUEST_TYPE,
>>> + get_unaligned_le16(buf), off / 2, NULL,
>>> + 0, WDR_TIMEOUT);
>>> + if (rv < 0)
>>> + return rv;
>>> +
>>> + off += 2;
>>> + buf += 2;
>>> + bytes -= 2;
>>> + }
--
With Best Regards,
Andy Shevchenko
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html