Hi, >> +#if defined(CONFIG_GPIOLIB) >> +static const char * const ftdi_ftx_gpio_names[] = { >> + "CBUS0", "CBUS1", "CBUS2", "CBUS3" >> +}; >> +#endif > > We want to keep the ifdeffery to a minimum, so move this inside the > gpiolib ifdef below (and possibly even into the function where it is > used). > > Also note that these names are shared with FT232R, but not with FT232H. > What naming do you suggest then? My personal preference would be however to leave this name as is, because this patch only adds support for the FT-X. Even if support for others can be added relatively trivially after this, there is explicitly no GPIO support for FT232R *yet*. If somebody else adds GPIO support for the FT232R in a later patch, he/she should make corresponding adjustments themselves, including naming changes. IMHO. >> +static void ftdi_gpio_set_multiple(struct gpio_chip *gc, >> + unsigned long *mask, unsigned long *bits) >> +{ >> + struct usb_serial_port *port = gpiochip_get_data(gc); >> + struct ftdi_private *priv = usb_get_serial_port_data(port); >> + >> + mutex_lock(&priv->gpio_lock); >> + >> + priv->gpio_value &= ~(*mask); >> + priv->gpio_value |= *bits; > > gpiolib doesn't clear bits not in mask for you, so you need to OR with > *mask here to avoid setting random other bits. I guess you meant AND here? >> + if (priv->gpio_output & BIT(gpio)) >> + return 0; >> + else >> + return 1; > > This could just simplified using negation (!), but perhaps this is > easier to parse as it stands. > Sorry, it is not clear what your preferred action here is. So should I leave it as is then or not? Karoly