• Home
  • Raw
  • Download

Lines Matching refs:desc

131 int desc_to_gpio(const struct gpio_desc *desc)  in desc_to_gpio()  argument
133 return desc->gdev->base + (desc - &desc->gdev->descs[0]); in desc_to_gpio()
142 struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc) in gpiod_to_chip() argument
144 if (!desc || !desc->gdev || !desc->gdev->chip) in gpiod_to_chip()
146 return desc->gdev->chip; in gpiod_to_chip()
182 int gpiod_get_direction(struct gpio_desc *desc) in gpiod_get_direction() argument
188 chip = gpiod_to_chip(desc); in gpiod_get_direction()
189 offset = gpio_chip_hwgpio(desc); in gpiod_get_direction()
198 clear_bit(FLAG_IS_OUT, &desc->flags); in gpiod_get_direction()
202 set_bit(FLAG_IS_OUT, &desc->flags); in gpiod_get_direction()
270 struct gpio_desc *desc = &gdev->descs[i]; in gpio_name_to_desc() local
272 if (!desc->name || !name) in gpio_name_to_desc()
275 if (!strcmp(desc->name, name)) { in gpio_name_to_desc()
277 return desc; in gpio_name_to_desc()
456 struct gpio_desc *desc; in linehandle_create() local
469 desc = &gdev->descs[offset]; in linehandle_create()
470 ret = gpiod_request(desc, lh->label); in linehandle_create()
473 lh->descs[i] = desc; in linehandle_create()
476 set_bit(FLAG_ACTIVE_LOW, &desc->flags); in linehandle_create()
478 set_bit(FLAG_OPEN_DRAIN, &desc->flags); in linehandle_create()
480 set_bit(FLAG_OPEN_SOURCE, &desc->flags); in linehandle_create()
489 ret = gpiod_direction_output(desc, val); in linehandle_create()
493 ret = gpiod_direction_input(desc); in linehandle_create()
568 struct gpio_desc *desc; member
646 gpiod_free(le->desc); in lineevent_release()
669 val = gpiod_get_value_cansleep(le->desc); in lineevent_ioctl()
712 level = gpiod_get_value_cansleep(le->desc); in lineevent_irq_thread()
743 struct gpio_desc *desc; in lineevent_create() local
794 desc = &gdev->descs[offset]; in lineevent_create()
795 ret = gpiod_request(desc, le->label); in lineevent_create()
798 le->desc = desc; in lineevent_create()
802 set_bit(FLAG_ACTIVE_LOW, &desc->flags); in lineevent_create()
804 set_bit(FLAG_OPEN_DRAIN, &desc->flags); in lineevent_create()
806 set_bit(FLAG_OPEN_SOURCE, &desc->flags); in lineevent_create()
808 ret = gpiod_direction_input(desc); in lineevent_create()
812 le->irq = gpiod_to_irq(desc); in lineevent_create()
874 gpiod_free(le->desc); in lineevent_create()
914 struct gpio_desc *desc; in gpio_ioctl() local
921 desc = &gdev->descs[lineinfo.line_offset]; in gpio_ioctl()
922 if (desc->name) { in gpio_ioctl()
923 strncpy(lineinfo.name, desc->name, in gpio_ioctl()
929 if (desc->label) { in gpio_ioctl()
930 strncpy(lineinfo.consumer, desc->label, in gpio_ioctl()
942 if (test_bit(FLAG_REQUESTED, &desc->flags) || in gpio_ioctl()
943 test_bit(FLAG_IS_HOGGED, &desc->flags) || in gpio_ioctl()
944 test_bit(FLAG_USED_AS_IRQ, &desc->flags) || in gpio_ioctl()
945 test_bit(FLAG_EXPORT, &desc->flags) || in gpio_ioctl()
946 test_bit(FLAG_SYSFS, &desc->flags)) in gpio_ioctl()
948 if (test_bit(FLAG_IS_OUT, &desc->flags)) in gpio_ioctl()
950 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpio_ioctl()
952 if (test_bit(FLAG_OPEN_DRAIN, &desc->flags)) in gpio_ioctl()
954 if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) in gpio_ioctl()
1211 struct gpio_desc *desc = &gdev->descs[i]; in gpiochip_add_data() local
1213 desc->gdev = gdev; in gpiochip_add_data()
1231 set_bit(FLAG_IS_OUT, &desc->flags); in gpiochip_add_data()
1237 set_bit(FLAG_IS_OUT, &desc->flags); in gpiochip_add_data()
1316 struct gpio_desc *desc; in gpiochip_remove() local
1338 desc = &gdev->descs[i]; in gpiochip_remove()
1339 if (test_bit(FLAG_REQUESTED, &desc->flags)) in gpiochip_remove()
1962 static int __gpiod_request(struct gpio_desc *desc, const char *label) in __gpiod_request() argument
1964 struct gpio_chip *chip = desc->gdev->chip; in __gpiod_request()
1974 if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) { in __gpiod_request()
1975 desc_set_label(desc, label ? : "?"); in __gpiod_request()
1985 status = chip->request(chip, gpio_chip_hwgpio(desc)); in __gpiod_request()
1989 desc_set_label(desc, NULL); in __gpiod_request()
1990 clear_bit(FLAG_REQUESTED, &desc->flags); in __gpiod_request()
1997 gpiod_get_direction(desc); in __gpiod_request()
2011 #define VALIDATE_DESC(desc) do { \ argument
2012 if (!desc) \
2014 if (IS_ERR(desc)) { \
2016 return PTR_ERR(desc); \
2018 if (!desc->gdev) { \
2022 if ( !desc->gdev->chip ) { \
2023 dev_warn(&desc->gdev->dev, \
2028 #define VALIDATE_DESC_VOID(desc) do { \ argument
2029 if (!desc) \
2031 if (IS_ERR(desc)) { \
2035 if (!desc->gdev) { \
2039 if (!desc->gdev->chip) { \
2040 dev_warn(&desc->gdev->dev, \
2046 int gpiod_request(struct gpio_desc *desc, const char *label) in gpiod_request() argument
2051 VALIDATE_DESC(desc); in gpiod_request()
2052 gdev = desc->gdev; in gpiod_request()
2055 status = __gpiod_request(desc, label); in gpiod_request()
2063 gpiod_dbg(desc, "%s: status %d\n", __func__, status); in gpiod_request()
2068 static bool __gpiod_free(struct gpio_desc *desc) in __gpiod_free() argument
2076 gpiod_unexport(desc); in __gpiod_free()
2080 chip = desc->gdev->chip; in __gpiod_free()
2081 if (chip && test_bit(FLAG_REQUESTED, &desc->flags)) { in __gpiod_free()
2085 chip->free(chip, gpio_chip_hwgpio(desc)); in __gpiod_free()
2088 desc_set_label(desc, NULL); in __gpiod_free()
2089 clear_bit(FLAG_ACTIVE_LOW, &desc->flags); in __gpiod_free()
2090 clear_bit(FLAG_REQUESTED, &desc->flags); in __gpiod_free()
2091 clear_bit(FLAG_OPEN_DRAIN, &desc->flags); in __gpiod_free()
2092 clear_bit(FLAG_OPEN_SOURCE, &desc->flags); in __gpiod_free()
2093 clear_bit(FLAG_IS_HOGGED, &desc->flags); in __gpiod_free()
2101 void gpiod_free(struct gpio_desc *desc) in gpiod_free() argument
2103 if (desc && desc->gdev && __gpiod_free(desc)) { in gpiod_free()
2104 module_put(desc->gdev->owner); in gpiod_free()
2105 put_device(&desc->gdev->dev); in gpiod_free()
2126 struct gpio_desc *desc; in gpiochip_is_requested() local
2131 desc = &chip->gpiodev->descs[offset]; in gpiochip_is_requested()
2133 if (test_bit(FLAG_REQUESTED, &desc->flags) == 0) in gpiochip_is_requested()
2135 return desc->label; in gpiochip_is_requested()
2153 struct gpio_desc *desc = gpiochip_get_desc(chip, hwnum); in gpiochip_request_own_desc() local
2156 if (IS_ERR(desc)) { in gpiochip_request_own_desc()
2158 return desc; in gpiochip_request_own_desc()
2161 err = __gpiod_request(desc, label); in gpiochip_request_own_desc()
2165 return desc; in gpiochip_request_own_desc()
2176 void gpiochip_free_own_desc(struct gpio_desc *desc) in gpiochip_free_own_desc() argument
2178 if (desc) in gpiochip_free_own_desc()
2179 __gpiod_free(desc); in gpiochip_free_own_desc()
2202 int gpiod_direction_input(struct gpio_desc *desc) in gpiod_direction_input() argument
2207 VALIDATE_DESC(desc); in gpiod_direction_input()
2208 chip = desc->gdev->chip; in gpiod_direction_input()
2211 gpiod_warn(desc, in gpiod_direction_input()
2217 status = chip->direction_input(chip, gpio_chip_hwgpio(desc)); in gpiod_direction_input()
2219 clear_bit(FLAG_IS_OUT, &desc->flags); in gpiod_direction_input()
2221 trace_gpio_direction(desc_to_gpio(desc), 1, status); in gpiod_direction_input()
2227 static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value) in _gpiod_direction_output_raw() argument
2229 struct gpio_chip *gc = desc->gdev->chip; in _gpiod_direction_output_raw()
2233 if (test_bit(FLAG_USED_AS_IRQ, &desc->flags)) { in _gpiod_direction_output_raw()
2234 gpiod_err(desc, in _gpiod_direction_output_raw()
2240 if (test_bit(FLAG_OPEN_DRAIN, &desc->flags)) { in _gpiod_direction_output_raw()
2243 ret = gc->set_single_ended(gc, gpio_chip_hwgpio(desc), in _gpiod_direction_output_raw()
2250 return gpiod_direction_input(desc); in _gpiod_direction_output_raw()
2252 else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) { in _gpiod_direction_output_raw()
2254 ret = gc->set_single_ended(gc, gpio_chip_hwgpio(desc), in _gpiod_direction_output_raw()
2261 return gpiod_direction_input(desc); in _gpiod_direction_output_raw()
2266 gpio_chip_hwgpio(desc), in _gpiod_direction_output_raw()
2272 gpiod_warn(desc, in _gpiod_direction_output_raw()
2278 ret = gc->direction_output(gc, gpio_chip_hwgpio(desc), value); in _gpiod_direction_output_raw()
2280 set_bit(FLAG_IS_OUT, &desc->flags); in _gpiod_direction_output_raw()
2281 trace_gpio_value(desc_to_gpio(desc), 0, value); in _gpiod_direction_output_raw()
2282 trace_gpio_direction(desc_to_gpio(desc), 0, ret); in _gpiod_direction_output_raw()
2297 int gpiod_direction_output_raw(struct gpio_desc *desc, int value) in gpiod_direction_output_raw() argument
2299 VALIDATE_DESC(desc); in gpiod_direction_output_raw()
2300 return _gpiod_direction_output_raw(desc, value); in gpiod_direction_output_raw()
2316 int gpiod_direction_output(struct gpio_desc *desc, int value) in gpiod_direction_output() argument
2318 VALIDATE_DESC(desc); in gpiod_direction_output()
2319 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_direction_output()
2321 return _gpiod_direction_output_raw(desc, value); in gpiod_direction_output()
2333 int gpiod_set_debounce(struct gpio_desc *desc, unsigned debounce) in gpiod_set_debounce() argument
2337 VALIDATE_DESC(desc); in gpiod_set_debounce()
2338 chip = desc->gdev->chip; in gpiod_set_debounce()
2340 gpiod_dbg(desc, in gpiod_set_debounce()
2346 return chip->set_debounce(chip, gpio_chip_hwgpio(desc), debounce); in gpiod_set_debounce()
2356 int gpiod_is_active_low(const struct gpio_desc *desc) in gpiod_is_active_low() argument
2358 VALIDATE_DESC(desc); in gpiod_is_active_low()
2359 return test_bit(FLAG_ACTIVE_LOW, &desc->flags); in gpiod_is_active_low()
2385 static int _gpiod_get_raw_value(const struct gpio_desc *desc) in _gpiod_get_raw_value() argument
2391 chip = desc->gdev->chip; in _gpiod_get_raw_value()
2392 offset = gpio_chip_hwgpio(desc); in _gpiod_get_raw_value()
2395 trace_gpio_value(desc_to_gpio(desc), 1, value); in _gpiod_get_raw_value()
2409 int gpiod_get_raw_value(const struct gpio_desc *desc) in gpiod_get_raw_value() argument
2411 VALIDATE_DESC(desc); in gpiod_get_raw_value()
2413 WARN_ON(desc->gdev->chip->can_sleep); in gpiod_get_raw_value()
2414 return _gpiod_get_raw_value(desc); in gpiod_get_raw_value()
2428 int gpiod_get_value(const struct gpio_desc *desc) in gpiod_get_value() argument
2432 VALIDATE_DESC(desc); in gpiod_get_value()
2434 WARN_ON(desc->gdev->chip->can_sleep); in gpiod_get_value()
2436 value = _gpiod_get_raw_value(desc); in gpiod_get_value()
2440 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_get_value()
2452 static void _gpio_set_open_drain_value(struct gpio_desc *desc, bool value) in _gpio_set_open_drain_value() argument
2455 struct gpio_chip *chip = desc->gdev->chip; in _gpio_set_open_drain_value()
2456 int offset = gpio_chip_hwgpio(desc); in _gpio_set_open_drain_value()
2461 clear_bit(FLAG_IS_OUT, &desc->flags); in _gpio_set_open_drain_value()
2465 set_bit(FLAG_IS_OUT, &desc->flags); in _gpio_set_open_drain_value()
2467 trace_gpio_direction(desc_to_gpio(desc), value, err); in _gpio_set_open_drain_value()
2469 gpiod_err(desc, in _gpio_set_open_drain_value()
2479 static void _gpio_set_open_source_value(struct gpio_desc *desc, bool value) in _gpio_set_open_source_value() argument
2482 struct gpio_chip *chip = desc->gdev->chip; in _gpio_set_open_source_value()
2483 int offset = gpio_chip_hwgpio(desc); in _gpio_set_open_source_value()
2488 set_bit(FLAG_IS_OUT, &desc->flags); in _gpio_set_open_source_value()
2492 clear_bit(FLAG_IS_OUT, &desc->flags); in _gpio_set_open_source_value()
2494 trace_gpio_direction(desc_to_gpio(desc), !value, err); in _gpio_set_open_source_value()
2496 gpiod_err(desc, in _gpio_set_open_source_value()
2501 static void _gpiod_set_raw_value(struct gpio_desc *desc, bool value) in _gpiod_set_raw_value() argument
2505 chip = desc->gdev->chip; in _gpiod_set_raw_value()
2506 trace_gpio_value(desc_to_gpio(desc), 0, value); in _gpiod_set_raw_value()
2507 if (test_bit(FLAG_OPEN_DRAIN, &desc->flags)) in _gpiod_set_raw_value()
2508 _gpio_set_open_drain_value(desc, value); in _gpiod_set_raw_value()
2509 else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) in _gpiod_set_raw_value()
2510 _gpio_set_open_source_value(desc, value); in _gpiod_set_raw_value()
2512 chip->set(chip, gpio_chip_hwgpio(desc), value); in _gpiod_set_raw_value()
2563 struct gpio_desc *desc = desc_array[i]; in gpiod_set_array_value_complex() local
2564 int hwgpio = gpio_chip_hwgpio(desc); in gpiod_set_array_value_complex()
2567 if (!raw && test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_set_array_value_complex()
2569 trace_gpio_value(desc_to_gpio(desc), 0, value); in gpiod_set_array_value_complex()
2574 if (test_bit(FLAG_OPEN_DRAIN, &desc->flags)) { in gpiod_set_array_value_complex()
2575 _gpio_set_open_drain_value(desc, value); in gpiod_set_array_value_complex()
2576 } else if (test_bit(FLAG_OPEN_SOURCE, &desc->flags)) { in gpiod_set_array_value_complex()
2577 _gpio_set_open_source_value(desc, value); in gpiod_set_array_value_complex()
2606 void gpiod_set_raw_value(struct gpio_desc *desc, int value) in gpiod_set_raw_value() argument
2608 VALIDATE_DESC_VOID(desc); in gpiod_set_raw_value()
2610 WARN_ON(desc->gdev->chip->can_sleep); in gpiod_set_raw_value()
2611 _gpiod_set_raw_value(desc, value); in gpiod_set_raw_value()
2626 void gpiod_set_value(struct gpio_desc *desc, int value) in gpiod_set_value() argument
2628 VALIDATE_DESC_VOID(desc); in gpiod_set_value()
2630 WARN_ON(desc->gdev->chip->can_sleep); in gpiod_set_value()
2631 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_set_value()
2633 _gpiod_set_raw_value(desc, value); in gpiod_set_value()
2686 int gpiod_cansleep(const struct gpio_desc *desc) in gpiod_cansleep() argument
2688 VALIDATE_DESC(desc); in gpiod_cansleep()
2689 return desc->gdev->chip->can_sleep; in gpiod_cansleep()
2700 int gpiod_to_irq(const struct gpio_desc *desc) in gpiod_to_irq() argument
2710 if (!desc || IS_ERR(desc) || !desc->gdev || !desc->gdev->chip) in gpiod_to_irq()
2713 chip = desc->gdev->chip; in gpiod_to_irq()
2714 offset = gpio_chip_hwgpio(desc); in gpiod_to_irq()
2738 struct gpio_desc *desc; in gpiochip_lock_as_irq() local
2740 desc = gpiochip_get_desc(chip, offset); in gpiochip_lock_as_irq()
2741 if (IS_ERR(desc)) in gpiochip_lock_as_irq()
2742 return PTR_ERR(desc); in gpiochip_lock_as_irq()
2752 clear_bit(FLAG_IS_OUT, &desc->flags); in gpiochip_lock_as_irq()
2754 set_bit(FLAG_IS_OUT, &desc->flags); in gpiochip_lock_as_irq()
2757 if (test_bit(FLAG_IS_OUT, &desc->flags)) { in gpiochip_lock_as_irq()
2764 set_bit(FLAG_USED_AS_IRQ, &desc->flags); in gpiochip_lock_as_irq()
2822 int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc) in gpiod_get_raw_value_cansleep() argument
2825 VALIDATE_DESC(desc); in gpiod_get_raw_value_cansleep()
2826 return _gpiod_get_raw_value(desc); in gpiod_get_raw_value_cansleep()
2839 int gpiod_get_value_cansleep(const struct gpio_desc *desc) in gpiod_get_value_cansleep() argument
2844 VALIDATE_DESC(desc); in gpiod_get_value_cansleep()
2845 value = _gpiod_get_raw_value(desc); in gpiod_get_value_cansleep()
2849 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_get_value_cansleep()
2866 void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value) in gpiod_set_raw_value_cansleep() argument
2869 VALIDATE_DESC_VOID(desc); in gpiod_set_raw_value_cansleep()
2870 _gpiod_set_raw_value(desc, value); in gpiod_set_raw_value_cansleep()
2884 void gpiod_set_value_cansleep(struct gpio_desc *desc, int value) in gpiod_set_value_cansleep() argument
2887 VALIDATE_DESC_VOID(desc); in gpiod_set_value_cansleep()
2888 if (test_bit(FLAG_ACTIVE_LOW, &desc->flags)) in gpiod_set_value_cansleep()
2890 _gpiod_set_raw_value(desc, value); in gpiod_set_value_cansleep()
3001 struct gpio_desc *desc = ERR_PTR(-ENOENT); in gpiod_find() local
3007 return desc; in gpiod_find()
3035 desc = gpiochip_get_desc(chip, p->chip_hwnum); in gpiod_find()
3038 return desc; in gpiod_find()
3041 return desc; in gpiod_find()
3156 static int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id, in gpiod_configure_flags() argument
3162 set_bit(FLAG_ACTIVE_LOW, &desc->flags); in gpiod_configure_flags()
3164 set_bit(FLAG_OPEN_DRAIN, &desc->flags); in gpiod_configure_flags()
3166 set_bit(FLAG_OPEN_SOURCE, &desc->flags); in gpiod_configure_flags()
3176 status = gpiod_direction_output(desc, in gpiod_configure_flags()
3179 status = gpiod_direction_input(desc); in gpiod_configure_flags()
3203 struct gpio_desc *desc = NULL; in gpiod_get_index() local
3213 desc = of_find_gpio(dev, con_id, idx, &lookupflags); in gpiod_get_index()
3216 desc = acpi_find_gpio(dev, con_id, idx, flags, &lookupflags); in gpiod_get_index()
3224 if (!desc || desc == ERR_PTR(-ENOENT)) { in gpiod_get_index()
3226 desc = gpiod_find(dev, con_id, idx, &lookupflags); in gpiod_get_index()
3229 if (IS_ERR(desc)) { in gpiod_get_index()
3231 return desc; in gpiod_get_index()
3235 status = gpiod_request(desc, con_id ? con_id : dev_name(dev)); in gpiod_get_index()
3239 status = gpiod_configure_flags(desc, con_id, lookupflags, flags); in gpiod_get_index()
3242 gpiod_put(desc); in gpiod_get_index()
3246 return desc; in gpiod_get_index()
3267 struct gpio_desc *desc = ERR_PTR(-ENODEV); in fwnode_get_named_gpiod() local
3278 desc = of_get_named_gpiod_flags(to_of_node(fwnode), propname, 0, in fwnode_get_named_gpiod()
3280 if (!IS_ERR(desc)) { in fwnode_get_named_gpiod()
3287 desc = acpi_node_get_gpiod(fwnode, propname, 0, &info); in fwnode_get_named_gpiod()
3288 if (!IS_ERR(desc)) in fwnode_get_named_gpiod()
3292 if (IS_ERR(desc)) in fwnode_get_named_gpiod()
3293 return desc; in fwnode_get_named_gpiod()
3295 ret = gpiod_request(desc, NULL); in fwnode_get_named_gpiod()
3300 set_bit(FLAG_ACTIVE_LOW, &desc->flags); in fwnode_get_named_gpiod()
3304 set_bit(FLAG_OPEN_DRAIN, &desc->flags); in fwnode_get_named_gpiod()
3306 set_bit(FLAG_OPEN_SOURCE, &desc->flags); in fwnode_get_named_gpiod()
3309 return desc; in fwnode_get_named_gpiod()
3330 struct gpio_desc *desc; in gpiod_get_index_optional() local
3332 desc = gpiod_get_index(dev, con_id, index, flags); in gpiod_get_index_optional()
3333 if (IS_ERR(desc)) { in gpiod_get_index_optional()
3334 if (PTR_ERR(desc) == -ENOENT) in gpiod_get_index_optional()
3338 return desc; in gpiod_get_index_optional()
3350 int gpiod_hog(struct gpio_desc *desc, const char *name, in gpiod_hog() argument
3358 chip = gpiod_to_chip(desc); in gpiod_hog()
3359 hwnum = gpio_chip_hwgpio(desc); in gpiod_hog()
3369 status = gpiod_configure_flags(desc, name, lflags, dflags); in gpiod_hog()
3373 gpiochip_free_own_desc(desc); in gpiod_hog()
3378 set_bit(FLAG_IS_HOGGED, &desc->flags); in gpiod_hog()
3381 desc_to_gpio(desc), name, in gpiod_hog()
3421 struct gpio_desc *desc; in gpiod_get_array() local
3429 descs = kzalloc(sizeof(*descs) + sizeof(descs->desc[0]) * count, in gpiod_get_array()
3435 desc = gpiod_get_index(dev, con_id, descs->ndescs, flags); in gpiod_get_array()
3436 if (IS_ERR(desc)) { in gpiod_get_array()
3438 return ERR_CAST(desc); in gpiod_get_array()
3440 descs->desc[descs->ndescs] = desc; in gpiod_get_array()
3477 void gpiod_put(struct gpio_desc *desc) in gpiod_put() argument
3479 gpiod_free(desc); in gpiod_put()
3492 gpiod_put(descs->desc[i]); in gpiod_put_array()