Re: [PATCH v3] USB: serial: ftdi_sio: Add MTP NVM support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andy,

On 25 June 2018 at 09:36, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> On Fri, Jun 22, 2018 at 5:22 PM, Loic Poulain <loic.poulain@xxxxxxxxxx> wrote:
>> Most of FTDI's devices have an EEPROM which records FTDI devices
>> configuration setting (e.g. the VID, PID, I/O config...) and user
>> data.
>
>> FT230R chip integrates a 128-byte eeprom, FT230X a 2048-byte
>> eeprom...
>
> This sounds unfinished. What is the continuation of the sentence?
>
>>
>> This patch adds support for FTDI EEPROM read/write via USB control
>> transfers and register a new nvm device to the nvmem core.
>>
>> This permits to expose the eeprom as a sysfs file, allowing userspace
>> to read/modify FTDI configuration and its user data without having to
>> rely on a specific userspace USB driver.
>>
>> Moreover, any upcoming new tentative to add CBUS GPIO support could
>> integrate CBUS EEPROM configuration reading in order to determine
>> which of the CBUS pins are available as GPIO.
>
> In some cases you are using EEPROM, in the rest, eeprom. What the difference?

I'll unify this.

>
>> +config USB_SERIAL_FTDI_SIO_NVMEM
>> +       bool "FTDI MTP non-volatile memory support"
>> +       depends on USB_SERIAL_FTDI_SIO
>> +       select NVMEM
>
>> +       default y
>
> First of all, I didn't find an evidence why it should be y...

Yes, I'll fix this.

>
>> +       help
>> +         Say yes here to add support for the MTP non-volatile memory
>> +         present on FTDI. Most of FTDI's devices have an EEPROM which
>> +         records FTDI device's configuration setting as well as user
>> +         data.
>
> ...second, the help semantics is inconsistent with default.
>
>>  #include <linux/usb.h>
>>  #include <linux/serial.h>
>>  #include <linux/usb/serial.h>
>> +#include <linux/nvmem-provider.h>
>
> Perhaps squeeze it into most ordered part and keep there an order?

OK

>
>> +#define EEPROM_SZ_FTX 2048 /* cf FTDI AN_201 */
>> +#define EEPROM_SZ_FT232RL 128  /* cf FTDI AN_121 */
>
> These defines looks too particular, shouldn't be this a part of driver
> data / platform data / device properties?

I'm not sure where to move this since it depends on chip type which is
detected at runtime. I don't think ftdi_sio_quirk is the right place.
So maybe I could just skip the defines for now and come back to:

switch (priv->chip_type) {
    case FTX:
        nvmconf.size = SZ_2K;
        break;
...


> Also, above I think is already defined in a common way in linux/sizes.h.

Correct

>
>> +static int write_eeprom(void *priv, unsigned int off, void *_val, size_t bytes)
>
> Leading _ in the name looks weird here, since it's not a macro.
> (and inconsistent with below function definitions)
>
>> +               val = buf[0] + (buf[1] << 8);
>
> get_unaligned_le16() ?
>
>
>> +       if (register_eeprom(port)) {
>
>> +               dev_err(&port->dev, "Unable to register FTDI EEPROM\n");
>> +               /* non-fatal */
>
> Doesn't register_eeprom() have some error messaging already?

I can move this into register_eeprom for consistency.

> Btw, can we rename it to be less generic, like adding a prefix?

OK, I'll add ftdi_ prefix.

>
>> +       }
>
> --
> With Best Regards,
> Andy Shevchenko

Thanks,
Loic
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux