Lines Matching refs:entity
308 struct uvc_entity *entity; in uvc_entity_by_id() local
310 list_for_each_entry(entity, &dev->entities, list) { in uvc_entity_by_id()
311 if (entity->id == id) in uvc_entity_by_id()
312 return entity; in uvc_entity_by_id()
319 int id, struct uvc_entity *entity) in uvc_entity_by_reference() argument
323 if (entity == NULL) in uvc_entity_by_reference()
324 entity = list_entry(&dev->entities, struct uvc_entity, list); in uvc_entity_by_reference()
326 list_for_each_entry_continue(entity, &dev->entities, list) { in uvc_entity_by_reference()
327 for (i = 0; i < entity->bNrInPins; ++i) in uvc_entity_by_reference()
328 if (entity->baSourceID[i] == id) in uvc_entity_by_reference()
329 return entity; in uvc_entity_by_reference()
866 struct uvc_entity *entity; in uvc_alloc_entity() local
871 extra_size = roundup(extra_size, sizeof(*entity->pads)); in uvc_alloc_entity()
876 size = sizeof(*entity) + extra_size + sizeof(*entity->pads) * num_pads in uvc_alloc_entity()
878 entity = kzalloc(size, GFP_KERNEL); in uvc_alloc_entity()
879 if (entity == NULL) in uvc_alloc_entity()
882 entity->id = id; in uvc_alloc_entity()
883 entity->type = type; in uvc_alloc_entity()
885 entity->num_links = 0; in uvc_alloc_entity()
886 entity->num_pads = num_pads; in uvc_alloc_entity()
887 entity->pads = ((void *)(entity + 1)) + extra_size; in uvc_alloc_entity()
890 entity->pads[i].flags = MEDIA_PAD_FL_SINK; in uvc_alloc_entity()
891 if (!UVC_ENTITY_IS_OTERM(entity) && num_pads) in uvc_alloc_entity()
892 entity->pads[num_pads-1].flags = MEDIA_PAD_FL_SOURCE; in uvc_alloc_entity()
894 entity->bNrInPins = num_inputs; in uvc_alloc_entity()
895 entity->baSourceID = (__u8 *)(&entity->pads[num_pads]); in uvc_alloc_entity()
897 return entity; in uvc_alloc_entity()
1318 struct uvc_entity *entity) in uvc_scan_chain_entity() argument
1320 switch (UVC_ENTITY_TYPE(entity)) { in uvc_scan_chain_entity()
1323 printk(" <- XU %d", entity->id); in uvc_scan_chain_entity()
1325 if (entity->bNrInPins != 1) { in uvc_scan_chain_entity()
1327 "than 1 input pin.\n", entity->id); in uvc_scan_chain_entity()
1335 printk(" <- PU %d", entity->id); in uvc_scan_chain_entity()
1343 chain->processing = entity; in uvc_scan_chain_entity()
1348 printk(" <- SU %d", entity->id); in uvc_scan_chain_entity()
1351 if (entity->bNrInPins == 1) in uvc_scan_chain_entity()
1360 chain->selector = entity; in uvc_scan_chain_entity()
1367 printk(" <- IT %d\n", entity->id); in uvc_scan_chain_entity()
1375 printk(" OT %d", entity->id); in uvc_scan_chain_entity()
1380 if (UVC_ENTITY_IS_ITERM(entity)) { in uvc_scan_chain_entity()
1382 printk(" <- IT %d\n", entity->id); in uvc_scan_chain_entity()
1385 printk(" OT %d", entity->id); in uvc_scan_chain_entity()
1392 "0x%04x found in chain.\n", UVC_ENTITY_TYPE(entity)); in uvc_scan_chain_entity()
1396 list_add_tail(&entity->chain, &chain->entities); in uvc_scan_chain_entity()
1401 struct uvc_entity *entity, struct uvc_entity *prev) in uvc_scan_chain_forward() argument
1411 forward = uvc_entity_by_reference(chain->dev, entity->id, in uvc_scan_chain_forward()
1428 entity->id); in uvc_scan_chain_forward()
1472 struct uvc_entity *entity = *_entity; in uvc_scan_chain_backward() local
1476 switch (UVC_ENTITY_TYPE(entity)) { in uvc_scan_chain_backward()
1479 id = entity->baSourceID[0]; in uvc_scan_chain_backward()
1484 if (entity->bNrInPins == 1) { in uvc_scan_chain_backward()
1485 id = entity->baSourceID[0]; in uvc_scan_chain_backward()
1492 chain->selector = entity; in uvc_scan_chain_backward()
1493 for (i = 0; i < entity->bNrInPins; ++i) { in uvc_scan_chain_backward()
1494 id = entity->baSourceID[i]; in uvc_scan_chain_backward()
1499 "input terminal\n", entity->id, i); in uvc_scan_chain_backward()
1514 uvc_scan_chain_forward(chain, term, entity); in uvc_scan_chain_backward()
1530 id = UVC_ENTITY_IS_OTERM(entity) ? entity->baSourceID[0] : 0; in uvc_scan_chain_backward()
1539 entity = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1540 if (entity == NULL) { in uvc_scan_chain_backward()
1546 *_entity = entity; in uvc_scan_chain_backward()
1553 struct uvc_entity *entity, *prev; in uvc_scan_chain() local
1557 entity = term; in uvc_scan_chain()
1560 while (entity != NULL) { in uvc_scan_chain()
1562 if (entity->chain.next || entity->chain.prev) { in uvc_scan_chain()
1564 "entity %d already in chain.\n", entity->id); in uvc_scan_chain()
1569 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_chain()
1573 if (uvc_scan_chain_forward(chain, entity, prev) < 0) in uvc_scan_chain()
1577 prev = entity; in uvc_scan_chain()
1578 if (uvc_scan_chain_backward(chain, &entity) < 0) in uvc_scan_chain()
1655 struct uvc_entity *entity; in uvc_scan_fallback() local
1662 list_for_each_entry(entity, &dev->entities, list) { in uvc_scan_fallback()
1663 if (UVC_ENTITY_IS_ITERM(entity)) { in uvc_scan_fallback()
1666 iterm = entity; in uvc_scan_fallback()
1669 if (UVC_ENTITY_IS_OTERM(entity)) { in uvc_scan_fallback()
1672 oterm = entity; in uvc_scan_fallback()
1696 list_for_each_entry_reverse(entity, &dev->entities, list) { in uvc_scan_fallback()
1697 if (entity->type != UVC_VC_PROCESSING_UNIT && in uvc_scan_fallback()
1698 entity->type != UVC_VC_EXTENSION_UNIT) in uvc_scan_fallback()
1701 if (entity->num_pads != 2) in uvc_scan_fallback()
1704 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_fallback()
1707 prev->baSourceID[0] = entity->id; in uvc_scan_fallback()
1708 prev = entity; in uvc_scan_fallback()
1817 struct uvc_entity *entity; in uvc_delete() local
1818 entity = list_entry(p, struct uvc_entity, list); in uvc_delete()
1820 uvc_mc_cleanup_entity(entity); in uvc_delete()
1822 kfree(entity); in uvc_delete()