Lines Matching refs:chain

1286 static int uvc_scan_chain_entity(struct uvc_video_chain *chain,  in uvc_scan_chain_entity()  argument
1306 if (chain->processing != NULL) { in uvc_scan_chain_entity()
1312 chain->processing = entity; in uvc_scan_chain_entity()
1323 if (chain->selector != NULL) { in uvc_scan_chain_entity()
1329 chain->selector = entity; in uvc_scan_chain_entity()
1365 list_add_tail(&entity->chain, &chain->entities); in uvc_scan_chain_entity()
1369 static int uvc_scan_chain_forward(struct uvc_video_chain *chain, in uvc_scan_chain_forward() argument
1380 forward = uvc_entity_by_reference(chain->dev, entity->id, in uvc_scan_chain_forward()
1396 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1416 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1433 static int uvc_scan_chain_backward(struct uvc_video_chain *chain, in uvc_scan_chain_backward() argument
1456 chain->selector = entity; in uvc_scan_chain_backward()
1459 term = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1470 list_add_tail(&term->chain, &chain->entities); in uvc_scan_chain_backward()
1471 uvc_scan_chain_forward(chain, term, entity); in uvc_scan_chain_backward()
1496 entity = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1507 static int uvc_scan_chain(struct uvc_video_chain *chain, in uvc_scan_chain() argument
1519 if (entity->chain.next || entity->chain.prev) { 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()
1535 if (uvc_scan_chain_backward(chain, &entity) < 0) in uvc_scan_chain()
1549 list_for_each_entry(term, terms, chain) { in uvc_print_terms()
1566 static const char *uvc_print_chain(struct uvc_video_chain *chain) in uvc_print_chain() argument
1571 p += uvc_print_terms(&chain->entities, UVC_TERM_INPUT, p); in uvc_print_chain()
1573 uvc_print_terms(&chain->entities, UVC_TERM_OUTPUT, p); in uvc_print_chain()
1585 struct uvc_video_chain *chain; in uvc_scan_device() local
1597 if (term->chain.next || term->chain.prev) in uvc_scan_device()
1600 chain = kzalloc(sizeof(*chain), GFP_KERNEL); in uvc_scan_device()
1601 if (chain == NULL) in uvc_scan_device()
1604 INIT_LIST_HEAD(&chain->entities); in uvc_scan_device()
1605 mutex_init(&chain->ctrl_mutex); in uvc_scan_device()
1606 chain->dev = dev; in uvc_scan_device()
1607 v4l2_prio_init(&chain->prio); in uvc_scan_device()
1611 if (uvc_scan_chain(chain, term) < 0) { in uvc_scan_device()
1612 kfree(chain); in uvc_scan_device()
1617 uvc_print_chain(chain)); in uvc_scan_device()
1619 list_add_tail(&chain->list, &dev->chains); in uvc_scan_device()
1662 struct uvc_video_chain *chain; in uvc_delete() local
1663 chain = list_entry(p, struct uvc_video_chain, list); in uvc_delete()
1664 kfree(chain); in uvc_delete()
1765 vdev->prio = &stream->chain->prio; in uvc_register_video()
1783 stream->chain->caps |= V4L2_CAP_VIDEO_CAPTURE; in uvc_register_video()
1785 stream->chain->caps |= V4L2_CAP_VIDEO_OUTPUT; in uvc_register_video()
1795 struct uvc_video_chain *chain) in uvc_register_terms() argument
1801 list_for_each_entry(term, &chain->entities, chain) { in uvc_register_terms()
1812 stream->chain = chain; in uvc_register_terms()
1825 struct uvc_video_chain *chain; in uvc_register_chains() local
1828 list_for_each_entry(chain, &dev->chains, list) { in uvc_register_chains()
1829 ret = uvc_register_terms(dev, chain); in uvc_register_chains()
1834 ret = uvc_mc_register_entities(chain); in uvc_register_chains()