diff options
author | 2025-04-23 10:55:42 +0200 | |
---|---|---|
committer | 2025-04-24 12:07:55 +0200 | |
commit | 6485543488a6d35e9f24c6f50cb63710446d8aab (patch) | |
tree | 077a4bc64f91a0bc0232caf1112647ea024fa184 /drivers/hid | |
parent | HID: cp2112: use lock guards (diff) | |
download | linux-rng-6485543488a6d35e9f24c6f50cb63710446d8aab.tar.xz linux-rng-6485543488a6d35e9f24c6f50cb63710446d8aab.zip |
HID: cp2112: use new 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>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-cp2112.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c index 92dd891b7b59..234fa82eab07 100644 --- a/drivers/hid/hid-cp2112.c +++ b/drivers/hid/hid-cp2112.c @@ -215,8 +215,8 @@ static int cp2112_gpio_direction_input(struct gpio_chip *chip, unsigned offset) return 0; } -static void cp2112_gpio_set_unlocked(struct cp2112_device *dev, - unsigned int offset, int value) +static int cp2112_gpio_set_unlocked(struct cp2112_device *dev, + unsigned int offset, int value) { struct hid_device *hdev = dev->hdev; u8 *buf = dev->in_out_buffer; @@ -231,16 +231,18 @@ static void cp2112_gpio_set_unlocked(struct cp2112_device *dev, HID_REQ_SET_REPORT); if (ret < 0) hid_err(hdev, "error setting GPIO values: %d\n", ret); + + return ret; } -static void cp2112_gpio_set(struct gpio_chip *chip, unsigned int offset, - int value) +static int cp2112_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) { struct cp2112_device *dev = gpiochip_get_data(chip); guard(mutex)(&dev->lock); - cp2112_gpio_set_unlocked(dev, offset, value); + return cp2112_gpio_set_unlocked(dev, offset, value); } static int cp2112_gpio_get_all(struct gpio_chip *chip) @@ -1286,7 +1288,7 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) dev->gc.label = "cp2112_gpio"; dev->gc.direction_input = cp2112_gpio_direction_input; dev->gc.direction_output = cp2112_gpio_direction_output; - dev->gc.set = cp2112_gpio_set; + dev->gc.set_rv = cp2112_gpio_set; dev->gc.get = cp2112_gpio_get; dev->gc.base = -1; dev->gc.ngpio = CP2112_GPIO_MAX_GPIO; |