Lines Matching refs:lh
150 static long linehandle_set_config(struct linehandle_state *lh,
166 for (i = 0; i < lh->num_descs; i++) {
167 desc = lh->descs[i];
196 struct linehandle_state *lh = file->private_data;
203 if (!lh->gdev->chip)
210 lh->num_descs, lh->descs,
216 for (i = 0; i < lh->num_descs; i++)
228 if (!test_bit(FLAG_IS_OUT, &lh->descs[0]->flags))
235 for (i = 0; i < lh->num_descs; i++)
241 lh->num_descs,
242 lh->descs,
246 return linehandle_set_config(lh, ip);
260 static void linehandle_free(struct linehandle_state *lh)
264 for (i = 0; i < lh->num_descs; i++)
265 if (lh->descs[i])
266 gpiod_free(lh->descs[i]);
267 kfree(lh->label);
268 put_device(&lh->gdev->dev);
269 kfree(lh);
291 struct linehandle_state *lh;
307 lh = kzalloc(sizeof(*lh), GFP_KERNEL);
308 if (!lh)
310 lh->gdev = gdev;
315 lh->label = kstrndup(handlereq.consumer_label,
318 if (!lh->label) {
324 lh->num_descs = handlereq.lines;
336 ret = gpiod_request(desc, lh->label);
339 lh->descs[i] = desc;
377 lh,
398 lh->num_descs);
405 linehandle_free(lh);