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

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

 



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?

> +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...

> +       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?

> +#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?
Also, above I think is already defined in a common way in linux/sizes.h.

> +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?
Btw, can we rename it to be less generic, like adding a prefix?

> +       }

-- 
With Best Regards,
Andy Shevchenko
--
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