Lines Matching refs:descs
115 return &gdev->descs[gpio - gdev->base];
146 return &gdev->descs[hwnum];
162 return desc->gdev->base + (desc - &desc->gdev->descs[0]);
312 struct gpio_desc *desc = &gdev->descs[i];
355 gdev->descs[i].name = gc->names[i];
400 gdev->descs[i].name = names[i];
478 kfree(gdev->descs);
626 gdev->descs = kcalloc(gc->ngpio, sizeof(gdev->descs[0]), GFP_KERNEL);
627 if (!gdev->descs) {
684 gdev->descs[i].gdev = gdev;
714 struct gpio_desc *desc = &gdev->descs[i];
779 kfree(gdev->descs);
3373 return test_bit(FLAG_USED_AS_IRQ, &gc->gpiodev->descs[offset].flags);
3406 return test_bit(FLAG_OPEN_DRAIN, &gc->gpiodev->descs[offset].flags);
3415 return test_bit(FLAG_OPEN_SOURCE, &gc->gpiodev->descs[offset].flags);
3424 return !test_bit(FLAG_TRANSITORY, &gc->gpiodev->descs[offset].flags);
4209 if (test_bit(FLAG_IS_HOGGED, &gc->gpiodev->descs[id].flags))
4210 gpiochip_free_own_desc(&gc->gpiodev->descs[id]);
4231 struct gpio_descs *descs;
4240 descs = kzalloc(struct_size(descs, desc, count), GFP_KERNEL);
4241 if (!descs)
4244 for (descs->ndescs = 0; descs->ndescs < count; ) {
4245 desc = gpiod_get_index(dev, con_id, descs->ndescs, flags);
4247 gpiod_put_array(descs);
4251 descs->desc[descs->ndescs] = desc;
4258 if (descs->ndescs == 0 && gpio_chip_hwgpio(desc) == 0) {
4264 array = kzalloc(struct_size(descs, desc, count) +
4268 gpiod_put_array(descs);
4272 memcpy(array, descs,
4273 struct_size(descs, desc, descs->ndescs + 1));
4274 kfree(descs);
4276 descs = array;
4277 array_info = (void *)(descs->desc + count);
4283 array_info->desc = descs->desc;
4286 bitmap_set(array_info->get_mask, descs->ndescs,
4287 count - descs->ndescs);
4288 bitmap_set(array_info->set_mask, descs->ndescs,
4289 count - descs->ndescs);
4290 descs->info = array_info;
4294 __clear_bit(descs->ndescs, array_info->get_mask);
4295 __clear_bit(descs->ndescs, array_info->set_mask);
4302 gpio_chip_hwgpio(desc) != descs->ndescs) {
4308 if (bitmap_full(array_info->get_mask, descs->ndescs)) {
4311 __clear_bit(descs->ndescs,
4313 __clear_bit(descs->ndescs,
4318 if (gpiochip_line_is_open_drain(gc, descs->ndescs) ||
4319 gpiochip_line_is_open_source(gc, descs->ndescs))
4320 __clear_bit(descs->ndescs,
4324 __set_bit(descs->ndescs,
4328 descs->ndescs++;
4336 return descs;
4354 struct gpio_descs *descs;
4356 descs = gpiod_get_array(dev, con_id, flags);
4357 if (PTR_ERR(descs) == -ENOENT)
4360 return descs;
4379 * @descs: struct gpio_descs containing an array of descriptors
4381 void gpiod_put_array(struct gpio_descs *descs)
4385 for (i = 0; i < descs->ndescs; i++)
4386 gpiod_put(descs->desc[i]);
4388 kfree(descs);
4428 struct gpio_desc *gdesc = &gdev->descs[0];