Lines Matching refs:lh

150 static long linehandle_set_config(struct linehandle_state *lh,  in linehandle_set_config()  argument
166 for (i = 0; i < lh->num_descs; i++) { in linehandle_set_config()
167 desc = lh->descs[i]; in linehandle_set_config()
196 struct linehandle_state *lh = file->private_data; in linehandle_ioctl() local
206 lh->num_descs, in linehandle_ioctl()
207 lh->descs, in linehandle_ioctl()
214 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl()
226 if (!test_bit(FLAG_IS_OUT, &lh->descs[0]->flags)) in linehandle_ioctl()
233 for (i = 0; i < lh->num_descs; i++) in linehandle_ioctl()
239 lh->num_descs, in linehandle_ioctl()
240 lh->descs, in linehandle_ioctl()
244 return linehandle_set_config(lh, ip); in linehandle_ioctl()
257 static void linehandle_free(struct linehandle_state *lh) in linehandle_free() argument
261 for (i = 0; i < lh->num_descs; i++) in linehandle_free()
262 if (lh->descs[i]) in linehandle_free()
263 gpiod_free(lh->descs[i]); in linehandle_free()
264 kfree(lh->label); in linehandle_free()
265 put_device(&lh->gdev->dev); in linehandle_free()
266 kfree(lh); in linehandle_free()
288 struct linehandle_state *lh; in linehandle_create() local
304 lh = kzalloc(sizeof(*lh), GFP_KERNEL); in linehandle_create()
305 if (!lh) in linehandle_create()
307 lh->gdev = gdev; in linehandle_create()
312 lh->label = kstrndup(handlereq.consumer_label, in linehandle_create()
315 if (!lh->label) { in linehandle_create()
321 lh->num_descs = handlereq.lines; in linehandle_create()
333 ret = gpiod_request(desc, lh->label); in linehandle_create()
336 lh->descs[i] = desc; in linehandle_create()
374 lh, in linehandle_create()
395 lh->num_descs); in linehandle_create()
402 linehandle_free(lh); in linehandle_create()