USB: serial: cp210x: use new GPIO line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
committed by
Johan Hovold
parent
83e927b505
commit
bdf2ab177e
@@ -1504,7 +1504,7 @@ static int cp210x_gpio_get(struct gpio_chip *gc, unsigned int gpio)
|
||||
return !!(mask & BIT(gpio));
|
||||
}
|
||||
|
||||
static void cp210x_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value)
|
||||
static int cp210x_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value)
|
||||
{
|
||||
struct usb_serial *serial = gpiochip_get_data(gc);
|
||||
struct cp210x_serial_private *priv = usb_get_serial_data(serial);
|
||||
@@ -1559,7 +1559,10 @@ out:
|
||||
if (result < 0) {
|
||||
dev_err(&serial->interface->dev, "failed to set GPIO value: %d\n",
|
||||
result);
|
||||
return result;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cp210x_gpio_direction_get(struct gpio_chip *gc, unsigned int gpio)
|
||||
@@ -1599,9 +1602,8 @@ static int cp210x_gpio_direction_output(struct gpio_chip *gc, unsigned int gpio,
|
||||
struct cp210x_serial_private *priv = usb_get_serial_data(serial);
|
||||
|
||||
priv->gpio_input &= ~BIT(gpio);
|
||||
cp210x_gpio_set(gc, gpio, value);
|
||||
|
||||
return 0;
|
||||
return cp210x_gpio_set(gc, gpio, value);
|
||||
}
|
||||
|
||||
static int cp210x_gpio_set_config(struct gpio_chip *gc, unsigned int gpio,
|
||||
@@ -1960,7 +1962,7 @@ static int cp210x_gpio_init(struct usb_serial *serial)
|
||||
priv->gc.direction_input = cp210x_gpio_direction_input;
|
||||
priv->gc.direction_output = cp210x_gpio_direction_output;
|
||||
priv->gc.get = cp210x_gpio_get;
|
||||
priv->gc.set = cp210x_gpio_set;
|
||||
priv->gc.set_rv = cp210x_gpio_set;
|
||||
priv->gc.set_config = cp210x_gpio_set_config;
|
||||
priv->gc.init_valid_mask = cp210x_gpio_init_valid_mask;
|
||||
priv->gc.owner = THIS_MODULE;
|
||||
|
||||
Reference in New Issue
Block a user