Lines Matching refs:lh
197 static long linehandle_set_config(struct linehandle_state *lh, in linehandle_set_config() argument
213 for (i = 0; i < lh->num_descs; i++) { in linehandle_set_config()
214 desc = lh->descs[i]; in linehandle_set_config()
243 struct linehandle_state *lh = file->private_data; in linehandle_ioctl_unlocked() local
250 if (!lh->gdev->chip) in linehandle_ioctl_unlocked()
257 lh->num_descs, lh->descs, in linehandle_ioctl_unlocked()
263 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl_unlocked()
275 if (!test_bit(FLAG_IS_OUT, &lh->descs[0]->flags)) in linehandle_ioctl_unlocked()
282 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl_unlocked()
288 lh->num_descs, in linehandle_ioctl_unlocked()
289 lh->descs, in linehandle_ioctl_unlocked()
293 return linehandle_set_config(lh, ip); in linehandle_ioctl_unlocked()
302 struct linehandle_state *lh = file->private_data; in linehandle_ioctl() local
304 return call_ioctl_locked(file, cmd, arg, lh->gdev, in linehandle_ioctl()
316 static void linehandle_free(struct linehandle_state *lh) in linehandle_free() argument
320 for (i = 0; i < lh->num_descs; i++) in linehandle_free()
321 if (lh->descs[i]) in linehandle_free()
322 gpiod_free(lh->descs[i]); in linehandle_free()
323 kfree(lh->label); in linehandle_free()
324 gpio_device_put(lh->gdev); in linehandle_free()
325 kfree(lh); in linehandle_free()
347 struct linehandle_state *lh; in linehandle_create() local
363 lh = kzalloc(sizeof(*lh), GFP_KERNEL); in linehandle_create()
364 if (!lh) in linehandle_create()
366 lh->gdev = gpio_device_get(gdev); in linehandle_create()
370 lh->label = kstrndup(handlereq.consumer_label, in linehandle_create()
373 if (!lh->label) { in linehandle_create()
379 lh->num_descs = handlereq.lines; in linehandle_create()
391 ret = gpiod_request_user(desc, lh->label); in linehandle_create()
394 lh->descs[i] = desc; in linehandle_create()
432 lh, in linehandle_create()
453 lh->num_descs); in linehandle_create()
460 linehandle_free(lh); in linehandle_create()