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()
241 struct linehandle_state *lh = file->private_data; in linehandle_ioctl_unlocked() local
248 if (!lh->gdev->chip) in linehandle_ioctl_unlocked()
255 lh->num_descs, lh->descs, in linehandle_ioctl_unlocked()
261 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl_unlocked()
273 if (!test_bit(FLAG_IS_OUT, &lh->descs[0]->flags)) in linehandle_ioctl_unlocked()
280 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl_unlocked()
286 lh->num_descs, in linehandle_ioctl_unlocked()
287 lh->descs, in linehandle_ioctl_unlocked()
291 return linehandle_set_config(lh, ip); in linehandle_ioctl_unlocked()
300 struct linehandle_state *lh = file->private_data; in linehandle_ioctl() local
302 return call_ioctl_locked(file, cmd, arg, lh->gdev, in linehandle_ioctl()
314 static void linehandle_free(struct linehandle_state *lh) in linehandle_free() argument
318 for (i = 0; i < lh->num_descs; i++) in linehandle_free()
319 if (lh->descs[i]) in linehandle_free()
320 gpiod_free(lh->descs[i]); in linehandle_free()
321 kfree(lh->label); in linehandle_free()
322 gpio_device_put(lh->gdev); in linehandle_free()
323 kfree(lh); in linehandle_free()
345 struct linehandle_state *lh; in linehandle_create() local
361 lh = kzalloc(sizeof(*lh), GFP_KERNEL); in linehandle_create()
362 if (!lh) in linehandle_create()
364 lh->gdev = gpio_device_get(gdev); in linehandle_create()
368 lh->label = kstrndup(handlereq.consumer_label, in linehandle_create()
371 if (!lh->label) { in linehandle_create()
377 lh->num_descs = handlereq.lines; in linehandle_create()
389 ret = gpiod_request_user(desc, lh->label); in linehandle_create()
392 lh->descs[i] = desc; in linehandle_create()
429 lh, in linehandle_create()
450 lh->num_descs); in linehandle_create()
457 linehandle_free(lh); in linehandle_create()