Lines Matching refs:entity
288 struct uvc_entity *entity; in uvc_entity_by_id() local
290 list_for_each_entry(entity, &dev->entities, list) { in uvc_entity_by_id()
291 if (entity->id == id) in uvc_entity_by_id()
292 return entity; in uvc_entity_by_id()
299 int id, struct uvc_entity *entity) in uvc_entity_by_reference() argument
303 if (entity == NULL) in uvc_entity_by_reference()
304 entity = list_entry(&dev->entities, struct uvc_entity, list); in uvc_entity_by_reference()
306 list_for_each_entry_continue(entity, &dev->entities, list) { in uvc_entity_by_reference()
307 for (i = 0; i < entity->bNrInPins; ++i) in uvc_entity_by_reference()
308 if (entity->baSourceID[i] == id) in uvc_entity_by_reference()
309 return entity; in uvc_entity_by_reference()
846 struct uvc_entity *entity; in uvc_alloc_entity() local
851 extra_size = ALIGN(extra_size, sizeof(*entity->pads)); in uvc_alloc_entity()
853 size = sizeof(*entity) + extra_size + sizeof(*entity->pads) * num_pads in uvc_alloc_entity()
855 entity = kzalloc(size, GFP_KERNEL); in uvc_alloc_entity()
856 if (entity == NULL) in uvc_alloc_entity()
859 entity->id = id; in uvc_alloc_entity()
860 entity->type = type; in uvc_alloc_entity()
862 entity->num_links = 0; in uvc_alloc_entity()
863 entity->num_pads = num_pads; in uvc_alloc_entity()
864 entity->pads = ((void *)(entity + 1)) + extra_size; in uvc_alloc_entity()
867 entity->pads[i].flags = MEDIA_PAD_FL_SINK; in uvc_alloc_entity()
868 if (!UVC_ENTITY_IS_OTERM(entity)) in uvc_alloc_entity()
869 entity->pads[num_pads-1].flags = MEDIA_PAD_FL_SOURCE; in uvc_alloc_entity()
871 entity->bNrInPins = num_inputs; in uvc_alloc_entity()
872 entity->baSourceID = (__u8 *)(&entity->pads[num_pads]); in uvc_alloc_entity()
874 return entity; in uvc_alloc_entity()
1287 struct uvc_entity *entity) in uvc_scan_chain_entity() argument
1289 switch (UVC_ENTITY_TYPE(entity)) { in uvc_scan_chain_entity()
1292 printk(" <- XU %d", entity->id); in uvc_scan_chain_entity()
1294 if (entity->bNrInPins != 1) { in uvc_scan_chain_entity()
1296 "than 1 input pin.\n", entity->id); in uvc_scan_chain_entity()
1304 printk(" <- PU %d", entity->id); in uvc_scan_chain_entity()
1312 chain->processing = entity; in uvc_scan_chain_entity()
1317 printk(" <- SU %d", entity->id); in uvc_scan_chain_entity()
1320 if (entity->bNrInPins == 1) in uvc_scan_chain_entity()
1329 chain->selector = entity; in uvc_scan_chain_entity()
1336 printk(" <- IT %d\n", entity->id); in uvc_scan_chain_entity()
1344 printk(" OT %d", entity->id); in uvc_scan_chain_entity()
1349 if (UVC_ENTITY_IS_ITERM(entity)) { in uvc_scan_chain_entity()
1351 printk(" <- IT %d\n", entity->id); in uvc_scan_chain_entity()
1354 printk(" OT %d", entity->id); in uvc_scan_chain_entity()
1361 "0x%04x found in chain.\n", UVC_ENTITY_TYPE(entity)); in uvc_scan_chain_entity()
1365 list_add_tail(&entity->chain, &chain->entities); in uvc_scan_chain_entity()
1370 struct uvc_entity *entity, struct uvc_entity *prev) in uvc_scan_chain_forward() argument
1380 forward = uvc_entity_by_reference(chain->dev, entity->id, in uvc_scan_chain_forward()
1392 entity->id); in uvc_scan_chain_forward()
1436 struct uvc_entity *entity = *_entity; in uvc_scan_chain_backward() local
1440 switch (UVC_ENTITY_TYPE(entity)) { in uvc_scan_chain_backward()
1443 id = entity->baSourceID[0]; in uvc_scan_chain_backward()
1448 if (entity->bNrInPins == 1) { in uvc_scan_chain_backward()
1449 id = entity->baSourceID[0]; in uvc_scan_chain_backward()
1456 chain->selector = entity; in uvc_scan_chain_backward()
1457 for (i = 0; i < entity->bNrInPins; ++i) { in uvc_scan_chain_backward()
1458 id = entity->baSourceID[i]; in uvc_scan_chain_backward()
1463 "input terminal\n", entity->id, i); in uvc_scan_chain_backward()
1471 uvc_scan_chain_forward(chain, term, entity); in uvc_scan_chain_backward()
1487 id = UVC_ENTITY_IS_OTERM(entity) ? entity->baSourceID[0] : 0; in uvc_scan_chain_backward()
1496 entity = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1497 if (entity == NULL) { in uvc_scan_chain_backward()
1503 *_entity = entity; in uvc_scan_chain_backward()
1510 struct uvc_entity *entity, *prev; in uvc_scan_chain() local
1514 entity = term; in uvc_scan_chain()
1517 while (entity != NULL) { in uvc_scan_chain()
1519 if (entity->chain.next || entity->chain.prev) { in uvc_scan_chain()
1521 "entity %d already in chain.\n", entity->id); in uvc_scan_chain()
1526 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_chain()
1530 if (uvc_scan_chain_forward(chain, entity, prev) < 0) in uvc_scan_chain()
1534 prev = entity; in uvc_scan_chain()
1535 if (uvc_scan_chain_backward(chain, &entity) < 0) in uvc_scan_chain()
1668 struct uvc_entity *entity; in uvc_delete() local
1669 entity = list_entry(p, struct uvc_entity, list); in uvc_delete()
1671 uvc_mc_cleanup_entity(entity); in uvc_delete()
1673 kfree(entity); in uvc_delete()